Robots.txt для WordPress

Стандартный или правильный Robots.txt для WordPress - Базовый файл robots.txt для WordPress и Расширенный вариант правил robots.txt для Google и Яндекса

Robots.txt для WordPress
7 мин
Автор PINTA IT

Стандартный или правильный Robots.txt для WordPress

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

Базовый файл 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.com/sitemap.xml
Sitemap: http://site.com/sitemap.xml.gz

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

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

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.com/sitemap.xml
Sitemap: http://site.com/sitemap.xml.gz

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

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

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

User-agent: *                  # Создаем секцию правил для роботов. * значит для всех
							   # роботов. Чтобы указать секцию правил для отдельного
							   # робота, вместо * укажите его имя: GoogleBot, Yandex.
Disallow: /cgi-bin             # Стандартная папка на хостинге.
Disallow: /wp-admin/           # Закрываем админку.
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). Это независимая
# директива и дублировать её для каждого User-agent не нужно. Так например
# Google XML Sitemap создает 2 карты сайта:
Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap.xml.gz

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

Строгий robots.txt для WordPress

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

User-agent: *                  # Создаем секцию правил для роботов. * значит для всех
							   # роботов. Чтобы указать секцию правил для отдельного
							   # робота, вместо * укажите его имя: GoogleBot, Yandex.
Disallow: /cgi-bin             # Стандартная папка на хостинге.
Disallow: /wp-admin/           # Закрываем админку.
Disallow: /wp/                 # Каталог куда установлено ядро WP. Обычно ядро
							   # лежит рядом с wp-content и правило можно удалить.
Disallow: /?                   # Все параметры запроса на главной.
Disallow: *?s=                 # Поиск.
Disallow: *&s=                 # Поиск.
Disallow: /search              # Поиск.
Disallow: /author/             # Архив автора.
Disallow: */embed              # Все встраивания.
Disallow: */page/              # Все виды пагинации.
Disallow: */xmlrpc.php         # Файл WordPress API
Disallow: *utm*=               # Ссылки с utm-метками
Disallow: *openstat=           # Ссылки с метками openstat
Disallow: /wp-                 # Все связанное с WP - это: /wp-content /wp-admin
							   # /wp-includes /wp-json wp-login.php wp-register.php.
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-*/*.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` на ваш сайт.

Разберем Директивы robots.txt

User-agent: Определяет для какого робота будет работать блок правил, который написан после этой строки. Тут возможны два варианта:

  1. User-agent: *  указывает, что правила после этой строки будут работать для всех поисковых роботов.
  2. User-agent: ИМЯ_РОБОТА  указывает конкретного робота, для которого будет работать блок правил. Например: User-agent: Yandex, User-agent: Googlebot.

Возможные роботы (боты) Яндекса:

  • YandexBot  основной индексирующий робот.
  • YandexImages  индексатор Яндекс.Картинок.
  • YandexMedia  индексирует мультимедийные данные.
  • YandexPagechecker  парсит микроразметку.
  • YandexDirect  скачивает информацию о контенте сайтов-партнеров Рекламной сети, чтобы уточнить их тематику для подбора релевантной рекламы, особым образом интерпретирует robots.txt.
  • Полный список роботов Яндекса.

Возможные роботы (боты) Google:

  • Googlebot  основной индексирующий робот.
  • Googlebot-Image  индексирует изображения.
  • Mediapartners-Google  робот отвечающий за размещение рекламы на сайте. Важен для тех, у кого крутится реклама от AdSense. Благодаря этому user-agent вы можете управлять размещение рекламы запрещая или разрешая её на тех или иных страницах.
  • Полный список роботов Google.Disallow:

Запрещает роботам "ходить" по ссылкам, в которых встречается указанная подстрока:

  • Disallow: /cgi-bin  закрывает каталог скриптов на сервере.
  • Disallow: *?s=  закрывает страницы поиска.
  • Disallow: */page/  закрывает все виды пагинации.

Пример добавления нового правила. Допустим нам нужно закрыть от индексации все записи в категории 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: */uploads мы намеренно разрешаем индексировать страницы, в которых встречается /uploads. Это правило обязательно, т.к. выше мы запрещаем индексировать страницы начинающихся с /wp-, а /wp- входит в /wp-content/uploads. Поэтому, чтобы перебить правило Disallow: /wp- нужна строчка Allow: */uploads, ведь по ссылкам типа /wp-content/uploads/... у нас могут лежать картинки, которые должны индексироваться, так же там могут лежать какие-то загруженные файлы, которые незачем скрывать. Allow: может быть "до" или "после" Disallow:.

Sitemap: Правило Sitemap: http://example.com/sitemap.xml указывает роботу на файл с картой сайта в формате XML. Если у вас на сайте есть такой файл, то пропишите полный путь к нему. Таких файлов может быть несколько, тогда указываем путь к каждому отдельно.

ВАЖНО !!! Сортировка правил robots.txt

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 её разрешит и ссылка будет доступна для сканирования.

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

Проверить правильно ли работают правила можно по следующим ссылкам:

Похожие публикации