Как закрыть от индексации старые версии страниц в WordPress

Старые версии страниц в WordPress обычно всплывают после редактирования структуры сайта, смены ЧПУ, переноса материалов или правок в плагинах, которые создают свои URL. В результате в индексе остаются дубли: старая запись, новая запись, вложенная версия, тестовая копия, иногда еще и служебная страница из темы или плагина. Проблема не только в SEO: такие URL мешают аналитике, распыляют внутренний вес и иногда продолжают отдавать 200 OK, хотя пользователю они уже не нужны.

Ниже разберем практический сценарий: как понять, какие именно старые версии надо закрыть, чем отличается noindex от редиректа и когда лучше не трогать индексацию, а сразу отдавать 301.

Когда проблема действительно есть

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

Типичные признаки

  • в поиске находятся старые URL после смены структуры постоянных ссылок;
  • в индексе есть страницы с одинаковым контентом, но разными адресами;
  • в отчетах Search Console появляются дубли без выбранной канонической страницы;
  • внутренние ссылки ведут и на новый, и на старый адрес;
  • страница уже не нужна, но продолжает отвечать 200 OK.

Если старый адрес должен полностью заменить новый, обычно правильнее делать 301-редирект. Если же URL нужен технически, но не должен попадать в поиск, тогда уместен noindex или закрытие через X-Robots-Tag.

Что именно закрывать: диагностика перед правкой

Не все старые URL надо запрещать одинаково. Сначала разделите их на три группы: страницы, которые нужно перенаправить; страницы, которые должны остаться доступными, но не индексироваться; и страницы, которые можно удалить совсем.

Проверьте код ответа и мета-роботы

Для начала откройте проблемный URL и посмотрите заголовки ответа. Если есть доступ к серверу или SSH, удобно проверить так:

curl -I https://example.com/staryy-url/

Смотрите на три вещи: код ответа, Location при редиректе и наличие X-Robots-Tag. Если страница отдает 200 и не содержит запрета на индексацию, поисковик видит ее как обычную страницу.

В браузере полезно проверить и исходный HTML: есть ли тег <meta name="robots" content="noindex">, не подставляет ли тема или SEO-плагин канонический URL на другую страницу, и не дублируется ли контент через архивы, теги или пагинацию.

Сравнение подходов

ПодходКогда использоватьПлюсМинус
301-редиректСтарый URL заменен новымПередает сигнал переездаНельзя использовать для страниц, которые должны остаться отдельными
noindexСтраница нужна пользователю, но не поискуГибко и безопасноСтраница остается доступной и может обходиться ботом
Удаление с 404/410Страница больше не нужнаЧистое удаление из индексаНужно убедиться, что нет важных ссылок и трафика

Как закрыть старые версии страниц в WordPress

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

Вариант 1: закрыть страницу через SEO-плагин

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

Важно не путать noindex с удалением из поиска. Если страница уже не должна существовать, лучше настроить редирект или вернуть 404/410. Иначе бот может продолжать тратить краулинговый бюджет на бесполезный URL.

Вариант 2: добавить noindex через код

Если нужно закрыть, например, все старые версии страниц в отдельной папке или все записи с определенным шаблоном, можно использовать фильтр wp_robots. Это штатный способ WordPress, он не требует выдуманных хуков и нормально работает с современными темами.

add_filter( 'wp_robots', function( $robots ) {
    if ( is_page() ) {
        $post_id = get_queried_object_id();

        // Пример: закрываем конкретные старые страницы по ID.
        $noindex_ids = array( 123, 456, 789 );

        if ( in_array( $post_id, $noindex_ids, true ) ) {
            $robots['noindex'] = true;
            $robots['nofollow'] = false;
        }
    }

    return $robots;
} );

Этот код лучше держать в дочерней теме или в небольшом mu-plugin, а не в functions.php активной темы, если тема часто меняется. Для массовой логики можно проверять не только ID, но и шаблон страницы, категорию или собственное поле.

Вариант 3: закрыть через заголовок X-Robots-Tag

Если старые версии отдаются не только как HTML-страницы, но и как PDF, изображения или другие файлы, удобнее ставить запрет на уровне заголовков. Для обычных страниц WordPress это не всегда нужно, но в некоторых конфигурациях серверный заголовок надежнее, чем мета-тег в HTML.

add_action( 'send_headers', function() {
    if ( is_page() ) {
        $post_id = get_queried_object_id();
        $noindex_ids = array( 123, 456, 789 );

        if ( in_array( $post_id, $noindex_ids, true ) ) {
            header( 'X-Robots-Tag: noindex, nofollow', true );
        }
    }
} );

Такой вариант стоит использовать аккуратно: заголовок должен соответствовать реальной задаче страницы. Не ставьте nofollow без причины, если страница нужна для переходов внутри сайта.

Если нужна не индексация, а переезд: ставим 301

Когда старый URL заменен новым адресом, запрет на индексацию не решает задачу полностью. Поисковик может еще долго хранить старую страницу в базе, а пользователи будут попадать на неактуальный адрес из закладок и внешних ссылок. В этом случае нужен редирект 301.

Для WordPress самый простой вариант — штатная функция wp_redirect() с корректным статусом ответа. Пример для точечного перенаправления:

add_action( 'template_redirect', function() {
    if ( is_page( 'staryy-adres' ) ) {
        wp_redirect( home_url( '/novyy-adres/' ), 301 );
        exit;
    }
} );

Если таких URL много, лучше не плодить десятки отдельных условий в теме. Вынесите список в массив или настройте редиректы на уровне сервера или специализированного плагина. Но проверьте, чтобы не было цепочек вида старый URL → промежуточный URL → новый URL. Для SEO и скорости это плохой вариант.

Пошаговое решение без лишнего риска

  1. Соберите список старых URL из Search Console, логов сервера и внутренних ссылок сайта.
  2. Определите, какие адреса должны редиректить, какие — остаться доступными, но с noindex, а какие можно удалить.
  3. Проверьте, не используется ли старый URL в меню, хлебных крошках, блоках и XML-карте сайта.
  4. Настройте 301 для замененных страниц.
  5. Для технических дублей добавьте noindex через wp_robots или SEO-плагин.
  6. После правок обновите карту сайта и отправьте на переобход только нужные URL.

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

Проверка должна быть не только визуальной. Откройте старый URL и убедитесь, что он ведет себя так, как вы задумали.

  • для 301: в ответе должен быть статус 301 и корректный Location;
  • для noindex: в HTML или заголовках должен быть явный запрет на индексацию;
  • для удаленной страницы: должен быть 404 или 410, а не пустая страница с кодом 200;
  • внутренние ссылки должны вести только на актуальный адрес;
  • в Search Console нужно проверить, как бот видит страницу после повторного обхода.

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

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

Ставят noindex вместо редиректа

Это частая ошибка при миграции. Страница остается доступной по старому адресу, но поисковику просто говорят не показывать ее в выдаче. Если у страницы есть новый аналог, нужен 301, а не noindex.

Закрывают страницу, но оставляют внутренние ссылки

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

Используют robots.txt для уже проиндексированных страниц

Disallow в robots.txt не удаляет страницу из индекса сам по себе. Если URL уже известен поисковику, он может остаться в выдаче без сниппета. Для удаления нужен редирект, noindex или ответ 404/410.

Ставят nofollow без необходимости

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

Делают цепочки редиректов

После нескольких переездов старый URL иногда ведет на промежуточный адрес, а тот — на новый. Это лишняя задержка и лишняя нагрузка. Сведите все старые адреса сразу к финальному URL.

Что учесть для безопасности и производительности

Если вы закрываете старые версии через код, не разбрасывайте логику по нескольким файлам темы. Лучше держать правила в одном месте, чтобы не потерять их при обновлении. Для большого числа правил удобнее отдельный mu-plugin: он не отключится случайно при смене темы.

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

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

Главная мысль простая: старый URL надо не просто спрятать, а обработать правильным способом. Если страница переехала — редирект. Если нужна, но не для поиска — noindex. Если больше не нужна — удаление с корректным кодом ответа. Тогда индекс чистится предсказуемо, а сайт не теряет техническую целостность.

Как закрыть от индексации страницы поисковой выдачи WordPress
07.09.2026
Как закрыть от индексации старые версии страниц в WordPress
11.09.2026
Как закрыть дубли страниц от индексации в WordPress
04.09.2026

Изучение WordPress: детальные уроки и нужные советы.