Убираем link rel=shortlink из заголовка ответа сервера WP

После перехода на CMS WordPress 3+ вылезло несколько неприятных для SEO моментов. Один из них — это отдача сервером заголовка link (рисунок 1).
Заголовок link-shortlink

Рисунок 1. Отдача сервером заголовка LINK

Как видим в ответе сервера присутствует лишний заголовок. Который не то, что не нужен, он еще и может вредить продвижению сайта. Уберём его. Для этого заходим на FTP и ищем wp-includes/link-template.php. Открываем данный файл и ищем код:

 

/**
* Send a Link: rel=shortlink header if a shortlink is defined for the current page.
*
* Attached to the wp action.
*
* @since 3.0.0
*
* @uses wp_get_shortlink()
*/
function wp_shortlink_header() {
if ( headers_sent() )
return;

$shortlink = wp_get_shortlink(0, ‘query’);

if ( empty($shortlink) )
return;

header(‘Link: <‘ . $shortlink . ‘>; rel=shortlink’, false);
}

 

Что Вам нужно сделать, так это просто удалить данный код. И всё! Данный заголовок уже больше не будет отдаваться. Единственная проблема — это необходимость удаления данного кода при каждом обновлении WordPress. Поэтому, если у Вас есть идеи, как реализовать отключение данной функции function wp_shortlink_header на постоянной основе, буду рад увидеть соответствующие комментарии к данной статье.

17 комментариев к “Убираем link rel=shortlink из заголовка ответа сервера WP”

  1. Юрий Макаров

    Привет, спасибо за дополнение! Про это я знаю, но, к сожалению, оно поможет убрать link rel=shortlink только из html кода (раздела head), а у нас речь идет о заголовке ответа сервера. Поэтому только такой метод как я написал пока что работает.

  2. Юрий Макаров

    метод 100% работает. Если, что непонятно, как его сделать — спрашивайте

  3. Простой

    Если удалить этот код из файла, то выводится вот чего:
    Parse error: syntax error, unexpected $end in…и так далее.

  4. Юрий Макаров

    Простой, удалите, пожалуйста, только

    header(‘Link: <’ . $shortlink . ‘>; rel=shortlink’, false)

    из кода. Судя по всему — метод удаления полностью всего кода работает не у всех сайтов.

    Удаление, же только

    header(‘Link: <’ . $shortlink . ‘>; rel=shortlink’, false)

    должно решить проблему. Если Вам также это поможет — отпишитесь, пожалуйста, я после этого изменю статью

  5. Простой

    Если удалить только: header(‘Link: ; rel=shortlink’, false);
    то это никак не сказывается. То есть ссылка ?p= по прежнему выводится.

  6. Юрий Макаров

    На самом деле странно… Второй способ должен помочь… У вас должен остаться такой код —

    function wp_shortlink_header() {
    if ( headers_sent() )
    return;

    $shortlink = wp_get_shortlink(0, ‘query’);

    if ( empty($shortlink) )
    return;

    }

    Кэш в браузере чистили?

    Если не помогает, и если не сложно, вышлите мне файл, в котором вы удалили часть кода на yumw@mail.ru — я посмотрю правильно Вы это сделали.

  7. Юрий Макаров

    Файл посмотрел. Но в нем я не обнаружил функцию:
    function wp_shortlink_header()

    Напоминаю, что у вас должен остаться код, как написано это в моем комментарии выше.

  8. Юрий Макаров

    Я тоже не понимаю зачем они вставляют эти лишние ответы серверов и т.д. Надо придумать, как убрать этот ответ, чтобы не было страшно делать обновления WP.

  9. Странно, у меня автоматом не работает =) Может из-за плагинов…

    А идея была просто закомментить //header(‘Link: ; rel=shortlink’, false);

  10. Corben Dalas

    Юрий удаляю этот код с файла, но выдает ошибку в файле plugin.php, версия вп 3,6…Может вы знаете в чем тут дело?

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *