Как удалить старые редиректы и исправить циклы 404 в WordPress

|

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

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

Когда проблема уже есть: как её распознать

Сначала не трогайте правила наугад. Сначала поймите, что именно ломается: одиночный 404, цепочка редиректов или цикл между двумя адресами. Это разные сценарии, и чинятся они по-разному.

Типичные симптомы

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

Диагностика: где именно образуется цикл

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

curl -I -L https://example.com/staryj-url/

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

Для более точной проверки удобно сравнить поведение на уровне сервера и на уровне WordPress. Например, если curl показывает редирект уже до загрузки WordPress, значит проблема в веб-сервере или CDN. Если сначала отвечает WordPress, а потом уже сервер, ищите конфликт между плагином и правилом в конфигурации.

ПодходГде искатьКогда подходит
ПлагинРедиректы в админкеЕсли правила добавляли через Redirection или аналогичный инструмент
Кодfunctions.php, mu-pluginЕсли редирект писали вручную или через тему
Сервер.htaccess, nginx configЕсли проблема возникает до загрузки WordPress

Пошаговое решение без потери SEO

1. Сначала сохраните текущие правила

Перед правкой экспортируйте список редиректов из плагина или скопируйте конфиг сервера. Это не формальность: при чистке старых правил легко удалить нужный редирект вместе с мусором.

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

2. Уберите дублирующиеся правила

Частая ошибка — один и тот же редирект задан сразу в двух местах. Например, в плагине стоит правило с 301, а в .htaccess — ещё одно на тот же адрес. В итоге браузер проходит лишний круг или получает конфликт.

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

<?php
/**
 * Plugin Name: WP Premium Redirects
 */

add_action('template_redirect', function () {
    if (is_admin()) {
        return;
    }

    $request_uri = $_SERVER['REQUEST_URI'] ?? '';

    if ($request_uri === '/staryj-url/' || $request_uri === '/staryj-url') {
        wp_redirect(home_url('/novyj-url/'), 301);
        exit;
    }
});

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

3. Проверьте, не конфликтуют ли адреса WordPress и сайта

Если в Настройки → Общие один адрес с www, а другой без него, WordPress может сам добавлять лишний редирект. То же самое бывает при смешении http и https. В таких случаях сначала приводят к одному каноническому варианту домена, а уже потом чистят старые правила.

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

4. Удалите устаревшие правила, которые больше не нужны

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

Практичный порядок такой:

  1. соберите список старых URL из логов и Search Console;
  2. проверьте, есть ли на них переходы;
  3. сверьте с текущей структурой сайта;
  4. удалите только те правила, которые больше не нужны;
  5. после удаления снова проверьте ответ сервера.

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

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

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

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

Редирект сделан и в плагине, и в .htaccess

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

Смешаны http/https и www/без www

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

Автоматические редиректы на 404 слишком агрессивны

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

Кэш не очищен после правок

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

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

Не храните десятки однотипных редиректов в functions.php, если тема часто обновляется. При смене темы вы потеряете правила. Для постоянной логики используйте отдельный mu-plugin или серверную конфигурацию.

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

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

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

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

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

}
Как добавить собственные типы записей (Custom Post Types) в WordPress
22.11.2025
Как изменить автозаголовок WordPress динамически на основе контекста
11.02.2026
Как разрешить или запретить копирование текста в WordPress: практические методы
08.04.2026
Как сделать динамические шорткоды WordPress: примеры и практические решения
13.11.2025
Как добавить поддержку Gutenberg-блоков в своей теме WordPress
26.01.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее