КАК СОЗДАТЬ ИДЕАЛЬНЫИ ROBOTS TXT ДЛЯ WORD PRESS

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

Для начала, вспомним зачем нужен robots.txt— файл robots.txt нужен исключительно для поисковых роботов, чтобы «сказать» им какие разделы/страницы сайта посещать, а какие посещать не нужно. Страницы, которые закрыты от посещения не будут попадать в индекс поисковиков (Yandex, Google и т.д.).

robots

Закрыть страницу от робота можно также через мета-тег robots или в HTTP-заголовке ответа X-Robots-Tag. Преимущество файла robots.txt в том, что робот при посещении сайта сначала загружает все правила из файла robots.txt и опираясь на них ходит по страницам сайта исключая из посещения страницы, URL которых не подходит под правила.

Таким образом, если мы закрыли страницу в robots.txt, робот просто пропустит её не сделав никаких запросов на сервер. А если мы закрыли страницу в заголовке X-Robots-Tag или мета-теге, роботу нужно сначала сделать запрос к серверу, получить ответ, посмотреть что находится в заголовке или метатеге и только потом принять решения индексировать страницу или нет.

Таким образом, файл robots.txt объясняет роботу какие страницы (URL) сайта нужно просто пропускать не делая никаких запросов. Это экономит время обхода роботом всех страниц сайта и экономит ресурсы сервера.

Рассмотрим на примере. Допустим, у нас есть сайт на котором всего 10 000 страниц (не 404 URL). Из них полезных страниц с уникальным контентом всего 3000, остальное это архивы по датам, авторам, страницы пагинации и другие страницы контент на которых дублируется (например фильтры с GET параметрами). Допустим, мы хотим закрыть от индексации эти 7000 неуникальных страниц:

  1. если сделать это через robots.txt, то роботу для индексации всего сайта нужно будет посетить всего 3000 страниц остальное будет отсеяно сразу же на уровне URL.
  2. если сделать это через мета-тег robots, то роботу для индексации всего сайта нужно будет посетить все 10 000 страниц сайта. Потому что нужно получить контент страницы, чтобы узнать что находится в мета-теге (в котором указано что страницу индексировать не нужно).

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

Версия 1 (не строгая)

Эта версия, пожалуй, более предпочтительна по сравнению со второй, потому что тут нет опасности запретить индексацию каких либо файлов внутри ядра WordPress или папки wp-content.

  User-agent: * # Создаем секцию правил для роботов.  * значит для всех
								# роботов.  Чтобы указать секцию правил для отдельного
								# робота, вместо * укажите его имя: GoogleBot, Yandex.
Disallow: /cgi-bin # Стандартная папка на хостинге.
Disallow: /wp-admin/ # Закрываем админку.
Allow: /wp-admin/admin-ajax.php # Откроем аякс.
Disallow: /? # Все параметры запроса на главной.
Disallow: *?s= # Поиск.
Disallow: *&s= # Поиск.
Disallow: /search # Поиск.
Disallow: /author/ # Архив автора.
Disallow: */embed$ # Все встраивания.
Disallow: */xmlrpc.php # Файл WordPress API
Disallow: *utm*= # Ссылки с utm-метками
Disallow: *openstat= # Ссылки с метками openstat

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

# Версия кода: 2.0
# Не забудьте поменять `example.com` на ваш сайт.

Версия 2 (строгая)

В этом варианте мы контролируем все доступы. Сначала глобально запрещаем доступ к почти всему от WP ( Disallow: /wp-), а затем открываем, там где нужно.

Этот код я пожалуй не рекомендовал бы, потому что тут закрывается все от wp- и нужно будет описать все что разрешено. Так в будущем, когда WP введет что-то новое, это новое может стать недоступно для роботов. Так например получилось с картой сайта WP.

  User-agent: * # Создаем секцию правил для роботов.  * значит для всех
							 # роботов.  Чтобы указать секцию правил для отдельного
							 # робота, вместо * укажите его имя: GoogleBot, Yandex.
Disallow: /cgi-bin # Стандартная папка на хостинге.
Disallow: /wp- # Все связанное с WP - это: /wp-content /wp-admin
							 # /wp-includes /wp-json wp-login.php wp-register.php.
Disallow: /wp/ # Каталог куда установлено ядро WP (если ядро установлено
							 # в подкаталог).  Если WP установлен стандартно, то
							 # правило можно удалить.
Disallow: /? # Все параметры запроса на главной.
Disallow: *?s= # Поиск.
Disallow: *&s= # Поиск.
Disallow: /search # Поиск.
Disallow: /author/ # Архив автора.
Disallow: */embed$ # Все встраивания.
Disallow: */xmlrpc.php # Файл WordPress API
Disallow: *utm*= # Ссылки с utm-метками
Disallow: *openstat= # Ссылки с метками openstat
Allow: */wp-*/*ajax*.php # AJAX запросы: */admin-ajax.php */front-ajaxs.php
Allow: */wp-sitemap # карта сайта (главная и вложенные)
Allow: */uploads # открываем uploads
Allow: */wp-*/*.js # внутри /wp- (/*/ - для приоритета)
Allow: */wp-*/*.css # внутри /wp- (/*/ - для приоритета)
Allow: */wp-*/*.png # картинки в плагинах, cache папке и т.д.
Allow: */wp-*/*.jpg # картинки в плагинах, cache папке и т.д.
Allow: */wp-*/*.jpeg # картинки в плагинах, cache папке и т.д.
Allow: */wp-*/*.gif # картинки в плагинах, cache папке и т.д.
Allow: */wp-*/*.svg # картинки в плагинах, cache папке и т.д.
Allow: */wp-*/*.webp # файлы в плагинах, cache папке и т.д.
Allow: */wp-*/*.swf # файлы в плагинах, cache папке и т.д.
Allow: */wp-*/*.pdf # файлы в плагинах, cache папке и т.д.
							 # Секция правил закончена

# Одна или несколько ссылок на карту сайта (файл Sitemap).  Это независимая
# директива и дублировать её для каждого User-agent не нужно.  Так например
# Google XML Sitemap создает 2 карты сайта:
Sitemap: http://example.com/wp-sitemap.xml
Sitemap: http://example.com/wp-sitemap.xml.gz

# Версия кода: 2.0
# Не забудьте поменять `example.com` на ваш сайт.

В правилах Allow: вы можете видеть дополнительные, казалось бы ненужные, знаки *— они нужны для увеличения приоритета правила. Зачем это нужно смотрите в сортировке правил.

Директивы (разбор кода)

User-agent:
Определяет для какого робота будет работать блок правил, который написан после этой строки. Тут возможны два варианта:
  1. User-agent: ИМЯ_РОБОТА — указывает конкретного робота, для которого будет работать блок правил. Например: User-agent: Yandex, User-agent: Googlebot.
  • Googlebot
    — основной индексирующий робот.
  • Googlebot-Image
    — индексирует изображения.
  • Mediapartners-Google
    — робот отвечающий за размещение рекламы на сайте. Важен для тех, у кого крутится реклама от AdSense. Благодаря этому user-agent вы можете управлять размещение рекламы запрещая или разрешая её на тех или иных страницах.
Запрещает роботам «ходить» по ссылкам, в которых встречается указанная подстрока:
  • Disallow: /cgi-bin
    — закрывает каталог скриптов на сервере.
  • Disallow: *?s=
    — закрывает страницы поиска.
  • Disallow: */page/
    — закрывает все виды пагинации.
  • Disallow: */embed$
    — закрывает все URL заканчивающиеся на /embed.

Пример добавления нового правила. Допустим нам нужно закрыть от индексации все записи в категории news. Для этого добавляем правило:

  Disallow: /news

Оно запретить роботам ходить по ссылками такого вида:

  • http://example.com/news
  • http://example.com/news/drugoe-nazvanie/

Если нужно закрыть любые вхождения /news, то пишем:

  Disallow: */news
  • http://example.com/news
  • http://example.com/my/news/drugoe-nazvanie/
  • http://example.com/category/newsletter-nazvanie.html

Подробнее изучить директивы robots.txt вы можете на странице помощи Яндекса. Имейте ввиду, что не все правила, которые описаны там, работают для Google.

Allow:

В строке Allow: */uploads мы намеренно разрешаем индексировать страницы, в которых встречается /uploads. Это правило обязательно, т.к. выше мы запрещаем индексировать страницы начинающихся с /wp-, а /wp-
входит в /wp-content/uploads. Поэтому, чтобы перебить правило Disallow: /wp-
нужна строчка Allow: */uploads, ведь по ссылкам типа /wp-content/uploads/. у нас могут лежать картинки, которые должны индексироваться, так же там могут лежать какие-то загруженные файлы, которые незачем скрывать.
Allow:может быть расположена «до» или «после» Disallow:. При чтении правил роботы их сначала сортируют, затем читают, поэтому не имеет значения в каком месте находится Allow:, Disallow:
Sitemap:
Правило Sitemap: http://example.com/sitemap.xml указывает роботу на файл с картой сайта в формате XML. Если у вас на сайте есть такой файл, то пропишите полный путь к нему. Таких файлов может быть несколько, тогда нужно указать путь к каждому файлу отдельно.

ВАЖНО: Сортировка правил

Yandex и Google обрабатывает директивы Allow и Disallow не по порядку в котором они указаны, а сначала сортирует их от короткого правила к длинному, а затем обрабатывает последнее подходящее правило:

  User-agent: *
Allow: */uploads
Disallow: /wp-

будет прочитана как:

  User-agent: *
Disallow: /wp-
Allow: */uploads

Таким образом, если проверяется ссылка вида: /wp-content/uploads/file.jpg, правило Disallow: /wp-ссылку запретит, а следующее правило Allow: */uploadsеё разрешит и ссылка будет доступна для сканирования.

Чтобы быстро понять и применять особенность сортировки, запомните такое правило: «чем длиннее правило, тем больший приоритет оно имеет. Если длина правил одинаковая, то приоритет отдается директиве Allow.»

Проверка robots.txt и документация robots.txt в WordPress

В WordPress запрос /robots.txt обрабатывается нестандартно. Для него «налету» создается контент файла robots.txt
(через PHP).

Динамическое создание контента /robots.txt позволит удобно изменять его через админку, хуки или SEO плагины.

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

Sitemap: http://example.com/wp-sitemap.xml

Смотрите do_robots()— как работает динамическое создание файла robots.txt.

Этот хук позволяет дополнить уже имеющиеся данные файла robots.txt. Код можно вставить в файл темы functions.php.

  // Дополним базовый robots.txt
// -1 before wp-sitemap.xml
add_action( 'robots_txt', 'wp_kama_robots_txt_append', -1 );

function wp_kama_robots_txt_append( $output ){

	$str = '
	Disallow: /cgi-bin # Стандартная папка на хостинге.
	Disallow: /? # Все параметры запроса на главной.
	Disallow: *?s= # Поиск.
	Disallow: *&s= # Поиск.
	Disallow: /search # Поиск.
	Disallow: /author/ # Архив автора.
	Disallow: */embed # Все встраивания.
	Disallow: */page/ # Все виды пагинации.
	Disallow: */xmlrpc.php # Файл WordPress API
	Disallow: *utm*= # Ссылки с utm-метками
	Disallow: *openstat= # Ссылки с метками openstat
	';

	$str = trim( $str );
	$str = preg_replace( '/^[\t ]+(?!#)/mU', '', $str );
	$output .= "$str\n";

	return $output;
}

В результате перейдем на страницу /robots.txtи видим:

  User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /cgi-bin # Стандартная папка на хостинге.
Disallow: /? # Все параметры запроса на главной.
Disallow: *?s= # Поиск.
Disallow: *&s= # Поиск.
Disallow: /search # Поиск.
Disallow: /author/ # Архив автора.
Disallow: */embed # Все встраивания.
Disallow: */page/ # Все виды пагинации.
Disallow: */xmlrpc.php # Файл WordPress API
Disallow: *utm*= # Ссылки с utm-метками
Disallow: *openstat= # Ссылки с метками openstat

Sitemap: http://example.com/wp-sitemap.xml

Обратите внимание, что мы дополнили родные данные ВП, а не заменили их.

do_robotstxt

Этот хук позволяет полностью заменить контент страницы /robots.txt.

  add_action( 'do_robotstxt', 'wp_kama_robots_txt' );

function wp_kama_robots_txt(){

	$lines = [
		'User-agent: *',
		'Disallow: /wp-admin/',
		'Disallow: /wp-includes/',
		'',
	];

	echo implode( "\r\n", $lines );

	die; // обрываем работу PHP
}

Теперь, пройдя по ссылке http://site.com/robots.txt
увидим:

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

Ошибочные рекомендации

  • Закрыть папки wp-content, wp-includes, cacheplugins, themes

    Это устаревшие требования. Однако подобные советы я находил даже в статье с пафосным названием «Самые правильный robots для WordPress 2018»! Для Яндекса и Google лучше будет их вообще не закрывать. Или закрывать «по умному», как это описано выше (Версия 2).

  • Закрывать страницы тегов и категорий

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

  • Прописать Crawl-Delay

    Модное правило. Однако его нужно указывать только тогда, когда действительно есть необходимость ограничить посещение роботами вашего сайта. Если сайт небольшой и посещения не создают значительной нагрузки на сервер, то ограничивать время «чтобы было» будет не самой разумной затеей.

  • Ляпы
    Некоторые правила я могу отнести только к категории «блогер не подумал». Например: Disallow: /20 — по такому правилу не только закроете все архивы, но и заодно все статьи о 20 способах или 200 советах, как сделать мир лучше smile
  • Закрывать от индексации страницы пагинации /page/

    Это делать не нужно. Для таких страниц настраивается тег rel="canonical", таким образом, такие страницы тоже посещаются роботом и на них учитываются расположенные товары/статьи, а также учитывается внутренняя ссылочная масса.

  • Открыть папку uploads только для Googlebot-Image и YandexImages
      User-agent: Googlebot-Image
    Allow: /wp-content/uploads/
    User-agent: YandexImages
    Allow: /wp-content/uploads/

    Совет достаточно сомнительный, т.к. для ранжирования страницы необходима информация о том, какие изображения и файлы на ней размещены. Нельзя закрывать /wp-admin/admin-ajax.php

Роботы анализируют структуру сайта — из чего он состоит, включая файлы CSS, JS и ajax запросы.

  Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Нельзя закрывать /wp-includes/

  Disallow: /wp-includes/

C приходом алгоритма Panda 4, Google стал видеть сайты так же как пользователи, вместе с CSS и JavaScript.

На многих сайтах используются старые приёмы, которые блокируют индексацию /wp-includes/. А тут хранятся файлы стилей и скриптов, которые часто подлючаются на фронте. Например, файлы:

  /wp-includes/css/dist/block-library/style.min.css
/wp-includes/js/wp-embed.min.js

Эти файлы, необходимые для работы сайта. А это значит, Google увидит сайт уже не таким, как его видят посетители.

Не закрывайте фиды: */feed

  Disallow: */feed

Потому что наличие открытых фидов требуется, например, для Яндекс Дзен, когда нужно подключить сайт к каналу (спасибо комментатору «Цифровой»). Возможно открытые фиды нужны где-то еще.

Фиды имеют свой формат в заголовках ответа, благодаря которому поисковики понимают что это не HTML страница, а фид и, очевидно, обрабатывают его иначе.

Нестандартные Директивы Clean-param

Google не понимаю эту директиву. Указывает роботу, что URL страницы содержит GET-параметры, которые не нужно учитывать при индексировании. Такими параметрами могут быть идентификаторы сессий, пользователей, метки UTM, т.е. все то что не влияет на содержимое страницы.

Заполняйте директиву Clean-param максимально полно и поддерживайте ее актуальность. Новый параметр, не влияющий на контент страницы, может привести к появлению страниц-дублей, которые не должны попасть в поиск. Из-за большого количества таких страниц робот медленнее обходит сайт. А значит, важные изменения дольше не попадут в результаты поиска. Робот Яндекса, используя эту директиву, не будет многократно перезагружать дублирующуюся информацию. Таким образом, увеличится эффективность обхода вашего сайта, снизится нагрузка на сервер.

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

  example.com/dir/bookname?ref=site_1
example.com/dir/bookname?ref=site_2
example.com/dir/bookname?ref=site_3

Если указать директиву следующим образом:

  User-agent: Yandex
Clean-param: ref /dir/bookname

то робот Яндекса сведет все адреса страницы к одному:

  example.com/dir/bookname

Пример очистки нескольких параметров сразу: ref и sort:

  Clean-param: ref&sort /dir/bookname

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

Crawl-delay (устарела)

  User-agent: Yandex
Disallow: /wp-admin
Disallow: /wp-includes
Crawl-delay: 1.5

User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Allow: /wp-*.gif

Для чего была нужна директива Crawl-delay

Когда робот сканирует сайт как сумасшедший и это создает излишнюю нагрузку на сервер. Робота можно попросить «поубавить обороты». Для этого можно использовать директиву Crawl-delay. Она указывает время в секундах, которое робот должен простаивать (ждать) для сканирования каждой следующей страницы сайта.

Host (устарела)

Google Директиву Host никогда не поддерживал, а Яндекс полностью отказывается от неё. Host можно смело удалять из robots.txt. Вместо Host нужно настраивать 301 редирект со всех зеркал сайта на главный сайт (главное зеркало).

Заключение

Важно помнить, что изменения в robots.txt на уже рабочем сайте будут заметны только спустя несколько месяцев (2-3 месяца).

Ходят слухи, что Google иногда может проигнорировать правила в robots.txt и взять страницу в индекс, если сочтет, что страница ну очень уникальная и полезная и она просто обязана быть в индексе. Однако другие слухи опровергают эту гипотезу, ссылаясь на неправильный код robots.txt. Я больше склоняюсь ко второму.

Файл robots.txt необходим роботам поисковых систем, чтобы они могли понять, какие страницы и разделы сайта следует посещать и включать в индекс, а какие – не нужно. Запрещенные для посещения поисковыми ботами страницы не будут индексироваться и появляться в выдаче Яндекса, Google и прочих поисковиков.

Вот наглядный пример того, в чем разница между веб-ресурсом, у которого настроен файл robots, и сайтом без него:

Сайт с robots.txt и без robots.txt

В данной статье я расскажу о нескольких способах правильной настройки robots.txt для популярного движка WordPress.

Оптимальный код файла для WordPress

User-agent: *
Disallow: /wp-              # все файлы WP: /wp-json/, /wp-includes, /wp-content/plugins
Disallow: /?                # все параметры запроса с ?
Disallow: /*?               # поиск
Disallow: /&                # поиск
Disallow: /*&               # поиск
Disallow: /author/          # архив автора
Disallow: /embed            # все встраивания
Disallow: /page/            # все виды пагинации
Disallow: /trackback        # уведомление о ссылках-трекбэках
Allow: /uploads             # открываем uploads
Allow: /*.js                # внутри /wp- (/*/ - для приоритета)
Allow: /*.css               # внутри /wp- (/*/ - для приоритета)
Allow: /wp-*.png            # картинки в плагинах, cache папке и т.д.
Allow: /wp-*.jpg            # картинки в плагинах, cache папке и т.д.
Allow: /wp-*.jpeg           # картинки в плагинах, cache папке и т.д.
Allow: /wp-*.gif            # картинки в плагинах, cache папке и т.д.
Allow: /wp-*.svg            # картинки в плагинах, cache папке и т.д.
Allow: /wp-*.pdf            # файлы в плагинах, cache папке и т.д.
Allow: /wp-admin/admin-ajax.php

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

Важно!
Не забудьте поменять “https://domain.ru/sitemap.xml” на свой пусть к файлу sitemap.

Теперь разберем, какие директивы в коде что означают:

  • User-agent: Googlebot
    – для главного робота Гугла.
  • User-agent: Yandex
    – для главного бота Яндекса.

2. Строка Allow: /uploads указывается, чтобы разрешить ботам вносить в индекс страницы, где присутствует /uploads. Нужно обязательно указать данное правило, потому что выше запрещены к индексированию страницы, которые начинаются с /wp-, а проблема в том, что /uploads присутствует в /wp-content/uploads.

Команда Allow: /uploads нужна для перебивания правила Disallow: /wp-, так как по ссылкам типа /wp-content/uploads/ могут располагаться изображения, важные для индексации. Помимо картинок есть вероятность присутствия прочих файлов, которые нет нужды запрещать включать в поиск. Строчку Allow допускается прописывать и до, и после Disallow.

Подробнее о директиве Allow

3. Директивы Disallow: запрещают ботам переходить по ссылкам, начинающимся с:

  • Disallow: /trackback
    — закрывает уведомления
  • Disallow: /s или Disallow: /*?
    — закрывает страницы поиска
  • Disallow: /page/
    — закрывает все виды пагинации

4. Строчка Sitemap: http://domain.ru/sitemap.xml сообщает поисковому боту о XML файле с картой сайта. Если на вашем ресурсе присутствует данный файл, укажите к нему полный путь. Если их несколько, нужно прописать путь отдельно к каждому из них.

Это связано с тем, что доступ к фидам нужен, к примеру, для подключения сайта к каналу Яндекс Дзен, Турбо страниц. Могут быть еще некоторые случаи, где нужны открытые фиды. Через feed передается контент в формате .rss. Если вы не знаете что это такое, то читайте более подробную статью — что такое RSS.

У фидов собственный формат в заголовках ответа, что позволяет поисковым системам понять, что это фид, а не HTML документ, и обрабатывать его по-другому.

А если вы не хотите передавать RSS, чтобы например у вас не воровали через него контент, то тогда надежнее отключить его с помощью специальных плагинов, например Disable Feeds.

Сортировка правил перед обработкой

Google и Яндекс обрабатывают правила Disallow и Allow без соблюдения порядка, в котором они прописаны в robots.txt. Поисковики сортируют директивы от коротких к длинным, после чего обрабатывают последнюю подходящую директиву.

Например, данная инструкция:

User-agent: *
Allow: /uploads
Disallow: /wp-

Поисковые системы обработают следующим образом:

User-agent: *
Disallow: /wp-
Allow: /uploads

В случае проверки ссылки типа /wp-content/uploads/file.jpg, директива Disallow сначала запретит ссылку с /wp-, а затем Allow разрешит ее индексировать, поэтому ссылка будет доступна для роботов.

Стандартный файл robots для WordPress

Хотя первый метод является более современным и логичным, но я все же пользуюсь вторым файлом robots.txt. Потому что мне так спокойнее, что с помощью директивы Dissalow: /wp- я не запрещу что то нужное, поэтому я прописываю каждую папку отдельно.

Исходя из вышеперечисленных правок, у меня получается вот такой robots.txt:

User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-json/
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /embed
Disallow: /trackback
Disallow: /page/
Disallow: /search
Disallow: /&
Disallow: /?
Disallow: /*?
Allow: /wp-admin/admin-ajax.php

Sitemap: http://domain.ru/sitemap.xml

Важно!
Не забудьте поменять “https://domain.ru/sitemap.xml” на свой пусть к файлу sitemap.

Доработка файла под свои цели

Если потребуется заблокировать еще какие-то страницы или разделы веб-ресурса, добавьте директиву Disallow. К примеру, желая скрыть от роботов все публикации в рубрике News, пропишите правило:

Disallow: /news

Так вы запретите ботам переходить по ссылкам типа http://domain.ru/news и закроете от индексации такие страницы:

  • http://domain.ru/news;
  • http://domain.ru/my/news/nazvanie/;
  • http://domain.ru/category/newsletter-nazvanie.html.

Постоянно проверяйте, какие страницы проиндексированы поисковыми системами и находятся в выдаче. Сделать это можно с помощью оператора site:domain.ru.

Проверка индексации оператором site

И если заметили мусорные, ненужные страницы, то блокируйте их в robots.txt.

Проверка файла и документация

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

Для изменения содержания динамического robots налету, через хук do_robotstxt, добавьте данный код в файл funtcions.php:

add_action( 'do_robotstxt', 'my_robotstxt' );
function my_robotstxt(){
                $lines = [
                               'User-agent: *',
                               'Disallow: /wp-admin/',
                               'Disallow: /wp-includes/',
                               '',
                ];
                echo implode( "\r\n", $lines );
                die; // обрываем работу PHP
}

При переходе по ссылке http://example.com/robots.txt вы увидите следующий код:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Как создать файл robots.txt для WordPress
robots.txt для сайта WordPress

Читайте, дамы и господа — WordPress robots.txt: лучшие примеры для SEO.

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

По умолчанию WordPress автоматически создает виртуальный файл robots.txt
Виртуальный файл robots.txt в WordPress

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

Как создать файл robots. txt для WordPress

Robots.txt — это текстовый файл, который содержит параметры индексирования сайта для роботов поисковых систем.

Для начала напомню вам, создать (и редактировать) файл robots.txt для WordPress можно вручную и с помощью плагина Yoast SEO

Создать правильный robots txt для WordPress
Создать файл robots.txt

Друзья, имейте ввиду, что Yoast SEO устанавливает свои правила по умолчанию, которые перекрывают правила существующего виртуального файла robots.txt ВордПресс:

Редактировать содержимое файла robots.txt в Yoast SEO
Редактирование robots.txt в плагине Yoast SEO

Что должно быть в правильно составленного robots.txt? Идеального файла не существует. Например, сайт Yoast SEO использует такой robots.txt для WordPress:

User-agent: *

И всё. Для большинства сайтов WordPress лучший пример. Вот даже скриншот сделал у Yoast SEO:

Robots.txt подходит для большинства сайтов WordPress
Правильный robots.txt на сайте yoast.com

Что это значит? Директива говорит что, все поисковые роботы могут свободно сканировать этот сайт без ограничений. Этого хватит для правильной индексации сайта WP. А наша SEO специалисты рекомендуют почти тоже самое. Пример, правильно составленного robots.txt для WordPress сайта:

User-agent: *
Disallow:
Sitemap: https://mysite.ru/sitemap.xml

Данная запись в файле роботс делает доступным для индексирования полностью сайт для роботов всех известных поисковиков. Здесь, также прописан путь к карте сайта XML.

Создать и редактировать файл также можно при помощи All in One SEO Pack прямо из интерфейса SEO плагина. Модуль robots.txt в SEO-пакете Все в одном позволяет вам настроить файл robots.txt для вашего сайта, который переопределит файл robots.txt по умолчанию, который создает WordPress:

Как создать файл robots.txt для WordPress с помощью All in One SEO Pack
Применение плагина All in One SEO Pack

Вы сможете управлять своим файлом Robots.txt, в разделе All in One SEO Pack — Robots.txt. Сам официальный сайт плагина использует вот такой роботс:

В SEO пакете Все в одном позволяет вам настроить файл robots.txt для сайта
Пример файла Robots

Правила по умолчанию, которые отображаются в поле Создать файл Robots.txt (показано на снимке экрана выше), требуют, чтобы роботы не сканировали ваши основные файлы WordPress. Для поисковых систем нет необходимости обращаться к этим файлам напрямую, потому что они не содержат какого-либо релевантного контента сайта.

Плагин Robots.txt Editor

Плагин Robots.txt для WordPress — создание и редактирование файла robots.txt для сайта ВордПресс. Очень простой, лёгкий и эффективный плагин.

Создание и редактирование robots.txt для сайта WordPress
WordPress плагин Robots.txt Editor

Плагин Robots.txt Editor (редактор) позволяет создать и редактировать файл robots.txt на вашем сайте WordPress.

Плагин Robots.txt возможности

  • Работает в сети сайтов Multisite на поддоменах;
  • Пример правильного файла robots.txt для WordPress;
  • Не требует дополнительных настроек;
  • Абсолютно бесплатный.

Как использовать? Установите плагин robots.txt стандартным способом. То есть, из админки. Плагины — Добавить новый. Введите в окно поиска его название — Robots.txt Editor:

Плагин robots.txt для сайта WordPress
Добавить плагин Robots.txt Editor

Установили и сразу активировали. Всё, готово. Теперь смотрим, что получилось. Заходим, Настройки — Чтение и видим результат. Автоматически созданный правильный файл robots.txt для WordPress со ссылкой на ваш файл Sitemap.

Как добавить файл robots.txt в WordPress
Созданный файл robots.txt WordPress

Естественно, вы можете его легко отредактировать под свои нужды. А также просмотреть, нажав соответствующею ссылку — Просмотр robots.txt.

Как создать robots.txt вручную

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

В текстовом редакторе создайте файл с именем robots в формате txt и заполните его:

Как создать файл robots.txt для сайта WordPress вручную
Создать файл с именем robots.txt

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

Корневая папка (корневая директория/корневой каталог/корень документа) — это основная папка, в которой хранятся все файлы сайта. Обычно, это папка public_html (там где находятся файлы — .htaccess, wp-config.php и другие).

Создание и загрузка файла robots.txt для WordPress на хостинг
Загрузите файл в корневую папку вашего сайта 

Чтобы проверить, получилось ли у вас положить файл в нужное место, перейдите по адресу:

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

Проверка вашего файла robots.txt

Вы можете проверить файл robots.txt WordPress в Google Search Console и Яндекс. Вебмастер, чтобы убедиться, что он правильно составлен.

Например, проверка файла robots.txt WordPress в Яндекса. Вебмастер. В блоке Результаты анализа robots.txt перечислены директивы, которые будет учитывать робот при индексировании сайта.

Результаты анализа robots.txt WordPress в Яндекс.Вебмастер
Анализ robots.txt в Яндекс. Вебмастер

Если будет найдена ошибка, информация об этом будет показана вам.

В заключение

Для некоторых сайтов WordPress нет необходимости срочно изменять стандартный виртуальный файл robots.txt (по умолчанию). Но, если вам нужен физический файл robots.txt, то используйте плагины Robots.txt Editor, All in One SEO Pack или Yoast SEO. С ними можно легко редактировать файл прямо из панели инструментов WordPress, чтобы добавить свои собственные правила.

Привет всем! Сегодня тема очень важная это — robots.txt для WordPress сайта / блога. Поисковые роботы заходя на сайт или блог первым делом ищут . Файл robots.txt сообщает поисковой системе, куда разрешено заходить на вашем сайте. Что такое robots.txt?

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

robots.txt для WordPress 
Создание robots.txt для сайта WordPress

Robots.txt в большинстве случаев используется для исключения дубликатов, служебных страниц, удаленных страниц и других ненужных страниц из индекса поисковых систем. Кроме того, именно через robots.txt можно указать ПС адрес карты сайта.

Воспользуйтесь любым текстовым редактором (например, блокнотом), создайте файл с именем robots.txt и заполните его как показано ниже. Файл должен называться robots.txt, а не так — Robots.txt или ROBOTS. TXT.

Оптимальный, правильный robots.txt  для сайта WordPress. Общий для Google и Яндекс . Такой robots.txt у меня стоял на всех сайтах:

User-agent: *
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: /core/
Disallow: */feed
Disallow: *?s=
Disallow: *&s=
Disallow: /search
Disallow: */embed
Disallow: *?attachment_id=
Disallow: /id_date
Disallow: */page/
Disallow: *?stats_author
Disallow: *?all_comments
Disallow: *?post_type=func
Disallow: /filecode
Disallow: /profile
Disallow: /qtag/
Disallow: /articles/
Disallow: /artictag/
Allow: */uploads
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /*ajax

Sitemap: http://example.com/sitemap.xml

Стандартный robots.txt WordPress

Раздельный для Google и Yandex:

User-agent: Yandex
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-json/
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: */embed
Disallow: */page/
Disallow: /cgi-bin
Disallow: *?s=
Allow: /wp-admin/admin-ajax.php

Host: site.ru

User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-json/
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: */embed
Disallow: */page/
Disallow: /cgi-bin
Disallow: *?s=
Allow: /wp-admin/admin-ajax.php

Sitemap: http://сайт.ру/sitemap.xml
User-agent: *
Sitemap: https://wordpressmania.ru/sitemap_index.xml

Для большинства сайтов WordPress рекомендуется robots.txt:

User-agent: *

Все поисковые роботы могут свободно сканировать этот сайт без ограничений.

Стандарт robots.txt поддерживает добавление в файл ссылки на ваши XML-карты сайта. Это помогает поисковым системам обнаруживать местонахождение и содержание вашего сайта.

Yoast SEO всегда считали это излишним. Вы уже должны это сделать, добавив карту сайта
в Google Search Console, Яндекс Вебмастер и Bing для веб-мастеров, чтобы получить доступ к аналитике и данным о производительности. Если вы это сделали, вам не нужна ссылка в файле robots.txt.

Как настроить индивидуально важный файл robots.txt можно прочитав эти справки:

На странице помощи Яндекса. Проверить правильность составления файла можно в webmaster.yandex — Настройка индексирования — Анализ robots.txt. Далее, в Google robots.txt можно проверить по этой ссылке. Не забудьте что проверяемый блог должен быть добавлен в Инструменты для веб-мастеров Google.

Теперь остаётся загрузить созданный файл в корневой каталог вашего блога. Корень блога это — папка public_html, где находятся  файл config.php, index.php и так далее.

В заключение

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

Вот на этом позвольте с вами не надолго попрощаться. Удачи. До новых встреч на страницах блога.

Robots.txt– текстовой файл, который сообщает поисковым роботам, какие файлы и папки следует сканировать (индексировать), а какие сканировать не нужно.

Поисковые системы, такие как Яндекс и Google сначала проверяют файл robots.txt, после этого начинают обход с помощью веб-роботов, которые занимаются архивированием и категоризацией веб сайтов.

Файл robots.txt содержит набор инструкций, которые просят бота игнорировать определенные файлы или каталоги. Это может быть сделано в целях конфиденциальности или потому что владелец сайта считает, что содержимое этих файлов и каталогов не должны появляться в выдаче поисковых систем.

Правильный robots.txt для WordPress - 2023 - png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=

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

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

# Host прописывать больше не нужно.

Расширенный вариант (разделенные правила для 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

# Host прописывать больше не нужно.

Оптимальный Robots. txt для WooCommerce

Владельцы интернет-магазинов на WordPress – WooCommerce также должны позаботиться о правильном robots.txt. Мы закроем от индексации корзину, страницу оформления заказа и ссылки на добавление товара в корзину.

User-agent: *
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=
Disallow: /cart/
Disallow: /checkout/
Disallow: /*add-to-cart=*

Allow: */uploads
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-admin/admin-ajax.php

Sitemap: https://site.ru/sitemap_index.xml

Где находится файл robots. txt в WordPress

Обычно robots.txt располагается в корне сайта. Если его нет, то потребуется создать текстовой файл и загрузить его на сайт по FTP или панель управления на хостинге. Если Вы не смогли найти robots.txt в корне сайта, но при переходе по ссылке вашсайт.ру/robots.txt
он открывается, значит какой то из SEO плагинов сам генерирует его.

К примеру плагин Yoast SEO создает виртуальный файл, которого нет в корне сайта.

Как редактировать robots.txt с помощью Yoast SEO

  1. Зайдите в админ панель сайта
  2. Слева в консоли наведите на кнопку SEO и в выпадающем окне выберите “Инструменты”. Перейдите в раздел, как указано на картинке.
    Правильный robots.txt для WordPress - 2023 - png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=
  3. Зайдите в редактор файлов
    Этот инструмент позволит быстро отредактировать такие важные для вашего SEO файлы, как robots.txt и .htaccess (при его наличии). Правильный robots.txt для WordPress - 2023 - png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=
  4. Если файла robots.txt нет, нажмите на кнопку создать, либо вставьте нужное содержимое.
    Содержимое файла для WordPress и WooCommerce можно взять из примеров выше.
    Правильный robots.txt для WordPress - 2023 - png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=
  5. Сохраните изменения в robots.txt

Часто задаваемые вопросы

Закрывать ли feed в robots.txt?

По умолчанию мы рекомендуем закрывать feed от индексации в robots.txt. Открытие feed может потребоваться, если вы например настраиваете Турбо-страницы от Яндекса или выгружаете свою ленту в другой сервис.

Как разрешить индексировать feed Турбо-страниц

Добавьте директиву: Allow: /feed/turbo/, тогда Яндекс сможет проверять ваши турбо-страницы и обновлять их.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оцените статью
NaWordpress.ru
Добавить комментарий