Категории: Google SEO Яндекс

Robots.txt для WordPress

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

Более подробно о составлении robots.txt и значении всех его директив я писал здесь. Ниже я не буду подробно останавливаться на значении каждого правила. Ограничусь тем, что кратко прокомментирую что для чего необходимо.

Правильный Robots.txt для WordPress

Действительно самый лучший robots.txt, который я видел на данный момент, это роботс, предложенный в блоге wp-kama. Ряд директив и комментариев я возьму из его образца + внесу свои корректировки. Корректировки коснутся нескольких правил, почему так напишу ниже. Кроме того, напишем индивидуальные правила для всех роботов, для Яндекса и для Google.

Ниже привожу короткий и расширенный вариант. Короткий не включает отдельные блоки для Google и Яндекса. Расширенный уже менее актуален, т.к. теперь нет принципиальных особенностей между двумя крупными поисковиками: обеим системам нужно индексировать файлы скриптов и изображений, обе не поддерживают директиву Host. Тем не менее, если в этом мире снова что-то изменится, либо вам потребуется все-таки как-то по-отдельному управлять индексацией файлов на сайте Яндексом и Гугл, сохраню в этой статье и второй вариант.

Еще раз обращаю внимание, что это базовый файл robots.txt. В каждом конкретном случае нужно смотреть реальный сайт и по-необходимости вносить корректировки. Поручайте это дело опытным специалистам!

Короткий вариант (оптимальный)

User-agent: *               # общие правила для роботов, кроме Яндекса и Google, 
                            # т.к. для них правила ниже
Disallow: /cgi-bin          # папка на хостинге
Disallow: /?                # все параметры запроса на главной
Disallow: /wp-              # все файлы WP: /wp-json/, /wp-includes, /wp-content/plugins
Disallow: /wp/              # если есть подкаталог /wp/, где установлена CMS (если нет, 
                            # правило можно удалить)
Disallow: *?s=              # поиск
Disallow: *&s=              # поиск
Disallow: /search/          # поиск
Disallow: /author/          # архив автора
Disallow: /users/           # архив авторов
Disallow: */trackback       # трекбеки, уведомления в комментариях о появлении открытой 
                            # ссылки на статью
Disallow: */feed            # все фиды
Disallow: */rss             # rss фид
Disallow: */embed           # все встраивания
Disallow: */wlwmanifest.xml # xml-файл манифеста Windows Live Writer (если не используете, 
                            # правило можно удалить)
Disallow: /xmlrpc.php       # файл WordPress API
Disallow: *utm*=             # ссылки с utm-метками
Disallow: *openstat=        # ссылки с метками openstat
Allow: */uploads            # открываем папку с файлами uploads

# Укажите один или несколько файлов Sitemap (дублировать для каждого User-agent 
# не нужно). Google XML Sitemap создает 2 карты сайта, как в примере ниже.
Sitemap: http://site.ru/sitemap.xml
Sitemap: http://site.ru/sitemap.xml.gz

# Укажите главное зеркало сайта, как в примере ниже (с WWW / без WWW, если HTTPS 
# то пишем протокол, если нужно указать порт, указываем). Команда стала необязательной. Ранее Host понимал 
# Яндекс и Mail.RU. Теперь все основные поисковые системы команду Host не учитывают.
Host: www.site.ru


Расширенный вариант (отдельные правила для Google и Яндекса)

User-agent: *               # общие правила для роботов, кроме Яндекса и Google, 
                            # т.к. для них правила ниже
Disallow: /cgi-bin          # папка на хостинге
Disallow: /?                # все параметры запроса на главной
Disallow: /wp-              # все файлы WP: /wp-json/, /wp-includes, /wp-content/plugins
Disallow: /wp/              # если есть подкаталог /wp/, где установлена CMS (если нет, 
                            # правило можно удалить)
Disallow: *?s=              # поиск
Disallow: *&s=              # поиск
Disallow: /search/          # поиск
Disallow: /author/          # архив автора
Disallow: /users/           # архив авторов
Disallow: */trackback       # трекбеки, уведомления в комментариях о появлении открытой 
                            # ссылки на статью
Disallow: */feed            # все фиды
Disallow: */rss             # rss фид
Disallow: */embed           # все встраивания
Disallow: */wlwmanifest.xml # xml-файл манифеста Windows Live Writer (если не используете, 
                            # правило можно удалить)
Disallow: /xmlrpc.php       # файл WordPress API
Disallow: *utm*=             # ссылки с utm-метками
Disallow: *openstat=        # ссылки с метками openstat
Allow: */uploads            # открываем папку с файлами uploads

User-agent: GoogleBot       # правила для Google (комментарии не дублирую)
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: /wp/
Disallow: *?s=
Disallow: *&s=
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: */embed
Disallow: */wlwmanifest.xml
Disallow: /xmlrpc.php
Disallow: *utm*=
Disallow: *openstat=
Allow: */uploads
Allow: /*/*.js              # открываем js-скрипты внутри /wp- (/*/ - для приоритета)
Allow: /*/*.css             # открываем css-файлы внутри /wp- (/*/ - для приоритета)
Allow: /wp-*.png            # картинки в плагинах, cache папке и т.д.
Allow: /wp-*.jpg            # картинки в плагинах, cache папке и т.д.
Allow: /wp-*.jpeg           # картинки в плагинах, cache папке и т.д.
Allow: /wp-*.gif            # картинки в плагинах, cache папке и т.д.
Allow: /wp-admin/admin-ajax.php # используется плагинами, чтобы не блокировать JS и CSS

User-agent: Yandex          # правила для Яндекса (комментарии не дублирую)
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: /wp/
Disallow: *?s=
Disallow: *&s=
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: */embed
Disallow: */wlwmanifest.xml
Disallow: /xmlrpc.php
Allow: */uploads
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-admin/admin-ajax.php
Clean-Param: utm_source&utm_medium&utm_campaign # Яндекс рекомендует не закрывать 
                            # от индексирования, а удалять параметры меток, 
                            # Google такие правила не поддерживает
Clean-Param: openstat       # аналогично

# Укажите один или несколько файлов Sitemap (дублировать для каждого User-agent 
# не нужно). Google XML Sitemap создает 2 карты сайта, как в примере ниже.
Sitemap: http://site.ru/sitemap.xml
Sitemap: http://site.ru/sitemap.xml.gz

# Укажите главное зеркало сайта, как в примере ниже (с WWW / без WWW, если HTTPS 
# то пишем протокол, если нужно указать порт, указываем). Команда стала необязательной. Ранее Host понимал 
# Яндекс и Mail.RU. Теперь все основные поисковые системы команду Host не учитывают.
Host: www.site.ru

В примере я не добавляю правило Crawl-Delay, т.к. в большинстве случаев эта директива не нужна. Однако если у вас крупный нагруженный ресурс, то использование этой директивы поможет снизить нагрузку на сайт со стороны роботов Яндекса, Mail.Ru, Bing, Yahoo и других (Google не учитывает). Подробнее про это читайте в статье Robots.txt.


Ошибочные рекомендации других блогеров для Robots.txt на WordPress

  1. Использовать правила только для User-agent: *
    Для многих поисковых систем не требуется индексация JS и CSS для улучшения ранжирования, кроме того, для менее значимых роботов вы можете настроить большее значение Crawl-Delay и снизить за их счет нагрузку на ваш сайт.
  2. Прописывание Sitemap после каждого User-agent
    Это делать не нужно. Один sitemap должен быть указан один раз в любом месте файла robots.txt
  3. Закрыть папки wp-content, wp-includes, cache, plugins, themes
    Это устаревшие требования. Однако подобные советы я находил даже в статье с пафосным названием «Самые правильный robots для WordPress 2018»! Для Яндекса и Google лучше будет их вообще не закрывать. Или закрывать «по умному», как это описано выше.
  4. Закрывать страницы тегов и категорий
    Если ваш сайт действительно имеет такую структуру, что на этих страницах контент дублируется и в них нет особой ценности, то лучше закрыть. Однако нередко продвижение ресурса осуществляется в том числе за счет страниц категорий и тегирования. В этом случае можно потерять часть трафика
  5. Закрывать от индексации страницы пагинации /page/
    Это делать не нужно. Для таких страниц настраивается тег rel=»canonical», таким образом, такие страницы тоже посещаются роботом и на них учитываются расположенные товары/статьи, а также учитывается внутренняя ссылочная масса.
  6. Прописать Crawl-Delay
    Модное правило. Однако его нужно указывать только тогда, когда действительно есть необходимость ограничить посещение роботами вашего сайта. Если сайт небольшой и посещения не создают значительной нагрузки на сервер, то ограничивать время «чтобы было» будет не самой разумной затеей.
  7. Ляпы
    Некоторые правила я могу отнести только к категории «блогер не подумал». Например: Disallow: /20 — по такому правилу не только закроете все архивы, но и заодно все статьи о 20 способах или 200 советах, как сделать мир лучше 🙂

Спорные рекомендации других блогеров для Robots.txt на WordPress

  1. Комментарии
    Некоторые ребята советуют закрывать от индексирования комментарии Disallow: /comments и Disallow: */comment-*.
  2. Открыть папку uploads только для Googlebot-Image и YandexImages
    User-agent: Googlebot-Image
    Allow: /wp-content/uploads/
    User-agent: YandexImages
    Allow: /wp-content/uploads/
    Совет достаточно сомнительный, т.к. для ранжирования страницы необходима информация о том, какие изображения и файлы размещены на ней.

Спасибо за ваше внимание! Если у вас возникнут вопросы или предложения, пишите в комментариях!

bisteinoff

Показать комментарии

    • Михаил, игнорируйте. Или можно заменить на аналогичные правила с Disallow. Google не понимает директиву Clean-Param, хотя она входит в стандарт robots.txt, воспринимает ее как ошибку.

  • Здравствуйте, если я для вордпресса создам такой robots.txt будет ли он нормальным для индексации?
    User-agent: *
    Disallow:

    User-agent: Yandex
    Allow: /yandex/news/

    User-agent: Googlebot
    Allow: *.js
    Allow: *.css
    Disallow:

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php

    Sitemap: https:// название моего сайта/sitemap.xml

    • Инна, надо смотреть сайт.
      Но вообще конкретно данный код выглядит так, что человек не понимал, что эти строки означают. Например, зачем вам команда Disalow: Почему два раза повторяете User-agen: * в разных местах? Зачем вам команды открывать файлы .js и .css, если вы не закрывали ни одной папки для робота Google?

      • Но в моём robots.txt только то, что я выше описывала

      • Проблема с индексацией, Гугл добавляет лиш 1/4 всех ссылок и пишет не понятные мне ошибки, возможно Вы знаете, что это означает и как исправить
        Прикрепляю ниже фото https://uploads.disquscdn.com/images/f061fc1efd683ac1edaa14bd6fe026a75111da5b58983f4c433776535be731d8.jpg https://uploads.disquscdn.com/images/119939ee24951b943b116e9b63a86c29296835ebcd92b64dc31262c1feb6983f.jpg

        • Google много чего пишет. Но не все, что гугл называет ошибками, является реальной ошибкой. По крайней мере, на что-либо влияющей.
          Сайт googlesyndication явно не ваш? Если администратор этого сайта закрыл скрипты для индексирования, то, во-первых, вы не можете никаким образом повлиять на это. Во-вторых, если сторонний скрипт не индексируется, это мелочь - на это вообще нет смысла обращать внимание.

  • У меня не добавляет турбо-страницы, пишет что запрещено в robots.txt

  • Добрый день! Статья очень понравилась! столкнулся с такой проблемой: https://uploads.disquscdn.com/images/863b00a7f06eebb40f28fbfbb5ac4857972d76f626775d967736e621a881a536.png загрузил файл, проверил по отдельности через яндекс и через гугл, в первом случае анализатор не нашел ошибок, во втором выдал аж 21! в чем может быть дело?

    • Может, гугл ругается на пробел перед User-agent? И далее все команды считает ошибками, потому что они должны идти после User-agent, который он не распознал.

  • Добрый день. Спасибо за статью. Давно не видела таких понятных рекомендаций.

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

    И немного сбило с толку расположение блока предыдущая запись / следующая запись, не сразу увидела, что можно добавлять комментарии. (не из вредности, хочу чтоб у хороших авторов было больше благодарственных комментариев)

    Я зарегистрировалась в Дискусе, так как есть вопрос.

    В ошибочных рекомендациях других блогеров в 5 пункте говориться про тег rel="canonical". Подскажите, можно ли его прописать в robots.txt или нужны другие меры?

    • Елена, добрый день.
      Спасибо за советы.
      По вашему вопросу. Canonical прописывается в html-коде соответствующей страницы. В robots его прописать нельзя.

  • HOST - удалите - более не поддерживается Яндексом!

  • Поставил данный robots. Все работает. Есть одно но. В исходном виде google ругался на удобство просмотра на мобильных устройствах - контент шире экрана. В итоге проблема решилась, когда в секцию User-agent: * добавил
    Allow: /*/*.js
    Allow: /*/*.css
    Allow: /wp-*.png
    Allow: /wp-*.jpg
    Allow: /wp-*.jpeg
    Allow: /wp-*.gif
    Allow: /wp-admin/admin-ajax.php
    PS: рад, что не пришлось перелопачивать css!!! пол дня голову ломал с мобильным отображением в гугл.

    • Странно, что гугл среагировал на правила user-agent *, когда есть блок user-agent googlebot. Может, причина еще в чем-то?

  • здравствуйте. а вдруг поможете))) буду безумно признательна, уже голову сломала.
    от предыдущего сеошника остался такой роботс
    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    User-agent: *
    Disallow: /cgi-bin
    Disallow: /?
    Disallow: /wp-
    Disallow: *?s=
    Disallow: *&s=
    Disallow: /search
    Disallow: /author/
    Disallow: *?attachment_id=
    Disallow: */trackback
    Disallow: */feed
    Disallow: */embed
    Disallow: */page/
    Allow: */uploads
    Allow: /*/*.js
    Allow: /*/*.css
    Allow: /wp-*.png
    Allow: /wp-*.jpg
    Allow: /wp-*.jpeg
    Allow: /wp-*.gif
    Allow: /wp-*.svg

    1. вопрос раз) Гугл не видел некоторые картинки .jpg
    Крутила-вертела, попробовала прописать
    Allow: /wp-content/themes/*.jpg
    и тут случился вообще парадокс, из всех картинок , которые он не видел до прописывания этого правила, сейчас на одной странице какие-то видит, а какие-то - нет. Такая беда не с одной страницей. Т.е. на одной странице с одинаковым уровнем вложенности, практически одинаковыми урлами, отличающимися на одну цифру, урлы такого вида
    https://mysite/wp-content/themes/site/images/2018/09/mypost-1.jpg - видит
    https://mysite/wp-content/themes/site/images/2018/09/mypost-2.jpg - не видит
    роботс выше. т.е. цифру "2" точно нигде не закрыли. что можете посоветовать, куда копать?
    2. Вопрос два) я правильно понимаю, что User-agent: * нет смысла два раза писать?
    просто все директивы прописываем под одним User-agent: * может вышеописаннная проблема быть как-то с этим связана? ну типа некорректно прописано - некорректно и видит

    • Вторую строчку user-agent * - просто удаляем. Она лишняя. Как именно реагирует гугл - нужно смотреть опытным путем: может, берет первую часть, может, вторую, может все вместе. Не забываем, что robots.txt - это файл с рекомендациями. Иногда гугл индексирует в том числе и то, что закрыто в роботсе.

      В приведенном вами файле роботс нет никаких правил, по которым могли бы быть закрыты изображения с цифрой "2". Но, возможно, в html-коде страницы есть другие теги, которые закрывают от индексации конкретный участок кода или страницу в целом. Нужно смотреть.

      • ясно. Будем эксперементировать. В любом случае, согласна с отзывами, что это самая адекватная статья по роботсу, ну и за мгновенную обратную связь спасибо

          • Судя по всему все-таки мешала лишняя строчка user-agent. Все вышло, спасибо.
            Еще один маленький вопрос и цены вам не будет))) открывать контакт-формы (тип AJAX)? гуглу не нравится
            https://mysite/wp-json/contact-form-7/v1/contact-forms/222/refill
            Если да, то как правильнее прописать команду? Так?
            Allow: /contact-form-7/

          • Нет.
            Allow: /wp-json/contact-form-7/
            или
            Allow: */contact-form-7/

  • Можно подправить роботс, Яндекс также отказался от директивы Host

    • Андрей, спасибо за совет! А можете проверить, точно все поисковые системы отказались от этой директивы? Пока не вношу изменения, поскольку есть, например, Yahoo!. Во всяком случае, раньше они тоже ориентировались на Host. Сейчас не уверен. По крайней мере, ошибки точно нет, если эту директиву оставить.

      • Можно оставить, Яндекс будет игнорировать. Но тогда это будет лишняя строчка в robots. Про Yahoo! читал, что он отказался от своего движка в пользу Bing, которые насколько я знаю не читает Host.

        • Лишняя строчка не страшно. В общем, по своим проектам, я не трачу время на удаление Host, и даже по-прежнему его указываю. Даже несмотря на то, что для яндекса и гугл она теперь не нужна и в принципе всегда главное зеркало определяется, в первую очередь, по правильному 301-редиректу. Честно говоря, больше на случай того, что вдруг какой-нибудь гугл, наоборот, перейдет на новые стандарты, по которым нужно будет четко прописывать хост в роботсе. Ведь в классической спецификации robots эта директива есть.

Последние публикации

Core Web Vitals: как оптимизировать сайт и улучшить его ранжирование в Яндексе и Google

В этой статье я подробно раскрою процесс работы с Google Core Web Vitals для качественной технической оптимизации сайта. А также…

2 года ago

Чек-лист по SEO оптимизации сайта на 2023 год

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

4 года ago

Профессия веб-аналитик в современном мире

Интервью для проекта газеты Комсомольская Правда «Образование в России и за рубежом». (далее…)

6 лет ago

Протокол HTTP/2 — как проверить и почему это важно для SEO?

С ноября 2020 года поисковый робот Google, который индексирует сайты в интернете, начнет производить сканирование по протоколу HTTP/2. Если ваш…

6 лет ago

SEO умерло?

Наверное, я не слишком ошибусь, если скажу, что скоро будет 10 лет мифу о том, что «SEO умерло». Тем не…

6 лет ago

Robots.txt для MODx

Сайты на системе администрирования MODx встречаются не так часто, информацию по правильной настройке SEO для этой системы найти сложнее. В…

8 лет ago