Если у страницы меняется адрес, материал объединяется с другим или целый раздел переезжает на новый URL, без 301 редиректа почти всегда появляются битые ссылки и проседает трафик. В WordPress это можно сделать несколькими способами: через плагин, через настройки сервера или прямо в коде темы/плагина. Для большинства сайтов самый безопасный путь — настроить постоянный редирект так, чтобы старый адрес всегда отправлял пользователя и поисковый робот на новый.
301 означает постоянное перенаправление. Браузер и поисковые системы понимают, что страница переехала надолго, и со временем могут передать часть накопленных сигналов новому адресу. Это именно тот тип редиректа, который нужен при смене URL, объединении материалов и переносе разделов. Временные редиректы 302 для таких задач не подходят.
Когда нужен 301 редирект
В WordPress 301 редирект обычно ставят в трёх ситуациях:
- вы меняете адрес отдельной записи или страницы;
- несколько материалов объединяются в один, а старые URL нужно отправить на новый;
- раздел сайта переезжает, например, с
/blog/на/articles/или меняется структура постоянных ссылок.
Есть и более частый практический случай: после редактирования записи меняется slug, а старый адрес уже успел попасть в поиск, закладки или внешние ссылки. Если не поставить редирект, посетитель увидит 404, а поисковик будет считать старую страницу удалённой.
Какой способ выбрать
Выбор зависит от того, где вам удобнее управлять правилами и насколько сложная у вас схема перенаправлений.
| Способ | Когда подходит | Плюсы | Ограничения |
|---|---|---|---|
| Плагин редиректов | Нужно быстро настроить несколько правил без правки конфигов | Удобно, наглядно, можно править из админки | Лишняя нагрузка и зависимость от плагина |
.htaccess или конфиг nginx | Нужны массовые и быстрые редиректы на уровне сервера | Работает до загрузки WordPress, меньше накладных расходов | Требует доступа к серверу и аккуратности |
| PHP-код | Нужно точечное правило в теме или мини-плагине | Гибко, не зависит от отдельного плагина | Нежелательно для большого числа правил, можно потерять при смене темы |
Если задача разовая или у вас нет доступа к серверным настройкам, проще использовать плагин. Если редиректов много и они должны работать быстро, лучше делать их на уровне веб-сервера.
Самый простой способ: плагин Redirection
Для большинства владельцев сайтов это самый понятный вариант. Плагин позволяет создать правило вида «старый URL → новый URL» без ручного редактирования конфигурационных файлов.
После установки и активации откройте раздел плагина и добавьте новое правило. Обычно достаточно указать исходный адрес, целевой адрес и тип перенаправления 301. Если редирект нужен только для одного конкретного URL, не усложняйте правило лишними условиями.
На практике важно проверить, как плагин обрабатывает адреса со слэшем в конце и с параметрами. Например, /page и /page/ для некоторых сайтов могут вести себя по-разному в зависимости от структуры постоянных ссылок. Если у вас уже включены канонические редиректы WordPress, не создавайте конфликтующие правила на тот же адрес.
После сохранения откройте старый URL в браузере и убедитесь, что он сразу отправляет на новый адрес. Лучше проверять не только главную страницу, но и несколько старых материалов, если вы переносили целый раздел.
Редирект через .htaccess на Apache
Если сайт работает на Apache и у вас есть доступ к файлу .htaccess, редирект можно задать напрямую. Это хороший вариант для простых и массовых правил, но перед изменением файла обязательно сделайте резервную копию. Ошибка в синтаксисе может сделать сайт недоступным.
Для одного адреса правило выглядит так:
Redirect 301 /staryj-url/ https://example.com/novyj-url/Если нужно перенаправить весь раздел, удобнее использовать RedirectMatch или модуль mod_rewrite. Например, при переносе каталога:
RedirectMatch 301 ^/blog/(.*)$ https://example.com/articles/$1Это правило отправит все адреса из /blog/ в соответствующие URL внутри нового раздела. Такой подход полезен, когда структура сохраняется, но меняется базовый путь.
После правки .htaccess проверьте, что в файле нет лишних символов и что правила WordPress, которые обычно находятся между строками # BEGIN WordPress и # END WordPress, не были случайно удалены.
Редирект в nginx
На nginx правила задаются в конфигурации сайта, а не в .htaccess. Если хостинг использует nginx, редирект обычно добавляет администратор или поддержка. Для одного URL это может выглядеть так:
rewrite ^/staryj-url/?$ https://example.com/novyj-url/ permanent;Для переноса раздела можно использовать более точное правило с сохранением хвоста пути:
rewrite ^/blog/(.*)$ https://example.com/articles/$1 permanent;После изменения конфигурации nginx обычно требуется перезагрузка или перечитывание настроек. Если у вас обычный shared-хостинг, этот шаг часто делает сама техподдержка.
Как сделать редирект в коде WordPress
Этот вариант подходит для точечных задач, когда вы не хотите ставить плагин и у вас есть доступ к теме или собственному мини-плагину. Для одного старого адреса можно использовать хук template_redirect и функцию wp_redirect().
Ниже пример для functions.php дочерней темы или для отдельного плагина. Код нужно адаптировать под свои URL:
add_action('template_redirect', function () {
if (is_page('staryj-url')) {
wp_redirect(home_url('/novyj-url/'), 301);
exit;
}
});Здесь is_page('staryj-url') проверяет конкретную страницу по slug, а wp_redirect(..., 301) отправляет постоянный редирект. После вызова wp_redirect() обязательно нужен exit, иначе WordPress продолжит выводить страницу.
Этот способ не стоит использовать для десятков и сотен адресов. Как только правил становится много, удобнее и надёжнее вынести их в плагин или на уровень сервера.
Как не сломать сайт при настройке
Главная ошибка — делать редирект на адрес, который сам уже редиректит или возвращает ошибку. Так появляются цепочки и петли. Например, /old/ ведёт на /new/, а /new/ по ошибке снова отправляет назад. В результате браузер выдаёт ошибку перенаправления, а поисковик может игнорировать такое правило.
Ещё одна типичная проблема — редирект на главную страницу «на всякий случай». Это плохая практика для SEO и для пользователей. Если старый материал переехал, лучше отправлять его на наиболее близкую по смыслу новую страницу. Если аналогов нет, можно вести на раздел-родитель или на страницу с объединённым контентом, но не на случайную главную.
Перед массовым переносом проверьте три вещи:
- старый URL действительно больше не нужен в прежнем виде;
- новый адрес открывается без редиректов и ошибок;
- внутренние ссылки на сайте уже обновлены, чтобы не плодить лишние переходы.
Как проверить, что 301 работает
Самый простой тест — открыть старый адрес в браузере и посмотреть, что в адресной строке появился новый URL. Но этого недостаточно, если вы хотите убедиться именно в коде ответа.
Для точной проверки можно использовать команду curl с заголовками ответа:
curl -I https://example.com/staryj-url/В ответе должен быть статус 301 Moved Permanently и заголовок Location с новым адресом. Если вы видите 302, значит редирект временный. Если получаете 200, правило не сработало. Если 404, старый URL не найден и перенаправление не настроено.
После проверки полезно открыть новый адрес и убедиться, что он отдаёт 200 OK, а не уходит дальше по цепочке. Для поисковой оптимизации и скорости сайта один прямой редирект всегда лучше нескольких последовательных.
Что делать при переносе раздела или объединении материалов
Когда меняется не одна страница, а целый блок сайта, редиректы лучше планировать заранее. Сначала составьте список старых URL и сопоставьте их с новыми адресами. Для объединения материалов логика простая: старые статьи должны вести на наиболее релевантную новую страницу, а не на общий архив.
Если переносится раздел, старайтесь сохранить структуру вложенности. Тогда можно обойтись одним правилом на весь каталог, а не создавать десятки отдельных перенаправлений. Но если часть материалов переехала в другие места, для них нужны отдельные точечные правила, иначе часть трафика уйдёт не туда.
После переноса не забывайте обновить внутренние ссылки в меню, блоках, хлебных крошках и в самих текстах. Редирект решает проблему для старых входов, но не должен становиться постоянной заменой нормальной структуры сайта.
Если вам нужно безопасно сменить URL страницы, объединить несколько материалов или перенести раздел, 301 редирект — правильный инструмент. Для одного-двух адресов достаточно плагина или точечного правила в коде. Для массового переноса лучше использовать настройки сервера. В любом случае проверяйте код ответа и избегайте цепочек редиректов: это самый надёжный способ сохранить трафик и не создать новых проблем после переезда.