Как правильно составить robots txt для wordpress

Файл 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

Скачать .zip

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

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

1. Директива User-agent: * означает, что все правила, описанные ниже нее, касаются всех роботов поисковых систем. Если вы хотите прописать правила для одного определенного бота, вместо * нужно ввести его имя. Например:

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

Подробнее о директиве User-agent

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/ — закрывает все виды пагинации

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

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

Рекомендуется не закрывать от индексации фиды: Disallow: /feed.

Это связано с тем, что доступ к фидам нужен, к примеру, для подключения сайта к каналу Яндекс Дзен, Турбо страниц. Могут быть еще некоторые случаи, где нужны открытые фиды. Через 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.txt длиннее, тем
она приоритетнее. Когда директивы одинаковой длины, приоритетной становится 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

Скачать .zip

Важно! Не забудьте поменять “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.

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

Проверить корректность директив, прописанных в robots.txt, вы можете по ссылкам:

  1. Google Search Console https://www.google.com/webmasters/tools/dashboard?pli=1. Необходимо зарегистрировать сайт в панели вебмастера, если вы этого еще не сделали.
  2. Яндекс: http://webmaster.yandex.ru/robots.xml.
  3. Сервис для создания и проверки файла robots: https://seolib.ru/tools/generate/robots/.
  4. Сервис для создания robots.txt: http://pr-cy.ru/robots/.
  5. Документация Яндекса: https://yandex.ru/support/webmaster/controlling-robot/robots-txt.html.
  6. Документация Google: https://developers.google.com/search/reference/robots_txt.

Подробнее о проверке файла robots.txt

Динамический 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( "rn", $lines );
                die; // обрываем работу PHP
}

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

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

Заключение

Обязательно следите за актуальностью своего robots.txt. Проверяйте страницы на индексацию, чтобы там не было мусорных, не нужных страниц. Если такие заметили, то блокируйте их. При внесении изменений в файл robots.txt для уже рабочего веб-сайта результат будет видно не раньше, чем через 2-3 месяца.

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

В этой статье пример оптимального, на мой взгляд, кода для файла 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

Важно понимать, что ниже приведен универсальный пример кода для файла robots.txt. Для каждого конкретного сайта его нужно расширять или вносить корректировки. И лучше не трогайте ничего если не понимаете что делаете – обращайтесь к знающим людям.

Версия 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: вы можете видеть дополнительные, казалось бы ненужные, знаки * – они нужны для увеличения приоритета правила. Зачем это нужно смотрите в сортировке правил.

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

  • Google doc по robots.txt.
  • Yandex doc по robots.txt
User-agent:

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

  1. User-agent: * — указывает, что правила после этой строки будут работать для всех поисковых роботов.

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

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

Yandex робот проверяет наличие записей, начинающихся с User-agent:, в них учитываются подстроки Yandex (регистр значения не имеет) или *. Если обнаружена строка User-agent: Yandex, то строка User-agent: * не учитывается. Если строки User-agent: Yandex и User-agent: * отсутствуют, считается, что доступ роботу не ограничен.

  • Yandex — любой робот Яндекса.
  • YandexImages – Индексирует изображения для показа на Яндекс Картинках.
  • YandexMedia – Индексирует мультимедийные данные.
  • YandexDirect – Скачивает информацию о контенте сайтов-партнеров Рекламной сети Яндекса, чтобы уточнить их тематику для подбора релевантной рекламы.
  • YandexDirectDyn – Скачивает файл фавиконки сайта для отображения в результатах поиска.
  • YandexBot – Основной индексирующий робот.
  • YandexAccessibilityBot – Скачивает страницы для проверки их доступности пользователям. Его максимальная частота обращений к сайту составляет 3 обращения в секунду. Робот игнорирует настройку в интерфейсе Яндекс Вебмастера.
  • YandexAdNet – Робот Рекламной сети Яндекса.
  • YandexBlogs – Робот поиска по блогам, индексирующий комментарии постов.
  • YandexCalendar – Робот Яндекс Календаря. Скачивает файлы календарей по инициативе пользователей, которые часто располагаются в запрещенных для индексации каталогах.
  • YandexDialogs – Отправляет запросы в навыки Алисы.
  • YaDirectFetcher – Скачивает целевые страницы рекламных объявлений для проверки их доступности и уточнения тематики. Это необходимо для размещения объявлений в поисковой выдаче и на сайтах-партнерах.. Робот не использует файл robots.txt, поэтому игнорирует директивы, установленные для него.
  • YandexForDomain – Робот почты для домена, используется при проверке прав на владение доменом.
  • YandexImageResizer – Робот мобильных сервисов.
  • YandexMobileBot – Определяет страницы с версткой, подходящей под мобильные устройства.
  • YandexMarket – Робот Яндекс Маркета.
  • YandexMetrika – Робот Яндекс Метрики. Скачивает страницы сайта для проверки их доступности, в том числе проверяет целевые страницы объявлений Яндекс Директа. Робот не использует файл robots.txt, поэтому игнорирует директивы, установленные для него.
  • YandexMobileScreenShotBot – Делает снимок мобильной страницы.
  • YandexNews – Робот Яндекс Новостей.
  • YandexOntoDB – Робот объектного ответа.
  • YandexOntoDBAPI – Робот объектного ответа, скачивающий динамические данные.
  • YandexPagechecker – Обращается к странице при валидации микроразметки через форму Валидатор микроразметки.
  • YandexPartner – Скачивает информацию о контенте сайтов-партнеров Яндекса
  • YandexRCA – Собирает данные для формирования превью. Например, для расширенного отображения сайта в поиске.
  • YandexSearchShop – Скачивает YML-файлы каталогов товаров (по инициативе пользователей), которые часто располагаются в запрещенных для индексации каталогах.
  • YandexSitelinks – Проверяет доступность страниц, которые используются в качестве быстрых ссылок.
  • YandexSpravBot – Робот Яндекс Бизнеса.
  • YandexTracker – Робот Яндекс Трекера.
  • YandexTurbo – Обходит RSS-канал, созданный для формирования Турбо-страниц. Его максимальная частота обращений к сайту составляет 3 обращения в секунду. Робот игнорирует настройку в интерфейсе Яндекс Вебмастера и директиву Crawl-delay.
  • YandexUserproxy – Проксирует действия пользователей на сервисах Яндекса: отправляет запросы в ответ на нажатие кнопок, скачивает страницы для перевода онлайн и т. д.
  • YandexVertis – Робот поисковых вертикалей.
  • YandexVerticals – Робот Яндекс Вертикалей: Авто.ру, Янекс.Недвижимость, Яндекс Работа, Яндекс Отзывы.
  • YandexVideo – Индексирует видео для показа в поиске Яндекса по видео.
  • YandexVideoParser – Индексирует видео для показа в поиске Яндекса по видео.
  • YandexWebmaster – Робот Яндекс Вебмастера.
  • Полный список роботов Яндекса.

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

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

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

  • 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.

ВАЖНО о кириллице: роботы не понимают кириллицу, её им нужно предоставлять в кодированном виде. Например:

Disallow: /каталог                                    # неправильно.
Disallow: /%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3 # правильно.
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 и документация

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

  • Яндекс: http://webmaster.yandex.ru/robots.xml.
  • Google: https://www.google.com/webmasters/tools/robots-testing-tool Нужна авторизация и наличия сайта в панели веб-мастера.

  • Яндекс документация robots.txt.
  • Google документация robots.txt

  • Сервис для создания файла robots.txt: http://pr-cy.ru/robots/
  • Сервис для создания и проверки robots.txt: https://seolib.ru/tools/generate/robots/

robots.txt в WordPress

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

Изменить содержание robots.txt можно через:

  • Плагин https://ru.wordpress.org/plugins/pc-robotstxt/ или ему подобный.
  • Хук robots_txt.
  • Хук do_robotstxt.

Рассмотрим как использовать оба хука.

robots_txt

По умолчанию WP 5.5 создает следующий контент для страницы /robots.txt:

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 .= "$strn";

	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( "rn", $lines );

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

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

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

Рекомендации

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

  • Прописывание Sitemap после каждого User-agent
    Это делать не нужно. Один sitemap должен быть указан один раз в любом месте файла robots.txt.

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

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

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

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

Спорные рекомендации

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

  • Комментарии
    Некоторые ребята советуют закрывать от индексирования комментарии Disallow: /comments и Disallow: */comment-*.

  • Открыть папку uploads только для Googlebot-Image и YandexImages

    User-agent: Googlebot-Image
    Allow: /wp-content/uploads/
    User-agent: YandexImages
    Allow: /wp-content/uploads/

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

Источник по рекомендациям.

Нельзя закрывать /wp-admin/admin-ajax.php

/wp-admin/admin-ajax.php это дефолтный файл WordPress, на который отправлются AJAX запросы.

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

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

Правильно так:

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

Google не понимает эту директиву. Таймаут его роботам можно указать в панели вебмастера.

Яндекс перестал учитывать Crawl-delay

Подробнее Яндекс перестал учитывать Crawl-delay:

Проанализировав письма за последние два года в нашу поддержку по вопросам индексирования, мы выяснили, что одной из основных причин медленного скачивания документов является неправильно настроенная директива Crawl-delay в robots.txt […] Для того чтобы владельцам сайтов не пришлось больше об этом беспокоиться и чтобы все действительно нужные страницы сайтов появлялись и обновлялись в поиске быстро, мы решили отказаться от учёта директивы Crawl-delay.

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

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

Host (устарела)

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

Подробнее читайте на сайте Яндекса.

Поддерживаемые директвы от Google.

Заключение

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

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

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

Что такое robots.txt?

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

В базовый набор директив (параметров) для поисковой системы Яндекс входят:

Директива Описание
User-agent Указывает на робота, для которого действуют правила (например, Yandex).
Allow Разрешает обход и индексирование разделов, страниц, файлов.
Disallow Запрещает обход и индексирование разделов, страниц, файлов.
Clean-param Указывает роботу, какие параметры URL (например, UTM-метки) не следует учитывать при индексировании.
Sitemap Указывает путь к файлу Sitemap, который размещен на сайте.

Все директивы, кроме Clean-param одинаково интерпретируются в других поисковых системах и помогают решить 90% задач связанных с индексированием сайтов на WordPress.

Краулинговый бюджет: что это и как им управлять

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

Crawler (веб-паук, краулер) или поисковой бот. Его задачи: найти, прочитать и внести в поисковую базу данных веб-страницы найденные в Интернете.

Владельцы сайтов могут управлять поведением краулера. Для этого достаточно разместить инструкции в robots.txt с помощью указанных директив в исходном коде страниц.

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

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

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

Плагины позволяют редактировать robots.txt из панели администратора WordPress и не создают копию файла в корневой папке сайта (например, в режиме Multisite).

Если вы не используете плагин, создайте файл заново и проверьте его доступность. Ручная проверка доступности должна выявить:

  • Наличие файла в корневой директории,
  • Правильный ответ сервера (код 200 ОК),
  • Допустимый размер файла (не более 500 Кб).

После проверки сообщите поисковым системам о внесении изменений.

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

После инсталляции WordPress 5.9.3 по умолчанию robots.txt выглядит так:

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

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

Из содержания следует, что разработчики рекомендуют закрывать от поисковых машин раздел административной панели, кроме сценария admin-ajax.php из этой же директории. При составлении файла robots.txt для любого проекта под управлением WordPress это необходимо учитывать.

Правильный robots.txt

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

Системные директории и файлы

Директория / Файл Описание
/wp-admin Панель администратора
/wp-json JSON REST API
/xmlrpc.php Протокол XML-RPC

Параметры URL

Параметр Описание
s Стандартная функция поиска
author Личная страница пользователя
p&preview Просмотр черновика записи
customize_theme Изменение внешнего вида темы оформления
customize_autosaved Автосохранение состояния кастомайзера

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

Примечательно, что системные каталоги, файлы и параметры URL можно запретить с помощью директивы Disallow без использования Clean-param. В результате правильный robots.txt для WordPress выглядит так:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

User-agent: Yandex
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

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

Не забудьте изменить значение директивы Sitemap.

Это универсальная конфигурация robots.txt для сайтов под управлением WordPress.

Значение /*? директивы Disallow запрещает к индексированию все параметры URL для главной страницы, записей и категорий. В том числе: рекламные UTM-метки, параметры плагинов, поисковых систем, сервисов коллтрекинга и CRM-платформ.

Отлично! Теперь перейдем к индивидуальной настройке.

Несколько примеров из практики

Запрет индексирования AMP страниц в поиске Яндекса

Сайт использует плагин для генерации мобильных страниц в формате AMP для поисковой системы Google. Яндекс их не поддерживает, но умеет сканировать. Для экономии квоты, запрещаем обход AMP страниц для Яндекса с помощью директивы Disallow:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

User-agent: Yandex
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /amp
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

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

Не забудьте изменить значение директивы Sitemap.

Запрет индексирования служебных URL

Сайт использует плагин кастомной авторизации. Ссылки на страницы входа, регистрации и восстановления пароля выглядят так:

  • https://example.com/login,
  • https://example.com/register,
  • https://example.com/reset-password.

Предварительно, исключим страницы из wp-sitemap.xml и добавим запрет на их сканирование с помощью директивы Disallow в файле robots.txt:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /login
Disallow: /register
Disallow: /reset-password
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

User-agent: Yandex
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /amp
Disallow: /login
Disallow: /register
Disallow: /reset-password
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

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

Не забудьте изменить значение директивы Sitemap.

Использование директивы Clean-param

Директива Clean-param позволяет гибко настроить индексирование страниц с параметрами URL, которые влияют на содержание страниц.

Она поддерживается только поисковой системой Яндекса. Поисковые роботы Google теперь работают с параметрами URL автоматически.

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

Параметр Описание
orderby Функция сортировки
add-to-cart Функция добавления товара в корзину
removed_item Функция удаления товара из корзины

Чтобы разрешить индексирование каталога с сортировками в Яндексе без ущерба квоте на переобход сайта, потребуется сделать несколько корректировок.

Разрешим сканирование параметров URL в каталоге, где установлен Woocommerce. Определим лишние параметры — это add-to-cart и removed_item. Воспользуемся директивой Clean-param и внесем изменения:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /login
Disallow: /register
Disallow: /reset-password
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

User-agent: Yandex
Allow: /catalog/?
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /amp
Disallow: /login
Disallow: /register
Disallow: /reset-password
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

Clean-param: add-to-cart
Clean-param: removed_item

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

Не забудьте изменить значение директивы Sitemap.

Сканирование сортировок товара разрешено в рамках экономии квоты переобхода страниц. Поисковой бот Яндекса не будет сканировать параметры URL предназначенные для манипуляций с корзиной товаров.

Отслеживание лишних страниц в поисковой консоли

Для получения максимального эффекта регулярно отслеживайте сканирование страниц в поисковой консоли Яндекса (разд. Статистика обхода) и запрещайте обход лишних страниц в robots.txt.

При настройке robots.txt я не рекомендую:

  • Запрещать обход страниц пагинации записей и разделов (используйте атрибут rel="canonical"),
  • Исключать из поиска комментарии пользователей к записям,
  • Запрещать сканирование системных папок, где хранятся изображения, скрипты и стили тем оформления WordPress: wp-content, wp-includes и пр.

Как сообщить об изменениях поисковикам

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

Содержание

  1. Для чего нужен robots.txt
  2. Где лежит файл robots в WordPress
  3. Как создать правильный robots txt
  4. Настройка команд
  5. Рабочий пример инструкций для WordPress
  6. Как проверить работу robots.txt
  7. Плагин–генератор Virtual Robots.txt
  8. Добавить с помощью Yoast SEO
  9. Изменить модулем в All in One SEO
  10. Правильная настройка для плагина WooCommerce
  11. Итог

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

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

Где лежит файл robots в WordPress

На любом из ресурсов robots.txt должен лежать в корневой папке. В случае с вордпресс, там где находится папка wp-admin и ей подобные.

Где располагается robots txt

Расположение на сервере

Если не создавался и не загружался администратором сайта, то по умолчанию на сервере не найти. Стандартная сборка WordPress не предусматривает наличие такого объекта.

Как создать правильный robots txt

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

Блокнот

Сохраняем документ

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

При желании можете сразу скачать его на сервер в корень через программу FileZilla.

Кодировка и сохранение

Сохранение роботса

Настройка команд

Выделю четыре основные команды:

  • User-agent: показывает правила для разных поисковых роботов, либо для всех, либо для отдельных
  • Disalow: запрещает доступ
  • Allow: разрешаем доступ
  • Sitemap: адрес до XML карты

Устаревшие и ненужные конфигурации:

  1. Host: указывает главное зеркало, стало не нужным, потому что поиск сам определит правильный вариант
  2. Crawl-delay: ограничивает время на пребывание робота на странице, сейчас сервера мощные и беспокоится о производительности не нужно
  3. Clean-param: ограничивает загрузку дублирующегося контента, прописать можно, но толку не будет, поисковик проиндексирует все, что есть на сайте и возьмет по–максимому страниц

Рабочий пример инструкций для WordPress

Дело в том что поисковой робот не любит запрещающие директивы, и все равно возьмет в оборот, что ему нужно. Запрет на индексацию должен быть объектов, которые 100% не должны быть в поиске и в базе Яндекса и Гугла. Данный рабочий пример кода помещаем в robots txt.

User-agent: *
Disallow: /wp-
Disallow: /tag/
Disallow: */trackback
Disallow: */page
Disallow: /author/*
Disallow: /template.html
Disallow: /readme.html
Disallow: *?replytocom
Allow: */uploads
Allow: *.js
Allow: *.css
Allow: *.png
Allow: *.gif
Allow: *.jpg
Sitemap: https://ваш домен/sitemap.xml

Разберемся с текстом и посмотрим что именно мы разрешили, а что запретили:

  • User-agent, поставили знак *, тем самым сообщив что все поисковые машины должны подчиняться правилам
  • Блок с Disallow запрещает к индексу все технические страницы и дубли. обратите внимание что я заблокировал папки начинающиеся на wp-
  • Блок Allow разрешает сканировать скрипты, картинки и css файлы, это необходимо для правильного представления проекта в поиске иначе вы получите портянку без оформления
  • Sitemap: показывает путь до XML карты сайта, обязательно нужно ее сделать, а так же заменить надпись»ваш домен»

Остальные директивы рекомендую не вносить, после сохранения и внесения правок, загружаем стандартный robots txt в корень WordPress. Для проверки наличия открываем такой адрес https://your-domain/robots.txt, заменяем домен на свой, должно отобразится так.

url расположения

Адрес в строке запроса

Как проверить работу robots.txt

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

Валидатор yandex

Проверка документа в yandex

Ниже появится блок с ошибками, если их нет то переходим к следующему шагу, если неверно отображается команда, то исправляем и снова проверяем.

Ошибки всего файла robots

Отсутствие ошибок в валидаторе

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

Проверка отдельный страниц

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

Проверили, все срабатывает, перейдем к следующему способу это настройка robots с помощью плагинов. Если процесс не понятен, то смотрите наше видео.

Плагин–генератор Virtual Robots.txt

Если не хочется связываться с FTP подключением, то приходит на помощь один отличный WordPress плагин–генератор называется Virtual Robots.txt. Устанавливаем стандартно из админки вордпресс поиском или загрузкой архива, выглядит так.

Плагин Virtual Robots.txt

Как выглядит Virtual Robots.txt

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

Загрузка данных в Virtual Robots.txt

Настройка Virtual Robots.txt

Роботс автоматически создастся и станет доступен по тому же адресу. При желании проверить есть он в файлах WordPress – ничего не увидим, потому что документ виртуальный и редактировать можно только из плагина, но Yandex и Google он будет виден.

Добавить с помощью Yoast SEO

Знаменитый плагин Yoast SEO предоставляет возможность добавить и изменить robots.txt из панели WordPress. Причем созданный файл появляется на сервере (а не виртуально) и находится в корне сайта, то есть после удаления или деактивации роботс остается. Переходим в Инструменты > Редактор.

Редактор в Yoast Seo

Yoast SEO редактор файлов

Если robots есть, то отобразится на странице, если нет есть кнопка «создать», нажимаем на нее.

Создание файла индексации

Кнопка создания robots

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

Изменить модулем в All in One SEO

Старый плагин All in One SEO умеет изменять robots txt, чтобы активировать возможность переходим в раздел модули и находим одноименный пункт, нажимаем Activate.

Модуль AIOSP

Модули в All In one Seo

В меню All in One SEO появится новый раздел, заходим, видим функционал конструктора.

Добавление и удаление директив

Работа в модуле AIOS
  1. Записываем имя агента, в нашем случае * или оставляем пустым
  2. Разрешаем или запрещаем индексацию
  3. Директория или страница куда не нужно идти
  4. Результат

Модуль не удобный, создать по такому принципу валидный и корректный robots.txt трудно. Лучше используйте другие инструменты.

Правильная настройка для плагина WooCommerce

Чтобы сделать правильную настройку для плагина интернет магазина на WordPress WooCommerce, добавьте эти строки к остальным:

Disallow: /cart/
Disallow: /checkout/
Disallow: /*add-to-cart=*
Disallow: /my-account/

Делаем аналогичные действия и загружаем на сервер через FTP или плагином.

Итог

Подведем итог что нужно сделать чтобы на сайте WordPress был корректный файл для поисковиков:

  • Создаем вручную или с помощью плагина файл
  • Записываем в него инструкции из статьи
  • Загружаем на сервер
  • Проверяем в валидаторе Yandex
  • Не пользуйтесь генераторами robots txt в интернете, пошевелите немного руками

Совершенствуйте свои блоги на WordPress, продвигайтесь и правильно настраивайте все параметры, а мы в этом поможем, успехов!

Пожалуйста, оцените материал:

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

Для чего нужен файл robots.txt?

Для того чтобы сайт начал отображаться в Яндекс, Google, Yahoo и других поисковых системах (ПС), они должны внести его страницы в свои каталоги. Этот процесс называется индексацией.

Чтобы проиндексировать тот или иной веб-ресурс, поисковые системы посылают на сайты поисковых роботов (иногда их называют ботами). Они методично сканируют и обрабатывают содержимое каждой страницы сайта. После окончания индексации начинается «социальная жизнь» ресурса: его контент попадается пользователям в результатах поиска по запросам.

Многие сайты создаются на готовых движках и CMS (системах управления контентом) WordPress, Joomla, Drupal и других. Как правило, такие системы содержат страницы, которые не должны попадать в поисковую выдачу:

  • временные файлы (tmp);
  • личные данные посетителей (private);
  • служебные страницы (admin);
  • результаты поиска по сайту и т. д.

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

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

Где находится robots.txt WordPress?

Файл robots.txt находится в корневой папке сайта. Если сайт создавался на WordPress, скорее всего, robots.txt присутствует в нем по умолчанию. Чтобы найти robots.txt на WordPress, введите в адресной строке браузера:

https://www.домен-вашего-сайта/robots.txt
  • Если файл присутствует, откроется страница с перечнем правил индексации. Однако чтобы редактировать их, вам потребуется найти и открыть robots.txt на хостинге. Как правило, он находится в корневой папке сайта:
  • Если же файл robots.txt по какой-то причине отсутствует, вы можете создать его вручную на своем компьютере и загрузить на хостинг или воспользоваться готовыми решениями (плагинами WordPress).

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

Есть два способа создания robots.txt:

  1. Вручную на компьютере.

  2. С помощью плагинов в WordPress.

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


Создание robots.txt вручную

  1. 1.

    Откройте программу «Блокнот».

  2. 2.

    Нажмите ФайлСохранить как… (или комбинацию клавиш Ctrl + Shift + S):

  3. 3.

    Введите название robots.txt и нажмите Сохранить.

  4. 4.

    Откройте корневую папку сайта и загрузите в нее созданный файл по инструкции.

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


Создание robots.txt с помощью плагина

  1. 1.

    Откройте административную панель WordPress по инструкции.

  2. 2.

    Перейдите в раздел «Плагины» и нажмите Добавить новый:

  3. 3.

    Введите в строке поиска справа название Yoast SEO и нажмите Enter.

  4. 4.

    Нажмите УстановитьАктивировать:

  5. 5.

    Перейдите к настройкам плагина, выбрав в меню SEOИнструменты. Затем нажмите Редактор файлов:

  6. 6.

    Нажмите Создать файл robots.txt:

  7. 7.

    Нажмите Сохранить изменения в robots.txt:

    Готово, файл с минимальным количеством директив будет создан автоматически.

Настройка robots.txt WordPress

После создания файла вам предстоит настроить robots.txt для своего сайта. Рассмотрим основы синтаксиса (структуры) этого файла:

  • Файл может состоять из одной и более групп директив (правил).
  • В каждой группе должно указываться, для какого поискового робота предназначены правила, к каким разделам/файлам у него нет доступа, а к какому — есть.
  • Правила читаются поисковыми роботами по порядку, сверху вниз.
  • Файл чувствителен к регистру, поэтому если название раздела или файла задано капслоком (например, FILE.PDF), именно так стоит писать и в robots.txt.
  • Все правила одной группы должны следовать без пропуска строк.
  • Чтобы оставить комментарий, нужно прописать шарп (#) в начале строки.

Все правила в файле задаются через двоеточие. Например:

Где User-agent — команда (директива), а Googlebot — значение.

Основные директивы и их значения

User-agent — эта директива указывает, на каких поисковых роботов распространяются остальные правила в документе. Она может принимать следующие значения:

  • User-agent: * — общее правило для всех поисковых систем;
  • User-agent: Googlebot — робот Google;
  • User-agent: Yandex — робот Яндекс;
  • User-agent: Mai.ru — робот Mail.ru;
  • User-agent: Yahoo Slurp — робот Yahoo и др.

У крупнейших поисковых систем Яндекс и Google есть десятки роботов, предназначенных для индексации конкретных разделов и элементов сайтов. Например:

  • YandexBot — для органической выдачи;
  • YandexDirect — для контекстной рекламы;
  • YandexNews — для новостных сайтов и т. п.

Для решения некоторых специфических задач веб-разработчики могут обращаться к конкретным поисковым роботам и настраивать правила исключительно для них.

Disallow — это директива, которая указывает, какие разделы или страницы нельзя посещать поисковым роботам. Все значения задаются в виде относительных ссылок (то есть без указания домена). Основные правила запрета:

  • Disallow: /wp-admin — закрывает админку сайта;
  • Disallow: /cgi-bin — запрет индексации директории, в которой хранятся CGI-скрипты;
  • Disallow: /*? или Disallow: /search — закрывает от индексации поиск на сайте;
  • Disallow: *utm* — закрывает все страницы с UTM-метками;
  • Disallow: */xmlrpc.php — закрывает файл с API WordPress и т. д.

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

Allow — это директива, которая указывает, какие разделы и страницы должны проиндексировать поисковые роботы. Как и с директивой Disallow, в значении нужно указывать относительные ссылки:

  • Allow: /*.css или Allow: *.css — индексировать все css-файлы;
  • Allow: /*.js — обходить js-файлы;
  • Allow: /wp-admin/admin-ajax.php — разрешает индексацию асинхронных JS-скриптов, которые используются в некоторых темах.

В директиве Allow не нужно указывать все разделы и файлы сайта. Проиндексируется всё, что не было запрещено директивой Disallow. Поэтому задавайте только исключения из правила Disallow.

Sitemap — это необязательная директива, которая указывает, где находится карта сайта Sitemap. Единственная директива, которая поддерживает абсолютные ссылки (то есть местоположение файла должно указываться целиком): Sitemap: https://site.ru/sitemap.xml , где site.ru — имя домена.

Также есть некоторые директивы, которые считаются уже устаревшими. Их можно удалить из кода, чтобы не «засорять» файл:

  • Crawl-delay. Задает паузу в индексации для поисковых роботов. Например, если задать для Crawl-Delay параметр 2 секунды, то каждый новый раздел/файл будет индексироваться через 2 секунды после предыдущего. Это правило раньше указывали, чтобы не создавать дополнительную нагрузку на хостинг. Но сейчас мощности современных процессоров достаточно для любой нагрузки.
  • Host. Указывает основное зеркало сайта. Например, если все страницы сайта доступны с www и без этого префикса, один из вариантов будет считаться зеркалом. Главное — чтобы на них совпадал контент. Раньше зеркало нужно было задавать в robots.txt, но сейчас поисковые системы определяют этот параметр автоматически.
  • Clean-param. Директива, которая использовалась, чтобы ограничить индексацию совпадающего динамического контента. Считается неэффективной.

Пример robots.txt

Рассмотрим стандартный файл robots.txt, который можно скопировать и использовать для блога, заменив название домена в директиве Sitemap и убрав комментарии (текст справа, включая #):

User-agent: * # общие правила для всех поисковых роботов
Disallow: /wp-admin/ # запретить индексацию папки wp-admin (все служебные папки) 
Disallow: /readme.html # закрыть доступ к стандартному файлу о программном обеспечении
Disallow: /*? # запретить индексацию результатов поиска по сайту
Disallow: /?s= # запретить все URL поиска по сайту
Allow: /wp-admin/admin-ajax.php # индексировать асинхронные JS-файлы темы
Allow: /*.css # индексировать CSS-файлы
Allow: /*.js # индексировать JS-скрипты
Sitemap: https://site.ru/sitemap.xml # указать местоположение карты сайта

Как редактировать robots.txt на WordPress?

Чтобы внести изменения в файл robots.txt, откройте его в панели управления хостингом. Используйте плагин Yoast SEO (или аналогичное решение в WordPress) для редактирования файлов:

Проверка работы файла robots.txt

Чтобы убедиться в корректности составленного файла, используйте стандартный инструмент Яндекс.Вебмастер:

  1. 1.

  2. 2.

    Перейдите в раздел ИнструментыАнализ robots.txt.

  3. 3.

    Содержимое robots.txt обновится автоматически. Нажмите Проверить:

Если в синтаксисе файла будут ошибки, Яндекс укажет, в каких строчках проблема и даст рекомендации по исправлению.

Добавить комментарий