Рекомендуемое содержимое файла robots.txt для WordPress. Функция do_robots().

Относительно того, что должно быть внутри файла robots.txt до сих пор возникает куча споров. Вообще, на мой взгляд, этот файл должен содержать две обязательные вещи:

  • путь к карте сайта:
    Sitemap: https://truewp.ru/sitemap.xml

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

  • директиву host для Яндекса (нужна, если у вашего сайта есть зеркала, для того, чтобы показать главное зеркало):
    Host: truemisha.ru

Скрывать в нём все функциональные PHP-файлы (как делают некоторые вебмастера) я не вижу смысла. А уж страницы сайта тем более. Я проводил эксперимент со скрытием страниц через robots.txtони всё равно попали в индекс, но только без заголовка и без сниппета.

Для скрытия от индексации страниц сайта используйте метатег:

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

Функция do_robots()

Выводит несколько директив для файла robots.txt, рекомендуемые для WordPress.

do_robots()

Параметров не имеет, зато имеет 1 хук и 1 фильтр.

Рассмотрим по порядку, как работает функция:

  1. В первую очередь функция устанавливает Content-Type документа на text/plain (с кодировкой UTF-8).
  2. Затем запускается экшен do_robotstxt (без параметров).
  3. Третьим шагом идёт проверка, отмечена ли галочка «Попросить поисковые системы не индексировать сайт» в настройках чтения:
    Нужно ли скрыть сайт от поисковиков в robots.txt
  4. Если отмечена, содержимое robots.txt будет:
    User-agent: *
    Disallow: /

    Если не отмечена:

    User-agent: *
    Disallow: /wp-admin/
  5. Непосредственно перед выводом срабатывает фильтр robots_txt (WordPress 3.0+) с двумя параметрами — $output (то, что подготовлено для вывода в robots.txt) и $public (отмечена ли галочка в пункте 3).

Готовый robots.txt

К результату функции do_robots() добавим еще то, о чем я говорил в начале поста и получим вот такой robots.txt для WordPress:

User-agent: *
Disallow: /wp-admin/
 
User-agent: Yandex
Disallow: /wp-admin/
Host: truemisha.ru
 
Sitemap: https://truewp.ru/sitemap.xml

Создать его вы можете при помощи любого текстового редактора. Сохраните его там же, где находятся директории wp-admin и wp-content.

Комментарии 14

  • 12 o.z. mouse29 января 2015 в 16:01 #

    а кроме /wp-admin/ больше закрыть ничего не нужно ? например там wp-login.php?

  • Наталья14 сентября 2015 в 23:09 #

    Здравствуйте, Миша!

    Для моего сайта ladychef.ru ваш robots.txt можно применять?

    User-agent: *
    Disallow: /wp-admin/

    User-agent: Yandex
    Disallow: /wp-admin/
    Host: truemisha.ru

    Sitemap: https://truewp.ru/sitemap.xml

  • Наталья14 сентября 2015 в 23:09 #

    Хост для Яндекса - то есть главное зеркало, верно?

    • Миша15 сентября 2015 в 07:09 #

      Здравствуйте!
      Да, применяйте, но не забудьте заменить директивы host и sitemap.

      Да.

  • Наталья16 сентября 2015 в 00:09 #

    User-agent: * подразумевает "Всем", а потом Яндексу уточняется то же самое ) Это не лишнее?

  • Наталья17 сентября 2015 в 01:09 #

    Это опять я :)

    Все думаю о robots.txt...

    А если серьезно, то проблема такова. На моем сайте установлен плагин Yoast.

    Автор этого плагина рекомендует в своей статье

    https://yoast.com/example-robots-txt-wordpress/

    такой robots.txt

    User-Agent: *
     
    Disallow: /wp-content/plugins/

    Читала статью с помощью Гугл переводчик, поэтому может она совсем про другое. (:

    Под воздействием прочитанного в иностранной статье сделала такой robots.txt

    User-agent: *
    Disallow: /wp-admin/
    Disallow: /wp-content/plugins/
     
    User-agent: Yandex
    Disallow: /wp-admin/
    Host: site.ru
     
    Sitemap: http://site.ru/sitemap.xml

    Хотелось бы знать ваше мнение. Спасибо.

    • Миша17 сентября 2015 в 07:09 #

      Думаю норм.

      Зря вы так сильно с ним заморачиваетесь :) Раньше на seomoz.com (топовый SEO ресурс в мире, если не ошибаюсь) был такой robots:

      #nothing to do here
      Sitemap: http://site.ru/sitemap.xml
  • Наталья17 сентября 2015 в 14:09 #

    Заморачиваться стала когда поисковики сообщили мне о многочисленных дублях картинок на сайте. А также после того как Гугл ввел санкции из-за запрета сканирования js и css в robots.txt .

    Сейчас у меня robots такой, как вы вы советуете. Спасибо, буду наблюдать за изменениями в вебмастере.

    • Миша18 сентября 2015 в 08:09 #

      Гугл ввел санкции из-за запрета сканирования js и css в robots.txt

      Я же говорю, c robots.txt лучше не увлекаться.

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

  • Наталья18 сентября 2015 в 14:09 #

    Спасибо. После появления дублей картинок в огромном количестве я изменила в шаблоне некоторые настройки и вместо плагина All Seo Pack установила Yoast. Он перенаправил картинки, убрал дубли. Ситуация как будто нормализовалась. Спасибо. Плохо то, что я не вполне понимаю как это происходит, но стараюсь )

  • Наталья18 сентября 2015 в 16:09 #

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

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

phpjsHTMLCSSSQLПросто код
  Комментарии закрыты.