Редактировать файл robots.txt на лету
Иначе это называется виртуальный файл robots.txt
.
Идея в том, что файл не хранится на вашем сервере, а сервится динамически, прямо как все остальные страницы вашего сайта. Это даёт вам значительное преимущество: теперь не нужно деплоить и контролировать версии вашего robots.txt, просто отредактируйте его через интерфейс WP.
Есть ещё вариант редактировать физический файл через админку вордпресса, но в этом подходе кроется много проблем. Например, если вы храните сайт в git’е, при следующем деплое эти изменения просто пропадут.
Итак, что нам нужно. Во-первых, нам нужен плагин WP Robots Txt By Christopher Davis. Не обращайте внимания на то, что плагин в последний раз обновлялся давно. Всё гениальное просто, здесь просто нечего обновлять:
1 2 3 4 5 6 7 8 9 10 11 12 |
// Вот настолько простой у него код. // Всего лишь фильтр на стандартную отдачу robots.txt. function cd_rdte_filter_robots($rv, $public) { $content = get_option('cd_rdte_content'); if ($content) { $rv = esc_attr(strip_tags($content)); } return $rv; } add_filter('robots_txt', 'cd_rdte_filter_robots', 10, 2); |
Когда вы установите и активируете этот плагин, в вашей админке Settings -> Reading
появится поле для редактирования robots.txt
:
Далее всё просто. Впишите в это поле что-нибудь, и не забудьте нажать Save Changes
снизу. Содержимое вашего виртуального файла robots.txt
изменится в соответствии с вашими пожеланиями.
Если вы обновляете ваш robots.txt файл, а он не меняется, убедитесь ещё раз, что:
1. вы нажали Save Changes в Settings — Reading
2. вы обновляете через комбинацию клавиш вроде Ctrl+F5, проверили через другой браузер или через incognito mode, возможно это локальный кеш
3. вы уверены, что не используете кеширование вроде Cloudflare, в этом случае может быть необходимо очистить кеш Cloudflare
4. в корне сайта нет файла под названием robots.txt, если он есть — удалите его. Вордпресс не будет даже пытаться обрабатывать что-то, если существует реальный файл с таким именем.
На картинке вы видите, что я делаю некоторую автозамену. Это очень просто, но вне рамок данной статьи, примеры кода и объяснение смотрите в следующей.
Обсуждение