Как исправить дубли страниц в robots.txt и sitemap WordPress

|

Если в Search Console всплывают дубли, а в индексе оказываются служебные URL, проблема часто не в «плохом SEO», а в том, как WordPress и плагины генерируют robots.txt, sitemap и канонические адреса. На практике это обычно смесь из открытых архивов, лишних таксономий, страниц вложений и дублирующих карт сайта от нескольких плагинов.

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

Когда проблема действительно в дублях, а не в «плохой индексации»

Симптомы обычно довольно приземлённые:

Что проверить в первую очередь

Не начинайте с правки robots.txt вручную. Сначала посмотрите, кто его формирует. В WordPress это может быть ядро, SEO-плагин или код темы/му-плагина. То же самое относится к sitemap: если у вас включены два генератора карт сайта, вы получите путаницу почти гарантированно.

Пошаговое решение: убираем дубли без поломки сайта

1. Оставьте один источник sitemap

В WordPress есть встроенный XML sitemap, но многие сайты используют SEO-плагин, который генерирует собственную карту сайта. Если включены оба варианта, поисковик может получать два набора URL с разной логикой.

Решение простое: оставьте один источник. Если вы используете SEO-плагин с полноценной настройкой sitemap, встроенный sitemap ядра обычно отключают через фильтр.

<?php
// Отключаем встроенный sitemap WordPress, если sitemap уже генерирует SEO-плагин.
add_filter( 'wp_sitemaps_enabled', '__return_false' );

Этот код лучше добавить в небольшой must-use плагин или в отдельный функциональный плагин, а не в functions.php темы, если тема может меняться.

2. Закройте от индексации служебные архивы и вложения

Частая причина дублей — страницы вложений. Они создаются автоматически, но почти никогда не несут самостоятельной ценности для поиска. Если на сайте нет осознанной стратегии для attachment-страниц, их лучше редиректить на сам файл или на родительскую запись.

<?php
// Редирект attachment-страниц на родительскую запись или главную.
add_action( 'template_redirect', function () {
    if ( is_attachment() ) {
        $parent = wp_get_post_parent_id( get_queried_object_id() );

        if ( $parent ) {
            wp_safe_redirect( get_permalink( $parent ), 301 );
            exit;
        }

        wp_safe_redirect( home_url( '/' ), 301 );
        exit;
    }
} );

Если у вас SEO-плагин умеет закрывать архивы автора, даты, теги и медиа-страницы, используйте его настройки. Код нужен только там, где плагин не закрывает конкретный сценарий или вы хотите более жёсткую логику.

3. Приведите robots.txt к одной логике

Самая частая ошибка — вручную добавлять в robots.txt всё подряд, не понимая, что файл не убирает уже проиндексированные URL. Он только управляет обходом. Если страница уже в индексе, одного Disallow мало: нужен noindex, редирект или удаление дубля.

Если нужно добавить свои правила, делайте это через фильтр robots_txt, а не редактированием физического файла на сервере, если WordPress его генерирует динамически.

<?php
add_filter( 'robots_txt', function ( $output, $public ) {
    $output .= "\nUser-agent: *\n";
    $output .= "Disallow: /wp-json/\n";
    $output .= "Disallow: /?s=\n";
    $output .= "Sitemap: " . home_url( '/sitemap_index.xml' ) . "\n";

    return $output;
}, 10, 2 );

Здесь важно не переборщить. Например, закрывать /wp-json/ имеет смысл не всегда: если сайт использует REST API для фронтенда, такая блокировка может мешать работе. Сначала проверьте, нужен ли этот путь на сайте.

4. Уберите дубли из таксономий и архивов

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

Практический подход такой:

Сравнение подходов: плагин, код или ручная правка

ПодходКогда подходитМинус
SEO-плагинНужно быстро закрыть архивы, настроить sitemap и canonical без разработкиЧасть логики зависит от интерфейса и может быть скрыта в настройках
КодНужна точечная логика для attachment, robots.txt или нестандартных архивовТребует контроля при обновлениях и аккуратного тестирования
Ручная правка файловРедкий случай, когда WordPress не генерирует robots.txt динамическиЛегко потерять изменения при миграции или конфликте с плагином

Если нужен более широкий набор инструментов для чистки дублей, служебных страниц и SEO-логики, на практике часто используют Clearfy Pro: он закрывает типовые технические проблемы без того, чтобы писать всё руками. Но даже в этом случае полезно понимать, что именно он меняет, иначе легко спрятать симптом, а не причину.

Как проверить, что решение сработало

После правок не ограничивайтесь открытием главной страницы. Проверьте несколько уровней сразу:

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

Быстрая ручная проверка

# Проверить robots.txt
curl -I https://example.com/robots.txt

# Проверить, не отдает ли attachment-страница 200
curl -I https://example.com/sample-attachment/

# Проверить sitemap
curl -I https://example.com/sitemap_index.xml

Если сервер отвечает редиректом, смотрите цепочку целиком. Иногда формально всё работает, но URL проходит через два-три промежуточных шага, и это уже лишняя нагрузка и лишний шум для индексации.

Частые ошибки и как их исправить

Закрыли URL в robots.txt, но он всё равно в индексе

Это нормальная ситуация. Disallow не удаляет уже известный поисковику URL. Если страница должна исчезнуть, используйте noindex, 301-редирект или отдачу 410 в зависимости от сценария.

Отключили встроенный sitemap, но забыли про плагин

В результате sitemap исчезает полностью или, наоборот, остаётся второй источник карт сайта. Проверьте, какой именно URL вы отдаёте в robots.txt и какой sitemap реально открывается в браузере.

Редирект attachment-страниц ломает медиа

Такое бывает, если тема или плагин рассчитывают на отдельную страницу вложения. Перед массовым редиректом проверьте, не используется ли attachment-страница в шаблонах, галереях или внешних ссылках.

Закрыли слишком много архивов

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

Что делать, если дубль создаёт не WordPress, а сервер или CDN

Иногда проблема не в CMS. Один и тот же URL может открываться с www и без www, с http и https, со слешем и без слеша, а CDN ещё и кэширует старую версию robots.txt. Тогда сначала приводят к одному каноническому варианту домена, потом чистят кэш, и только после этого проверяют sitemap и индексацию.

Если у вас подключён кэш-плагин или CDN, после изменений обязательно сбросьте:

Иначе вы будете смотреть на старый robots.txt и делать неверные выводы.

Практика безопасности и производительности

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

Не храните критичную логику только в теме. Если вы правите robots_txt, редиректы и sitemap через код, лучше вынести это в отдельный мини-плагин или mu-plugin. Тогда смена темы не сломает индексацию.

И ещё один практический момент: не отключайте всё подряд «для SEO». Если сайт использует REST API, AJAX или нестандартные шаблоны, сначала проверьте зависимость, потом закрывайте путь. В WordPress слишком много технических URL, которые выглядят как мусор, но на деле нужны фронтенду или админке.

Обслуживание REST API WordPress — практические советы и примеры кода
29.11.2025
Диагностика и решение проблем с оптимизацией базы данных в WooCommerce
22.07.2026
Диагностика и решение проблем с отправкой писем из WordPress через SMTP
06.08.2026
Как автоматизировать удаление старого transient в WordPress: практическое руководство
24.03.2026
Автоматическое отключение неиспользуемых плагинов в WordPress: практическое руководство
20.12.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее