6

Чистим сайт от лишних ссылок

Здравствуйте, друзья. Продолжаем тему чистки сайта от лишних страниц. В предыдущей статье, я говорил как избавится от лавинообразного создания дублей страниц с расширениями WP json, oembed, 1.0 и других мусорных ссылок и страниц. Как их удалить при помощи кода и установкой специальных плагинов.
Сегодня, поговорим о лишних ссылках, которые создаются в header с помощью функции wp_head самим WordPress и установленными плагинами. По этим ссылкам переходят роботы поисковых систем и различные боты, что создает значительную дополнительную нагрузку на сайт и дубли страниц. Давайте разберем подробнее:

Лишние ссылки на сайте

1.Функция rsd_link.

Если вы используете для написания и публикации своих статей блог-клиенты (редакторы Windows Live Writer, BlogDesk, BlogJet и другие) эта функция служит для управления и соединения с вашим ресурсом. Если вы пользуетесь предустановленным редактором CMS WordPress или используете Microsoft Word, то можете смело убирать строчку из кода создаваемую этой функцией. Как выполнить удаление я покажу в конце статьи, наберитесь терпения.

2.Функция wlwmanifest_link.

Данная функция служит для подключения к сайту все того же редактора контента Windows Live. Если вы не используете данный редактор, можно удалять ссылку.

3. Функция wp_shortlink_wp_head.

Я не знаю для чего создается короткая ссылка и ее дубли, можно удалять не думая.

4. Функция adjacent_posts_rel_link_wp_head.

Данная функция формирует ссылки на предыдущую и следующую страницу. Зачем эти ссылки выведены в header, не понятно. Есть карта сайта для посетителей, XML карта для роботов, навигация по сайту реализованная в шаблоне или при помощи плагинов. Удаляем за ненадобностью.

5. Функция wp_generator.

Данная функция, генерирует какой движок и какая его версия установлены на сайте. Ну прямо ковровая дорожка для хакера! Зная движок и его версию, нехорошим людям будет проще взломать ваш ресурс. Однозначно удаляем.

6. feed_links_extra.

Это ссылка на RSS поток встроенный в вордпрес, фид с комментариями. Многие блогеры используют для настройки своих RSS лент сервис feedburner. Тоже можно удалить данную ссылку.

Чистка сайта от лишних ссылок.

Для удаления мусора, вам понадобится вставить специальный код с функцией remove_action, которая удаляет действия, и чистит хуки. Копируете данный код, и вставляете его в файл functions.php в конце кода, перед знаком ?>.

/*-----------------------------------------------------------------------------------*/
/* Убираем мусор: feed, shortlink
/*-----------------------------------------------------------------------------------*/
function mw_clear_wp_head()
{
  add_filter('xmlrpc_enabled', '__return_false');
  remove_action( 'wp_head', 'feed_links', 2 ); // Удаляет ссылки RSS-лент записи и комментариев
  remove_action( 'wp_head', 'feed_links_extra', 3 ); // Удаляет ссылки RSS-лент категорий и архивов

  remove_action( 'wp_head', 'rsd_link' ); // Удаляет RSD ссылку для удаленной публикации
  remove_action( 'wp_head', 'wlwmanifest_link' ); // Удаляет ссылку Windows для Live Writer
  remove_action( 'wp_head', 'wp_generator' ); // Удаляет версию WordPress

  remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0); // Удаляет короткую ссылку
  remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); // Удаляет ссылки на предыдущую и следующую статьи
}
add_action( 'wp_head', 'mw_clear_wp_head', 1 );

Не забудьте сохранить изменения. Вот так просто мы избавились от лишнего шлама на сайте. Всем удачи!

комментариев 6
  1. admin
    03.03.2017 в 20:43

    Да, Ольга, можно избавится от дублей страниц правильно настроив редирект в htaccess.
    Соответственно надо открыть запрет на индексацию в robots.txt
    У меня это выглядит следующим образом:

    # BEGIN WordPress

    RewriteEngine On

    RewriteBase /

    RewriteCond %{QUERY_STRING} ^replytocom= [NC]

    RewriteRule (.*) $1? [R=301,L]

    RewriteRule (.+)/feed /$1 [R=301,L]

    RewriteRule (.+)/comment-page /$1 [R=301,L]

    RewriteRule (.+)/trackback /$1 [R=301,L]

    RewriteRule (.+)/comments /$1 [R=301,L]

    RewriteRule (.+)/attachment /$1 [R=301,L]

    RewriteCond %{QUERY_STRING} ^attachment_id= [NC]

    RewriteRule (.*) $1? [R=301,L]

    RewriteRule ^index\.php$ — [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    # END WordPress

    Файл robots.txt примерно должен выглядеть следующим образом (настраивается индивидуально для каждого сайта).
    User-agent: *
    Disallow: /wp-includes
    Disallow: /feed
    Disallow: /wp-content/plugins
    Disallow: /wp-content/cache
    Disallow: /wp-content/themes
    Host: сайт.com
    Sitemap: http ://сайт/sitemap.xml

    User-agent: Googlebot-Image
    Allow: /wp-content/uploads/

    User-agent: YandexImages
    Allow: /wp-content/uploads/

    Как вы поняли при добавлении строки RewriteRule (.+)/feed /$1 [R=301,L] необходимо открыть индексацию в robots.txt Disallow: /feed
    Удачи вам!

  2. Ольга
    03.03.2017 в 06:03

    Здравствуйте!
    А если у меня настроен редирект в htaccess:
    RewriteRule (.+)/feed /$1 [R=301,L]

    Я могу еще и дополнительно вставить код, который убирает так же fedd в файле functions? Или это будет ошибкой?

  3. admin
    28.01.2017 в 01:29

    Пожалуйста, Юрий. Применяйте все получится.

  4. Юра
    27.01.2017 в 22:24

    Спасибо за такую полезную статью. Я только пробую заниматься созданием сайта и эта проблема у меня была. Раньше я обращался к другу, чтобы исправить положение. Теперь постараюсь самостоятельно разбираться с возникшими дублями.

  5. admin
    22.01.2017 в 20:38

    Андрей, при установке плагина, больше ничего делать не надо. Все дубли будут убраны автоматически.

  6. Андрей
    22.01.2017 в 12:06

    Довольно полезная функция, я с кодом не сильно дружу, спасибо что сделали наглядный пример! Хотел спросить, в предыдущей статье вы писали о расширении WP json, oembed, если я его установил, то правку в файле functions.php все ровно необходимо делать или достаточно действия плагина! Я так понял что плагин будет бороться с появлением дублей страниц?

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.