Как составить правильный robots.txt для блога на WordPress

Здравствуйте, уважаемые посетители блога! В этой статье я расскажу о том, как создать правильный robots.txt для WordPress. Но сначала давайте разберемся зачем нужно создавать файл robots.txt, и можно ли обойтись без него?

Зачем нужен файл Роботс?

Если Вы уже создали блог на WordPress или только занимаетесь его разработкой, то заметили, что статьи полностью или анонсами показываются на страницах категорий,  архивов, меток, результатов поиска, а на некоторых блогах и на главной странице. То это приводит к появлению дублированного контента. Т.е. поисковый робот, просматривая сайт, находит один и тот же текст, но по разным адресам. Такой контент он может посчитать не уникальным и приравнять его к ворованному контенту. А это грозит санкциями и фильтром от поисковых систем.

В файле robots.txt как раз и указывается какие разделы блога поисковому роботу нужно индексировать, а какие нет. Также, можно запретить индексацию определенных служебных каталогов.

Как показала практика, за два года многое поменялось. Эта статья была написала в июле 2012 года, а то текст, который Вы читаете сейчас и его продолжение ниже, я написала в июле 2014 года. Собственно, а что поменялось?

Как было раньше. Через файл роботс мы давали указание поисковым роботам не забирать в свою базу определенные страницы сайта. Но теперь, в частности Google, не обращает внимания на указания (директивы) в robots.txt. Не смотря на то, что в robots txt стоит запрет индексации категорий, архивов, древовидных комментариев, а робот все равно их заносит в свою базу.

К счастью, Яндекс, в отличии от Google, не наказывает за дублированные страницы с повторяющимся контетом. Пока не наказывает. Скорее всего придет время, когда технологии Яндекса догонят Google, и тогда реакция Яндекса на дубли будет иной.

Для wordpress robots.txt не такой, как для других движков. И в первую очередь это связано с особенностями самого движка WordPress. В WordPress есть проблема с дублями, которые создают древовидные комментарии. Решение этой проблемы я описывала в статье https://inetsovety.ru/kak-ubrat-dubli-stranits-replytocom/

Как создать правильный robots.txt для блога на WordPress

В файле роботс мы разрешаем роботу заходить на страницы с дублями, но запрещаем с помощью мета тега:

<meta name='robots' content='noindex,follow' />

Для абсолютно всех страниц сайта мы не можем добавить этот тег, только для страниц пагинации (постраничной навигации). Остальные дубли мы исключаем с помощью редиректа. Внимательно изучите статью о дублях древовидных комментариев и примените ее, прежде чем ставить себе тот роботс, который я дам ниже. Если Вы поставите на свой блог этот роботс, но не настроите редиректы и мета теги, то рискуете получить  фильтры в поисковиках. Поэтому выполняйте все рекомендации по пунктам. Не поленитесь создать резервные копии файлов темы, файлов .htaccess и robots.txt.

  1.  Вносим правки в файл .htaccess, настраивая редиректы. Можете, либо скопировать и вставить этот код, либо взять готовый файл из предыдущей статьи.
    # BEGIN WordPress

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /

    RewriteCond %{QUERY_STRING} ^replytocom= [NC]

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

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

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

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

    RewriteRule (.+)/trackback /$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]

    </IfModule>

     

    # END WordPress

  2. Добавляем мета тег для постраничной навигации в файл function.php. Код добавляем сразу после строчки <?php:
    	function my_meta_noindex () {

    		if (

    			is_paged() 

    		) {echo "".'<meta name="robots" content="noindex,nofollow" />'."n";}

    	}

     

    add_action('wp_head', 'my_meta_noindex', 3);

  3. Проверьте, что на страницах постраничной навигации, в рубриках в исходном коде страницы присутствует код
    <meta name='robots' content='noindex,follow' />

    Для этого нажмите CTRL+U (одновременно нажмите на две кнопки на клавиатуре CTRL и U). Чтобы не просматривать сотни строчек кода, снова одновременно нажимаете CTRL и F, на странице с кодом. Внизу слева появится форма поиска по странице. В нее вставляйте meta name и жмите поиск.

  4. Ставим запрет на индексацию нежелательных страниц в плагине All in One Seo Pack:правильный robots.txt и настройки индексации в сео плагине All in One Seo Pack
  5. А вот теперь, когда предыдущие 4 пункта выполнены, ставьте robots.txt, который не запрещает роботам ходит по дублированным страницам. По этой ссылке Вы можете скачать готовый правильный robots.txt для WordPress, который использую я и много других людей — ссылка на скачивание.

После того, как Вы скачали архив с файлом. Вам нужно в самом конце файла поменять сайт.ru на адрес своего сайта. Сделать это нужно в этих строках:

Host: сайт.ru

Sitemap: http://сайт.ru/sitemap.xml.gz

Sitemap: http://сайт.ru/sitemap.xml

Две последние строки указываю поисковому роботу адрес карты сайта.

После того, как Вы изменили в файле robots.txt установили адрес своего сайта, загрузите его на хостинг через ftp клиент FileZilla. Если у Вас возник вопрос, а куда его загружать? Файл robots txt должен находится в основной папке, рядом в папками wp-content, wp-includes.

А в данном видео, Вы более детально сможете узнать о директивах, которые прописываются в robots.txt: