Как сделать 301 редирект в WordPress

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

301 редирект — это постоянное перенаправление. Оно говорит браузеру и поисковым системам, что страница переехала окончательно, и старый адрес нужно заменить новым. Именно поэтому для смены URL и переноса материалов обычно выбирают не 302, а 301.

Когда 301 редирект нужен в WordPress

Чаще всего редирект ставят в трёх ситуациях: вы изменили адрес записи или страницы, объединили несколько материалов в один, либо удалили старый URL, но хотите отправить пользователей на ближайшую релевантную страницу. Это нормальная практика при редизайне, смене структуры сайта, чистке устаревшего контента и миграции с другого движка.

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

Самый простой способ: плагин для редиректов

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

Схема работы обычно одинаковая: устанавливаете плагин, добавляете старый и новый адрес, выбираете код ответа 301 и сохраняете правило. После этого старый URL начнёт отправлять посетителя на новый.

Как настроить редирект через плагин

На практике шаги выглядят так:

  1. Откройте Плагины → Добавить новый.
  2. Найдите плагин для редиректов, установите и активируйте его.
  3. Перейдите в его раздел настроек в админке.
  4. Добавьте источник — старый URL.
  5. Укажите целевой адрес — страницу, на которую нужно перенаправлять.
  6. Выберите тип перенаправления 301 Moved Permanently.
  7. Сохраните правило и проверьте переход в браузере.

Если плагин позволяет указывать только путь без домена, вводите именно часть после домена, например /staryj-url/. Это снижает риск ошибки при переносе сайта между доменами или поддоменами.

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

Редирект через .htaccess: когда это уместно

Если сайт работает на Apache или совместимом сервере и у вас есть доступ к файлу .htaccess, редирект можно задать на уровне веб-сервера. Это полезно, когда нужно быстро обработать один или несколько старых адресов без нагрузки на WordPress. Такой способ работает до загрузки CMS, поэтому он обычно быстрее и надёжнее для простых правил.

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

Для одного адреса правило выглядит так:

Redirect 301 /staryj-url/ https://example.com/novyj-url/

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

Редирект через functions.php: рабочий, но не лучший вариант

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

Для перенаправления конкретного URL можно использовать хук template_redirect. Пример ниже отправляет старый адрес на новый, если пользователь открыл нужную страницу:

add_action( 'template_redirect', function () {
    if ( is_page( 'staryj-url' ) ) {
        wp_redirect( home_url( '/novyj-url/' ), 301 );
        exit;
    }
} );

Этот вариант подходит, если вы хотите обойтись без плагина, но он всё равно требует аккуратности. После редактирования кода проверьте сайт в браузере и убедитесь, что редирект не зациклился и не отправляет на несуществующий адрес.

Как выбрать способ: плагин, сервер или код

Если задача простая и редиректов немного, обычно достаточно плагина. Если у вас много правил и важна минимальная нагрузка, удобнее серверный уровень. Если нужен точечный редирект внутри темы или временное решение для разработчика, можно использовать PHP-код, но это не самый устойчивый вариант.

СпособКогда подходитЧто учитывать
ПлагинОдин или несколько редиректов, без доступа к серверуЗависит от WordPress и самого плагина
.htaccessСайт на Apache, нужен быстрый серверный редиректОшибки в файле могут сломать сайт
functions.php / мини-плагинТочечное решение для разработчикаЗависит от темы или вашего кода

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

Как проверить, что 301 редирект работает

После настройки откройте старый адрес в браузере и убедитесь, что вас перекидывает на нужную страницу. Но визуальной проверки мало: важно, чтобы сервер действительно отдавал код 301, а не 302 или 200.

Проверить это можно несколькими способами:

  • через онлайн-проверку HTTP-заголовков;
  • в инструментах разработчика браузера на вкладке Network;
  • командой curl -I https://example.com/staryj-url/, если вам удобно работать с консолью.

В ответе должен быть статус 301 Moved Permanently, а в заголовке Location — конечный URL. Если вместо этого вы видите цепочку из нескольких переходов, лучше сократить её до одного шага.

Типичные ошибки при настройке

Самая частая ошибка — редирект на несуществующую страницу. В этом случае пользователь всё равно попадёт в тупик, только уже по новому адресу. Вторая распространённая проблема — петля редиректов, когда старый URL ведёт на новый, а новый по ошибке возвращает обратно. Третья — использование 302 вместо 301, из-за чего поисковые системы не воспринимают перенос как постоянный.

Ещё одна практическая ошибка — забыть про слэш в конце URL. На WordPress это особенно заметно, если сайт настроен на адреса со слэшем, а правило написано без него. Старайтесь копировать адреса в том виде, в каком они реально открываются на сайте.

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

Что делать после переноса страниц или удаления старых материалов

После настройки 301 редиректов проверьте несколько старых URL вручную и убедитесь, что они ведут туда, куда вы планировали. Затем просмотрите отчёты об ошибках 404 в аналитике, панели вебмастера или логах сервера, если они доступны. Это помогает заметить адреса, которые вы забыли перенаправить.

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

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

⭐⭐⭐⭐⭐