Если вы перенесли страницу, поменяли структуру ссылок или удалили материал, старый адрес нельзя просто оставить «как есть». Пользователь увидит 404, а поисковые системы начнут считать URL устаревшим. В таких случаях нужен редирект 301 — постоянное перенаправление со старого адреса на новый.
В WordPress это можно сделать несколькими способами: через плагин, через настройки сервера или вручную в коде темы и конфигурации сайта. Для большинства владельцев сайтов самый безопасный и быстрый вариант — плагин. Если нужна высокая скорость и вы уверены в настройках сервера, можно использовать правила на уровне Apache или Nginx.
Когда нужен редирект 301
Редирект 301 ставят не «на всякий случай», а когда старый URL больше не должен открываться напрямую. Типичные ситуации:
- страница переехала на новый адрес;
- изменили структуру постоянных ссылок;
- объединили несколько материалов в один;
- удалили страницу, но есть подходящая замена;
- сменили домен или перенесли сайт на другой адрес;
- исправили URL с ошибкой, опечаткой или лишним словом.
Ключевая задача здесь простая: сохранить переходы пользователей и передать старому адресу его накопленный вес. Если вместо редиректа оставить 404, часть трафика и ссылочного сигнала просто потеряется.
Какой способ выбрать в WordPress
Для WordPress есть три рабочих подхода. Выбор зависит от того, кто управляет сайтом и где именно удобнее вносить изменения.
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Плагин редиректов | Нужен быстрый и понятный способ без правки сервера | Удобно, можно управлять правилами из админки | Дополнительный плагин, лишняя нагрузка при большом числе правил |
| .htaccess на Apache | Есть доступ к файлу конфигурации и сайт работает на Apache | Быстро, без плагинов | Ошибки в правилах могут сломать сайт |
| Nginx | Сайт работает на Nginx и есть доступ к конфигу | Надёжно и быстро | Нужен доступ к серверу, не подходит для обычной админки WordPress |
Если вы не уверены, что у вас Apache или Nginx, и не хотите рисковать конфигурацией сервера, начинайте с плагина. Это особенно разумно, когда нужно настроить несколько отдельных перенаправлений после редизайна или переноса контента.
Самый простой способ: плагин Redirection
Для большинства сайтов достаточно плагина Redirection. Он позволяет создавать правила 301 прямо из админки WordPress и не требует редактировать серверные файлы. Это удобный вариант, если вы не хотите трогать .htaccess или конфигурацию Nginx.
После установки и активации плагина откройте раздел управления редиректами и добавьте новое правило. Обычно нужно указать:
- старый URL;
- новый URL;
- тип перенаправления —
301; - при необходимости — условие для точного совпадения адреса.
Например, если старая страница была по адресу /uslugi/seo-audit/, а новая стала /seo-audit/, редирект должен вести со старого пути на новый. Важно указывать именно путь, если плагин работает с относительными URL, а не полный адрес с доменом — так меньше шансов ошибиться при смене домена или протокола.
После сохранения откройте старый адрес в браузере и проверьте, что он сразу отправляет на новый. Если редирект не срабатывает, проверьте, не конфликтует ли правило с кэшем, другим плагином или настройками постоянных ссылок.
Редирект через .htaccess на Apache
Если сайт работает на Apache и у вас есть доступ к файлу .htaccess, редирект можно прописать вручную. Это хороший вариант для небольшого числа правил, когда не хочется ставить дополнительный плагин.
Перед изменением .htaccess сделайте резервную копию файла. Ошибка в синтаксисе может привести к недоступности сайта или к циклу перенаправлений.
Для одного адреса правило обычно выглядит так:
Redirect 301 /staryi-url/ https://example.com/novyi-url/Если нужно более гибкое правило, используют модуль mod_rewrite. Но для обычной задачи переноса страницы чаще достаточно простого варианта выше. Главное — не смешивать несколько правил, которые ведут в разные места, иначе потом будет трудно понять, какое из них реально срабатывает.
После правки файла проверьте старый URL в браузере и через инструмент проверки ответа сервера. Если сервер отдает не 301, а другой код, значит правило написано неверно или не применяется.
Редирект на Nginx
На Nginx редиректы настраиваются в конфигурации сервера, а не в .htaccess. Это важно: если вы попытаетесь решить задачу через WordPress, но сайт работает на Nginx без поддержки .htaccess, правило просто не сработает.
Для одного адреса обычно используют такую конструкцию:
rewrite ^/staryi-url/?$ https://example.com/novyi-url/ permanent;Или более явно через return:
location = /staryi-url/ { return 301 https://example.com/novyi-url/; }Какой вариант выбрать, зависит от текущей схемы конфигурации на сервере. Если доступ к Nginx у вас только через хостинг-поддержку, лучше передать им точную пару адресов: старый и новый. Это снизит риск ошибки и ускорит настройку.
Как не сломать сайт при настройке редиректа
Самые неприятные ошибки при 301-редиректах обычно связаны не с WordPress, а с логикой самих правил. Вот что проверяют в первую очередь:
- Редирект в редирект. Старый URL не должен вести на промежуточный адрес, который потом снова перенаправляется дальше без необходимости.
- Цикл перенаправления. Старый и новый адрес не должны ссылаться друг на друга.
- Неверный протокол. Если сайт работает на HTTPS, не стоит случайно отправлять на HTTP-версию.
- Несовпадение слэша. На некоторых сайтах
/pageи/page/обрабатываются по-разному. - Слишком общее правило. Если редирект затрагивает больше URL, чем нужно, можно случайно увести весь раздел не туда.
Если переносите не одну страницу, а целый раздел, сначала составьте список старых и новых адресов. Это проще, чем потом искать, какой URL отправляет пользователя не туда.
Как проверить, что редирект 301 работает правильно
После настройки мало просто открыть страницу в браузере. Браузер может показать уже закешированный результат, и вы не увидите реальную картину. Надежнее проверить ответ сервера.
Что можно сделать:
- открыть старый URL в режиме инкогнито;
- проверить цепочку перенаправлений через онлайн-проверку HTTP-статуса;
- посмотреть ответ сервера через инструменты разработчика или команду
curl, если вам удобно работать из терминала.
Пример проверки через curl:
curl -I https://example.com/staryi-url/В ответе должен быть статус 301 Moved Permanently и заголовок Location с новым адресом. Если вместо этого вы видите 200 OK, редирект не настроен. Если статус 302, это временное перенаправление, а не постоянное, и для переноса страницы оно обычно не подходит.
Что делать с удалённой страницей, если замены нет
Если материал удалён окончательно и подходящей замены нет, не всегда нужно ставить редирект на главную. Такой вариант часто ухудшает поведение пользователя: человек ожидает конкретный контент, а попадает на нерелевантную страницу.
В этой ситуации обычно выбирают одно из двух решений:
- оставить
404, если страница действительно не имеет замены и не приносит значимого трафика; - сделать редирект на ближайший по смыслу материал, если он реально отвечает на тот же запрос.
Редирект на главную имеет смысл только в редких случаях, когда удалённая страница была частью навигации и у пользователя есть понятный путь продолжить работу с сайтом. В остальных сценариях лучше вести на релевантный раздел или оставить честный 404.
Короткий рабочий порядок
Если нужен практический алгоритм без лишней теории, действуйте так:
- Определите старый и новый URL.
- Выберите способ настройки: плагин,
.htaccessили конфиг Nginx. - Сделайте резервную копию, если правите серверные файлы.
- Добавьте правило
301. - Проверьте старый адрес и убедитесь, что он ведёт на нужную страницу без лишних переходов.
- Проверьте несколько URL, если меняли не одну страницу, а целый раздел.
Если задача ограничивается несколькими страницами, плагин обычно быстрее и безопаснее. Если редиректов много и сайт обслуживается технически грамотно, лучше вынести правила на уровень сервера. В обоих случаях принцип один: старый адрес должен однозначно и без циклов вести на новый, а статус ответа обязан быть именно 301.