Если вы сменили адрес страницы, удалили материал или переехали на новый домен, старый URL не должен вести в пустоту. 301 редирект сообщает браузеру и поисковым системам, что страница навсегда переехала на новый адрес. Для посетителя это означает автоматический переход, для сайта — сохранение части SEO-сигналов и снижение риска потерять трафик на старых ссылках.
В WordPress редирект можно настроить тремя практичными способами: через плагин, через файл .htaccess на Apache или через PHP-код в теме/плагине. Для большинства сайтов самый удобный вариант — плагин. Если нужен полный контроль и у вас есть доступ к серверу, подойдёт серверная настройка.
Когда нужен 301 редирект
301 используют в случаях, когда старый адрес больше не должен открываться как отдельная страница:
- вы изменили URL записи или страницы;
- удалили материал, но у него были внешние ссылки или трафик из поиска;
- объединили несколько страниц в одну;
- переехали на новый домен или на HTTPS;
- исправили структуру постоянных ссылок;
- убрали дубли и хотите оставить только один канонический адрес.
Если страница удалена без замены и у неё нет ценности для пользователей, иногда лучше отдать 410 Gone, а не редиректить всё подряд. Но если есть релевантная новая страница, 301 — правильный выбор.
Самый простой способ: плагин для редиректов
Если вы не хотите править серверные файлы и боитесь сломать сайт, используйте плагин. Это безопаснее для владельца сайта, потому что правила можно добавлять и проверять из админки WordPress.
Подходящие плагины для редиректов работают одинаково по сути: вы указываете старый URL и новый адрес, а плагин отправляет посетителя с кодом 301. После установки обычно достаточно открыть раздел редиректов, добавить источник и цель, сохранить правило и проверить переход.
Этот способ удобен, если редиректов немного или они нужны не постоянно. Но на очень больших сайтах с тысячами правил лучше переносить логику на сервер, чтобы не перегружать WordPress лишними проверками.
Что важно проверить в плагине
- редирект именно с кодом
301, а не302; - совпадает ли путь URL, включая слэш в конце, если он важен для вашего сайта;
- нет ли цепочки из нескольких переходов;
- не создаёт ли правило петлю, когда старый адрес ведёт сам на себя.
Если плагин позволяет, лучше настраивать редирект не только для одной страницы, а для группы похожих URL по маске. Но используйте маски осторожно: одно неаккуратное правило может отправить не туда сразу десятки адресов.
Редирект через .htaccess на Apache
Если сайт работает на Apache и у вас есть доступ к корню сайта, редирект можно прописать в .htaccess. Это быстрый и надёжный способ, потому что правило отрабатывает до загрузки WordPress.
Перед изменением файла сделайте резервную копию. Ошибка в .htaccess может привести к 500 Internal Server Error и временно отключить сайт.
Для одного адреса правило выглядит так:
Redirect 301 /staryj-adres/ https://example.com/novyj-adres/Если нужно перенаправить конкретную страницу на другой URL, этого обычно достаточно. Первый путь указывается относительно корня сайта, второй — полный новый адрес.
Если нужен более гибкий вариант, используют модуль mod_rewrite. Например, для переноса одной страницы:
RewriteEngine On
RewriteRule ^staryj-adres/?$ https://example.com/novyj-adres/ [R=301,L]Такой вариант полезен, когда нужно точнее контролировать совпадение адреса. Но если вы не уверены в синтаксисе, лучше не усложнять и использовать простое правило Redirect 301.
Редирект через PHP в WordPress
Иногда редирект удобнее добавить в код, если вы уже работаете с темой или небольшим кастомным плагином. Для этого используют функцию wp_redirect() и обязательно завершают выполнение скрипта через exit;.
Пример для перенаправления одной страницы:
add_action('template_redirect', function () {
if (is_page('staryj-adres')) {
wp_redirect('https://example.com/novyj-adres/', 301);
exit;
}
});Этот способ подходит, когда нужно завязаться на условия WordPress: тип записи, слаг, категорию или другой контекст. Но у него есть минус: WordPress уже должен загрузиться, поэтому для массовых редиректов он менее эффективен, чем серверное правило.
Не вставляйте такой код в functions.php без понимания, как вы будете его поддерживать. Если тема сменится, правило может исчезнуть. Для постоянной логики лучше вынести редиректы в отдельный мини-плагин.
Какой способ выбрать
| Ситуация | Лучший вариант | Почему |
|---|---|---|
| Несколько редиректов, нужен быстрый запуск | Плагин | Проще добавить и проверить без доступа к серверу |
Сайт на Apache, есть доступ к .htaccess | .htaccess | Редирект работает до загрузки WordPress |
| Нужна логика по условиям WordPress | PHP-код | Можно привязать к слагу, типу записи и другим условиям |
| Много правил и высокая нагрузка | Серверная настройка | Меньше лишней нагрузки на WordPress |
Если у вас обычный сайт на WordPress без сложной инфраструктуры, начните с плагина. Когда редиректов станет много или появится необходимость в более строгом контроле, перенесите правила на сервер.
Как не потерять трафик и не сломать SEO
Самая частая ошибка — редиректить всё на главную страницу. Для поисковика это слабый сигнал: старый материал не имеет прямого аналога, а пользователь попадает на нерелевантную страницу. Лучше вести на максимально близкий по смыслу новый URL.
Ещё одна проблема — цепочки редиректов. Например, старый адрес ведёт на промежуточный, а тот — на конечный. Для пользователя это лишняя задержка, а для поисковых систем — лишний шум. Правильная схема выглядит так: старый URL → новый URL, без промежуточных шагов.
Если вы меняете структуру сайта массово, сначала составьте список старых и новых адресов. Это можно сделать в таблице, чтобы не потерять соответствия. После этого настройте редиректы пакетно и проверьте самые важные страницы: те, что уже получали трафик, ссылки или заявки.
Как проверить, что 301 работает
После настройки откройте старый адрес в браузере и убедитесь, что он автоматически ведёт на новый. Но визуальной проверки недостаточно: важно увидеть именно код ответа 301.
Проверить можно несколькими способами:
- через инструменты разработчика в браузере, вкладка Network;
- через онлайн-проверку HTTP-статуса;
- через команду
curl, если вам удобно работать из терминала.
Пример проверки через curl:
curl -I https://example.com/staryj-adres/В ответе должен быть статус 301 Moved Permanently, а в заголовке Location — новый адрес. Если видите 302, редирект временный и для постоянного переноса он не подходит. Если видите 200, значит перенаправления нет вовсе.
Что делать после настройки
Когда редирект работает, обновите внутренние ссылки на сайте, чтобы не гонять пользователей и роботов по старым адресам. Если старый URL был в меню, блоках, кнопках или в статьях, замените его на новый вручную. Это уменьшит количество лишних переходов и ускорит обход сайта.
Если страница была удалена окончательно и замены нет, не спешите ставить редирект на случайную похожую страницу. В таких случаях лучше оценить, есть ли смысл в новом адресе вообще. Иногда корректнее оставить 404 или отдать 410, чем искусственно отправлять человека не туда.
Для типовой задачи схема простая: выберите способ настройки, добавьте правило 301, проверьте код ответа и убедитесь, что старые ссылки ведут на релевантную новую страницу. Этого достаточно, чтобы не терять посетителей и не ломать накопленные SEO-сигналы при смене URL или переезде сайта.