Как создать динамический файл robots.txt в WordPress

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

Зачем нужен динамический robots.txt в WordPress

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

Динамический файл позволяет:

  • Автоматически добавлять или исключать пути в зависимости от условий.
  • Управлять индексацией для различных типов контента.
  • Выполнять тесты и временно изменять правила без правки файлов на сервере.

Это особенно полезно для сайтов с большим количеством контента и сложной структурой.

Как WordPress обрабатывает запрос к robots.txt

По умолчанию WordPress перехватывает запрос к /robots.txt и генерирует базовый файл с помощью функции do_robots(). Этот файл можно переопределить, используя фильтры и хуки.

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

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

Создание динамического robots.txt с помощью хука do_robotstxt

Для начала добавим в файл functions.php вашей темы или в отдельный плагин следующий код:

add_action('do_robotstxt', 'wpdevelop_generate_dynamic_robots_txt');
function wpdevelop_generate_dynamic_robots_txt() {
    header('Content-Type: text/plain; charset=UTF-8');

    // Базовые правила
    echo "User-agent: *\n";
    echo "Disallow: /wp-admin/\n";
    echo "Allow: /wp-admin/admin-ajax.php\n";

    // Добавим динамическое правило - запрет для авторов
    if ( current_user_can('author') ) {
        echo "Disallow: /private/\n";
    }

    // Запретить индексацию страниц с параметром utm_source
    if ( isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], 'utm_source') !== false ) {
        echo "Disallow: /\n";
    }

    // Добавим ссылку на карту сайта
    echo "Sitemap: " . home_url('/sitemap.xml') . "\n";
}

Этот код генерирует файл robots.txt с базовыми правилами и добавляет динамические условия.

Пример расширенного динамического файла с учётом кастомных типов записей

Часто нужно управлять индексацией кастомных типов записей (custom post types). Например, запретить индексацию черновиков или определённых категорий.

Расширим пример:

add_action('do_robotstxt', 'wpdevelop_advanced_dynamic_robots_txt');
function wpdevelop_advanced_dynamic_robots_txt() {
    header('Content-Type: text/plain; charset=UTF-8');

    echo "User-agent: *\n";
    echo "Disallow: /wp-admin/\n";
    echo "Allow: /wp-admin/admin-ajax.php\n";

    // Запрет индексации кастомного типа записи 'secret_project'
    echo "Disallow: /secret_project/\n";

    // Получим все черновики и запретим их индексацию через meta robots
    $args = [
        'post_type' => 'post',
        'post_status' => 'draft',
        'posts_per_page' => -1
    ];
    $drafts = get_posts($args);
    foreach ($drafts as $draft) {
        echo "Disallow: " . get_permalink($draft->ID) . "\n";
    }

    // Добавим sitemap
    echo "Sitemap: " . home_url('/sitemap.xml') . "\n";
}

Такой подход полезен, если вы хотите полностью контролировать, какие URL не индексируются.

Использование плагинов для динамического управления robots.txt

Если хочется не писать код, можно использовать плагины с расширенными настройками.

Clearfy Pro (https://wpshop.ru/clearfy-pro?utm_source=wpdevelop.ru&utm_medium=article&utm_campaign=kak-sozdat-dinamicheskij-fayl-robots-txt-v-wordpress) предоставляет удобный интерфейс для управления robots.txt и другими SEO-настройками прямо из админки.

Его преимущества:

  • Редактирование robots.txt без доступа к FTP.
  • Автоматические шаблоны и рекомендации.
  • Интеграция с другими SEO-плагинами.

Советы по отладке и проверке динамического robots.txt

После создания динамического файла обязательно проверьте, что он корректно работает:

  • Откройте в браузере https://ваш-сайт.ru/robots.txt и проверьте содержимое.
  • Используйте инструменты Google Search Console — раздел «Проверка файла robots.txt».
  • Проверьте, что правила применяются как задумано для разных страниц.
  • Учтите, что кэширование может влиять на скорость обновления файла.

Заключение

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

Если нужна простота и удобство, рассмотрите плагины вроде Clearfy Pro, которые облегчают управление SEO-настройками.

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

Как отключить Emoji в WordPress без плагинов для ускорения сайта
23.02.2026
Как удалить метаданные из изображений в WordPress без плагинов
09.12.2025
Как создать автоматический кеш для REST API в WordPress
11.01.2026
Как создать автоматическое резервное копирование базы данных в WordPress
07.01.2026
Удаление CSS и JS из отдельных страниц WordPress для ускорения загрузки
10.02.2026