Относительно того, что должно быть внутри файла robots.txt
до сих пор возникает куча споров. Вообще, на мой взгляд, этот файл должен содержать две обязательные вещи:
- путь к карте сайта:
Sitemap: https://misha.blog/sitemap.xml
Некоторые плагины вставляют эту директиву автоматически.
- директиву host для Яндекса (нужна, если у вашего сайта есть зеркала, для того, чтобы показать главное зеркало):
Host: truemisha.ru
Скрывать в нём все функциональные PHP-файлы (как делают некоторые вебмастера) я не вижу смысла. А уж страницы сайта тем более. Я проводил эксперимент со скрытием страниц через robots.txt
— они всё равно попали в индекс, но только без заголовка и без сниппета.
Для скрытия от индексации страниц сайта используйте метатег:
<meta name="robots" content="noindex, follow" /> |
Функция do_robots()
Выводит несколько директив для файла robots.txt
, рекомендуемые для WordPress.
do_robots() |
Параметров не имеет, зато имеет 1 хук и 1 фильтр.
Рассмотрим по порядку, как работает функция:
- В первую очередь функция устанавливает
Content-Type
документа наtext/plain
(с кодировкой UTF-8). - Затем запускается экшен
do_robotstxt
(без параметров). - Третьим шагом идёт проверка, отмечена ли галочка «Попросить поисковые системы не индексировать сайт» в настройках чтения:
- Если отмечена, содержимое
robots.txt
будет:User-agent: * Disallow: /
Если не отмечена:
User-agent: * Disallow: /wp-admin/
- Непосредственно перед выводом срабатывает фильтр
robots_txt
(WordPress 3.0+) с двумя параметрами —$output
(то, что подготовлено для вывода вrobots.txt
) и$public
(отмечена ли галочка в пункте 3).
Готовый robots.txt
К результату функции do_robots()
добавим еще то, о чем я говорил в начале поста и получим вот такой robots.txt для WordPress:
User-agent: * Disallow: /wp-admin/ User-agent: Yandex Disallow: /wp-admin/ Host: truemisha.ru Sitemap: https://misha.blog/sitemap.xml |
Создать его вы можете при помощи любого текстового редактора. Сохраните его там же, где находятся директории wp-admin
и wp-content
.
Источник: misha.blog