Как обуздать "виртуальный" robots.txt у сайта на вордпрессе — ответ на вопрос

Автор:
Андрей Гук — автор статьи Андрей Гук
#Советы

Вопрос

Яндекс Вебмастер прислал уведомление, что у нас ошибка в карте сайте. Мы пошли проверять и заметили, что яндекс ссылается на какую-то странную карту сайта, которую мы не используем, но нормальную карту, которую мы создали и ему скормили, тоже видит. В Яндекс Вебмастере есть приписка, что ссылка на странную карту была обнаружена в файле robots.txt, но мы его не создавали. Проверили, есть ли файл robots в корне сайта. Его там нет, но по адресу site.ru/robots.txt он открывается с какими-то базовыми правилами и этой неправильный ссылкой на карту. Сайт на вордпрессе. Как такое возможно? Доступы к сайту направили.

Скриншот из Яндекс Вебмастера

Ответ

Дело в вордпрессе. Вордпресс генерирует файл robots.txt динамически, если физический файл не обнаружен в корне сайта. За это отвечает функция do_robots()

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

Мы проверили плагин, который у вас отвечает за создание карты сайта. И, как и ожидалось, проблема была в нем.

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

Но у вас также указано, что файл должен называться sitemap, а в robots добавляется просто "точка" (".xml"). Возможно, это баг плагина, но мы не копали глубже.

скрин с настройками плагина XML Sitemap Generator for Google

Простое решение (рекомендуем) — снять галку с "добавлять путь к карте сайта" и добавить файл robots.txt вручную в корень сайта со всеми нужными правилами и правильным путем к карте сайта.

Решение посложнее. Снять галку и в файле с функциями прописать свою логику для формирования файла robots.txt, используя hook robots_txt. Если честно, никогда не сталкивались с необходимостью формировать robots именно через хук (возможно, столкнемся на каком-то огромном проекте с кучей правил по запрету индексации для разных юзер-агентов). Просто создать файл и положить его в корень сайта — это быстро, "дешево" и надежно.

Третье решение (для разнообразия). Если есть желание и время, все же разобраться в баге плагина или попробовать другой плагин.