Если у страницы в WordPress поменялся адрес, старый URL не должен просто отдавать 404. Для пользователя это потеря перехода, для поисковых систем — сигнал, что страница исчезла. В рабочем сценарии старый адрес нужно перенаправить на новый, а если подходящей замены нет — хотя бы аккуратно убрать его из индекса и не плодить битые ссылки внутри сайта.
На практике редиректы после смены URL нужны после переезда на новый домен, редизайна, смены структуры постоянных ссылок, объединения страниц или ручной правки слага. Ниже разберём, как сделать это в WordPress без лишних рисков и как проверить, что всё работает.
Когда редирект нужен, а когда лучше оставить страницу как есть
Если у старого адреса есть прямой аналог, редирект почти всегда нужен. Например, статья site.ru/blog/old-post стала site.ru/articles/new-post. В этом случае посетитель, который пришёл по старой ссылке из поиска, из закладок или с другого сайта, должен попасть на актуальную страницу.
Не стоит ставить редирект «на всякий случай» на главную страницу. Это плохая замена: пользователь не видит то, что искал, а поисковым системам такой редирект часто выглядит как мягкая ошибка. Если точного аналога нет, лучше оставить 404 или 410, чем отправлять всё подряд на главную.
Есть ещё один важный момент: если вы меняете URL только внутри WordPress, но старый адрес уже был в индексе или на него вели внешние ссылки, редирект нужен обязательно. Иначе трафик и часть ссылочного веса просто потеряются.
Самый надёжный вариант: 301-редирект на уровне сервера
Для постоянной смены адреса используйте 301 Moved Permanently. Это стандартный способ сказать браузеру и поисковым системам, что страница переехала навсегда. В WordPress можно сделать это разными способами, но самый стабильный вариант — на уровне веб-сервера: через .htaccess на Apache или через конфигурацию Nginx.
Такой редирект срабатывает до загрузки WordPress, не нагружает сайт и не зависит от плагинов. Это особенно полезно, если на сайте много старых URL после переезда.
Редирект в .htaccess для Apache
Если сайт работает на Apache и у вас есть доступ к файлу .htaccess, можно добавить правило для конкретной страницы. Перед изменением файла сделайте копию: ошибка в синтаксисе может временно сломать доступ к сайту.
Для одного адреса правило выглядит так:
Redirect 301 /old-page/ https://example.com/new-page/Если нужно перенаправить несколько страниц, добавляйте отдельную строку для каждой. Важно указывать путь после домена именно так, как он был на старом сайте, включая слеши, если они использовались.
Когда нужно перенаправить целый раздел, удобнее использовать mod_rewrite. Например, если все старые статьи из раздела /blog/ переехали в /articles/, можно сделать так:
RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [R=301,L]Это правило сохранит хвост URL после /blog/ и подставит его в новый путь. Но используйте его только если структура действительно совпадает. Если новые адреса устроены иначе, лучше прописать точечные редиректы.
Редирект в Nginx
На Nginx редиректы настраиваются в конфигурации сайта. Если у вас обычный shared-хостинг, доступ к этому уровню может быть закрыт — тогда используйте плагин или обратитесь в поддержку хостинга. Для одного адреса правило обычно выглядит так:
rewrite ^/old-page/?$ https://example.com/new-page/ permanent;Для массового переноса раздела можно использовать более общее правило, но здесь особенно важно не ошибиться с регулярным выражением. Неверная маска легко зацепит лишние URL и создаст цепочку редиректов или бесконечный цикл.
Как сделать редиректы в WordPress без правки сервера
Если вы не хотите лезть в конфигурацию веб-сервера или не имеете к ней доступа, используйте плагин для редиректов. Это нормальный вариант для владельца сайта, если нужно быстро настроить несколько перенаправлений после правки URL.
Самый распространённый сценарий — поставить плагин, добавить старый и новый адрес, выбрать код ответа 301 и сохранить правило. После этого старый URL начнёт вести на новый без ручной правки файлов сайта.
Что важно проверить перед использованием плагина:
- поддерживает ли он именно 301, а не только временный 302;
- можно ли задавать редиректы по отдельным URL, а не только по шаблонам;
- не создаёт ли он лишнюю нагрузку на сайт при большом количестве правил;
- есть ли журнал срабатываний, чтобы видеть, какие старые адреса ещё открывают посетители.
Плагин удобен, когда редиректов немного или когда сайт находится на обычном хостинге без доступа к серверной конфигурации. Но если редиректов сотни, серверный вариант обычно надёжнее и быстрее.
Что делать после смены слага в самой записи WordPress
Иногда адрес меняется не из-за переезда, а потому что вы отредактировали слаг в записи, странице или рубрике. WordPress создаёт новый URL, а старый сам по себе не всегда начинает редиректить на новый. В этом случае нужно вручную добавить перенаправление со старого адреса на новый.
Если вы меняете слаг у уже опубликованной страницы, сначала скопируйте старый URL. Потом сохраните новый адрес и сразу настройте 301-редирект. Так вы не потеряете трафик из старых ссылок и не получите всплеск 404 в логах.
Если на сайте включены ЧПУ и вы меняете структуру постоянных ссылок целиком, проверьте не только отдельные записи, но и архивы, рубрики, теги и вложения. После массовой смены структуры часто остаются старые адреса, которые ещё встречаются в поиске и в старых публикациях.
Как не устроить цепочку редиректов и петли
Самая частая ошибка — когда старый адрес ведёт на промежуточный URL, а тот, в свою очередь, ещё куда-то перенаправляет. Для пользователя это выглядит как задержка, а для поисковых систем — как лишний обход. В худшем случае можно получить петлю, когда адресы ссылаются друг на друга и страница вообще не открывается.
Чтобы этого не было, редирект должен вести сразу на конечный адрес. Не на временную страницу, не на промежуточный slug после редизайна, а на тот URL, который вы хотите оставить основным.
Ещё одна типичная проблема — конфликт правил. Например, плагин редиректов уже отправляет URL в одно место, а в .htaccess или конфигурации Nginx есть другое правило для того же пути. В таком случае поведение зависит от порядка обработки, и результат может быть неожиданным. Если вы настраиваете редиректы в нескольких местах, держите их в одном источнике или хотя бы документируйте, где что прописано.
Как проверить, что редирект работает правильно
После настройки не ограничивайтесь открытием страницы в браузере. Браузер может показать вам уже закешированный результат, и вы не заметите ошибку. Лучше проверить ответ сервера напрямую.
Самый простой способ — открыть старый URL в режиме инкогнито и убедиться, что он сразу ведёт на новый адрес. Но этого недостаточно. Надёжнее посмотреть код ответа. Если у вас есть доступ к терминалу, можно использовать curl:
curl -I https://example.com/old-page/В ответе должен быть статус 301 и заголовок Location с новым URL. Если видите 302, значит редирект временный. Если видите 200, перенаправления нет. Если 404, правило не сработало или указан неверный путь.
После этого проверьте ещё два момента:
- новый URL открывается без дополнительного редиректа;
- старый адрес не возвращает цепочку из нескольких переходов;
- внутренние ссылки на сайте уже ведут на новый адрес, а не на старый.
Последний пункт особенно важен. Если внутри сайта остались старые ссылки, вы будете гонять пользователя по редиректу каждый раз, когда он переходит по меню, кнопке или статье.
Как снизить число 404 после переезда
Редиректы решают основную часть проблемы, но не всю. После смены URL полезно пройтись по сайту и заменить внутренние ссылки на новые адреса. Иначе часть переходов будет идти через редирект, а часть старых URL останется в контенте, виджетах и меню.
Практически это выглядит так:
- обновите ссылки в меню и в блоках с кнопками;
- проверьте старые URL в контенте записей и страниц;
- посмотрите, не остались ли ссылки в футере, сайдбаре и шаблонах темы;
- если менялась структура разделов, обновите хлебные крошки и архивные ссылки.
Если на сайте уже есть 404, сначала посмотрите, какие именно адреса запрашивают чаще всего. Не нужно перенаправлять всё подряд. Иногда достаточно закрыть несколько старых URL, которые реально дают трафик, а остальные оставить как 404 или 410.
Для WordPress это рабочая схема: сначала определить, какие адреса изменились, затем настроить 301-редиректы на реальные новые страницы, после этого проверить ответ сервера и обновить внутренние ссылки. Если делать всё в таком порядке, сайт не теряет посетителей и не раздувает число ошибок 404 после переезда или редизайна.