wordpressa.ru wordpress wordpressa.ru

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

Удалённая страница в WordPress не всегда должна просто исчезать с ошибкой 404. Если у неё был трафик, внешние ссылки или она давно ранжировалась, обычно нужен понятный сценарий: либо 301 на ближайший аналог, либо 410 для окончательно удалённого контента. Ошибка здесь одна и та же у многих сайтов: все 404 без разбора отправляют на главную. В итоге поисковик получает нерелевантный сигнал, а пользователь — бесполезный переход.

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

Когда редирект нужен, а когда лучше оставить 404 или 410

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

Практическая схема выбора

  • 301 — есть релевантная новая страница или категория-замена.
  • 404 — контент удалён, но вы не хотите сообщать поисковику, что у него есть замена.
  • 410 — страница удалена окончательно и вы хотите ускорить её выпадение из индекса.

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

Диагностика: что именно ломается на сайте

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

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

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

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

Пошаговое решение: как настроить редирект для удалённых страниц

Есть три рабочих подхода: плагин, серверные правила и код на уровне WordPress. Для большинства сайтов удобнее начать с плагина, а для точечных сценариев — использовать код.

ПодходКогда использоватьПлюсыМинусы
Плагин редиректовНужно быстро управлять списком URLУдобно, без правки файловДополнительная нагрузка, нужен контроль правил
.htaccess / nginxПостоянные правила на уровне сервераБыстро работает, не зависит от WordPressНужен доступ к серверу, выше риск ошибки
Код в WordPressНебольшое число точечных редиректовМожно завязать на логику сайтаНужно аккуратно поддерживать код

Вариант 1: редирект через код в WordPress

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

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

    $request_uri = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');

    $redirects = [
        'staryj-url-1' => '/novyj-url/',
        'udalennaya-statya' => '/razdel/poleznaya-zamena/',
        'old-guide' => '/novaya-instrukciya/',
    ];

    if (isset($redirects[$request_uri])) {
        wp_redirect(home_url($redirects[$request_uri]), 301);
        exit;
    }
});

Этот вариант подходит, если вы точно знаете список старых адресов. Но если страниц много, код быстро превращается в неудобную таблицу. Тогда лучше вынести правила в плагин или на сервер.

Вариант 2: редирект через сервер

Для Apache можно использовать .htaccess. Это уместно, если старый URL известен и правило должно отрабатывать до загрузки WordPress.

Redirect 301 /staryj-url-1/ https://example.com/novyj-url/
Redirect 301 /udalennaya-statya/ https://example.com/razdel/poleznaya-zamena/

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

Вариант 3: плагин редиректов

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

Для небольших проектов это часто самый безопасный путь: меньше шансов сломать сайт из-за опечатки в конфиге, проще откатить правило и посмотреть историю изменений.

Как не сломать SEO при редиректе 404

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

Что делать правильно

  • Редиректить только на близкую по теме страницу.
  • Если замены нет, оставить 404 или отдать 410.
  • Убрать внутренние ссылки на удалённый URL.
  • Проверить, не попал ли адрес в sitemap, кэш или блоки рекомендаций.

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

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

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

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

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

Удобно проверять через curl:

curl -I https://example.com/staryj-url-1/
curl -I https://example.com/novyj-url/

В ответе смотрите на HTTP/1.1 301 Moved Permanently и заголовок Location. Если вместо этого видите 200, значит редирект не сработал. Если есть несколько 301 подряд, стоит сократить цепочку до одного перехода.

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

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

Это самая распространённая ошибка. Исправление простое: подберите ближайший по смыслу URL или оставьте 404/410. Главная не является универсальной заменой для любого удалённого материала.

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

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

Редирект зациклился

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

Удалённая страница всё ещё в sitemap

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

Безопасность и производительность: что учесть на живом сайте

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

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

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

Короткий чек-лист перед публикацией изменений

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

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

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее