Как закрыть старые 404-страницы WordPress от индексации и убрать их из поиска

Старые 404-страницы в WordPress обычно появляются не сами по себе: их оставляют удалённые записи, смена URL, битые ссылки, старые sitemap, внешние ссылки или ошибки в шаблонах. Проблема не только в том, что пользователь видит ошибку. Если таких URL много, они засоряют отчёты сканирования, тянут на себя обход робота и мешают нормально оценивать качество индексации сайта.

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

Когда 404 становится проблемой, а когда это нормально

Одна-две случайные 404 на сайте — это обычная история. Проблема начинается, когда:

  • в Search Console или логах регулярно всплывают одни и те же несуществующие URL;
  • 404-страницы попадают в sitemap или внутренние ссылки;
  • по ним есть внешние переходы, а вместо полезного ответа сервер отдаёт тяжёлую тему с лишними блоками;
  • старые адреса продолжают индексироваться как отдельные страницы, хотя контент давно удалён.

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

Диагностика: откуда берутся старые 404

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

Проверьте отчёты сканирования и логи

Начните с Search Console и серверных логов. Важно не количество 404 само по себе, а повторяемость. Если робот регулярно запрашивает один и тот же путь, значит, где-то осталась ссылка или старый адрес уже известен поисковику.

Полезно смотреть:

  • URL с кодом ответа 404 и 410;
  • частоту запросов одного и того же адреса;
  • источник перехода, если он есть;
  • наличие этих URL в sitemap.xml.

Проверьте, не создаёт ли их сам WordPress

Частая причина — старые правила в плагинах, кастомные типы записей, таксономии или неправильные rewrite rules после переноса сайта. Если URL выглядит как нормальный адрес WordPress, но отдаёт 404, проверьте:

  • настройки постоянных ссылок;
  • регистрацию post_type и таксономий;
  • не менялся ли slug у записей и рубрик;
  • не остались ли старые шаблонные ссылки в меню, виджетах и контенте.

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

Что делать с каждым типом URL

Здесь важно не смешивать сценарии. Для поисковика редирект, 404 и 410 — это разные сигналы, и у каждого свой смысл.

СценарийЧто делатьКомпромисс
Страница переехала301 редирект на новый релевантный URLНужно подобрать правильную замену, а не отправлять всё на главную
Страница удалена навсегдаОтдать 410 Gone или оставить 404410 обычно быстрее убирает URL из обхода, но не всегда нужен
Мусорный технический URLЗакрыть от индексации и убрать из внутренних ссылокЕсли URL уже в индексе, одного noindex может быть мало
Ошибочный URL из шаблонаИсправить источник ссылки, а не саму 404Иначе ошибка вернётся после следующего обхода

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

Шаг 1. Уберите источник ссылки

Если 404 идёт из меню, хлебных крошек, блока в записи или из sitemap, сначала исправьте источник. Иначе поисковик продолжит находить адрес снова и снова. Это самый частый промах: настраивают редирект, но не чинят ссылку, и проблема остаётся в отчётах.

Проверьте:

  • меню в админке;
  • внутренние ссылки в записях и страницах;
  • автоматические блоки темы;
  • XML-карту сайта;
  • виджеты и шаблонные части.

Шаг 2. Для удалённых страниц используйте 410, если возврат не планируется

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

В WordPress можно отдать 410 на конкретный набор URL через template_redirect. Пример ниже — для случаев, когда вы точно знаете список старых адресов:

<?php
add_action('template_redirect', function () {
    if (!is_404()) {
        return;
    }

    $request_uri = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');
    $gone = [
        'staryj-razdel',
        'archive/old-post',
        'product/removed-item',
    ];

    if (in_array($request_uri, $gone, true)) {
        status_header(410);
        nocache_headers();
        include get_query_template('404');
        exit;
    }
});

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

Шаг 3. Для переехавших страниц ставьте 301 редирект

Если контент существует в новом месте, редирект нужен именно на ближайший релевантный URL. Не на главную, не на категорию «на всякий случай», а туда, где пользователь реально найдёт замену.

Для простых случаев можно использовать template_redirect и wp_redirect():

<?php
add_action('template_redirect', function () {
    $request_uri = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');

    $map = [
        'old-about-page' => 'about-us',
        'blog/seo-checklist-2022' => 'blog/seo-checklist-2024',
    ];

    if (isset($map[$request_uri])) {
        wp_redirect(home_url('/' . $map[$request_uri] . '/'), 301);
        exit;
    }
});

Если редиректов много, удобнее держать их в плагине редиректов или на уровне сервера. Так проще управлять цепочками и не перегружать тему.

Шаг 4. Уберите URL из sitemap и внутренних списков

Даже если URL уже отдаёт 404 или 410, он не должен продолжать попадать в карту сайта. Проверьте, не генерирует ли его SEO-плагин, и не выводится ли он в блоках «похожие записи», архивных списках или кастомных выборках.

Если у вас есть собственный генератор списка URL, исключайте удалённые записи на уровне запроса. Для WP_Query это обычно решается через post_status, post__not_in или фильтрацию по метаполям, а не через костыли в шаблоне.

Как закрыть мусорные URL от индексации, если они ещё живут в поиске

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

Практически полезнее следить за тем, чтобы:

  • страница не была в sitemap;
  • на неё не было внутренних ссылок;
  • сервер отдавал правильный код ответа;
  • не было цепочек редиректов через несколько промежуточных URL.

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

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

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

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

  • старый URL отдаёт 301, если вы сделали редирект;
  • удалённый URL отдаёт 404 или 410 без цепочки редиректов;
  • новый URL открывается напрямую, без лишних переходов;
  • страница не попадает в sitemap.xml;
  • внутренние ссылки ведут только на актуальный адрес.

Как проверить через консоль

Если есть доступ к серверу или локальной среде, удобно проверить код ответа через curl:

curl -I https://example.com/staryj-razdel/
curl -I https://example.com/old-about-page/

Смотрите на три вещи: код ответа, конечный URL и отсутствие лишних промежуточных редиректов. Если вместо 410 вы видите 200, значит правило не сработало. Если вместо 301 идёт 302, редирект лучше поправить, потому что временный статус не подходит для постоянного переноса.

Что смотреть в Search Console

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

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

Редирект на главную вместо релевантной страницы

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

Цепочка из нескольких редиректов

Схема вида старый URL → промежуточный URL → новый URL замедляет обход и усложняет диагностику. Сведите редирект к одному шагу.

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

Запрет в robots.txt не удаляет адрес из индекса сам по себе. Если URL уже известен поисковику, ему нужен корректный ответ сервера и отсутствие внутренних ссылок. Иначе он может оставаться в выдаче как «URL без описания» или похожий технический результат.

Оставили старую ссылку в шаблоне

После обновления темы или переноса сайта старые ссылки часто сидят в шаблонных частях, а не в контенте. Проверяйте не только записи, но и header/footer, блоки темы, меню и виджеты.

Поставили noindex на 404-страницу и забыли про код ответа

Если сервер отдаёт 200 на несуществующий URL, это уже не 404, а soft 404. Такой сценарий хуже обычной ошибки, потому что поисковик получает ложный сигнал о существующей странице.

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

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

  • не делайте тяжёлую логику в template_redirect без необходимости;
  • не храните огромные списки редиректов в теме, если ими нужно управлять регулярно;
  • проверяйте, не генерируют ли плагины лишние архивы и технические страницы;
  • после изменений очищайте кеш страницы и кеш объекта, если он используется;
  • не закрывайте важные URL через случайные правила в .htaccess без теста на staging.

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

Мини-чек-лист перед публикацией правок

  • Определён тип URL: удалённый, переехавший или ошибочный.
  • Убран источник внутренней ссылки.
  • Для переезда настроен 301.
  • Для окончательного удаления отдаётся 404 или 410.
  • URL исключён из sitemap.
  • Проверен код ответа через браузер и curl.
  • Нет цепочек редиректов.
  • В Search Console отправлен на переобход только нужный набор страниц.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как закрыть от показа технические страницы WordPress без вреда для индексации
02.09.2026
Как отключить XML-RPC в WordPress без поломки Jetpack и мобильных приложений
27.08.2026
Как отключить XML-RPC и pingback в WordPress без лишних поломок
30.08.2026
Как закрыть дубли страниц из пагинации в WordPress и не сломать индексацию
24.08.2026
Как отключить открытые XML-доступы и каталоги в WordPress без поломки админки
02.09.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше