wpkit.ru wordpress WPKit

Как настроить редиректы 301 в WordPress

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

Ниже разберём, когда 301 действительно нужен, как настроить его разными способами и как проверить, что всё работает без побочных эффектов.

Когда 301-редирект нужен, а когда нет

301 используют, если старый адрес больше не должен открываться как основной. Типичные случаи:

  • изменился URL отдельной записи или страницы;
  • поменялась структура рубрик или постоянных ссылок;
  • сайт переехал на новый домен;
  • нужно склеить дублирующиеся адреса, например с www и без www, с http на https;
  • страница удалена, но у неё есть трафик, внешние ссылки или она ранжировалась в поиске, и вы хотите перенаправить посетителей на ближайший релевантный аналог.

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

Самый надёжный способ: редирект на уровне сервера

Если у вас есть доступ к настройкам веб-сервера, лучше делать редиректы там, а не через WordPress. Причина простая: сервер отработает перенаправление раньше, чем загрузится PHP и сама CMS. Это быстрее и надёжнее, особенно если старый URL уже не существует в WordPress.

Редирект в .htaccess для Apache

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

Для одного адреса:

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

Если нужен более гибкий вариант, используют mod_rewrite:

RewriteEngine On
RewriteRule ^staryj-url/?$ https://example.com/novyj-url/ [R=301,L]

Такой подход удобен, когда нужно перенаправить конкретную страницу или несколько адресов с похожим шаблоном. Важно не смешивать это правило с уже существующими правилами WordPress без понимания порядка их обработки. Обычно блок WordPress в .htaccess должен оставаться нетронутым, а ваши правила добавляются выше него.

Редирект в конфигурации Nginx

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

location = /staryj-url/ {
    return 301 https://example.com/novyj-url/;
}

Для массового переноса структура может быть сложнее, но принцип тот же: старый адрес должен сразу отдавать 301 и вести на новый. После правки конфигурации Nginx обычно требуется перезагрузка сервиса, а на shared-хостинге это делает провайдер.

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

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

Через плагин редиректов

Самый практичный путь для владельца сайта — использовать плагин, который умеет управлять 301-редиректами из админки. Это удобно, если нужно быстро перенаправить несколько старых URL после правки структуры ссылок или переноса контента. Важно выбирать инструмент, который позволяет задавать код ответа явно, а не просто «перекидывать» посетителя.

Обычно настройка выглядит так:

  1. устанавливаете плагин редиректов;
  2. добавляете старый путь и новый адрес;
  3. выбираете тип перенаправления 301;
  4. сохраняете правило и проверяете переход в браузере или через инструмент проверки заголовков.

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

Через код в WordPress

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

Пример редиректа для конкретной страницы:

add_action('template_redirect', function () {
    if (is_page('staryj-url')) {
        wp_redirect('https://example.com/novyj-url/', 301);
        exit;
    }
});

Здесь is_page('staryj-url') проверяет старую страницу по слагу, а wp_redirect() отправляет посетителя на новый адрес с кодом 301. После вызова wp_redirect() обязательно идёт exit, иначе WordPress продолжит вывод страницы и могут появиться неожиданные эффекты.

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

Что делать при смене структуры рубрик

Когда меняется структура рубрик, часто ломаются не только сами архивы, но и ссылки на записи внутри них. Например, раньше URL был вида /category/news/, а потом вы убрали базу рубрик или изменили её. В такой ситуации одного общего правила может быть недостаточно: нужно понять, какие именно адреса изменились.

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

Практически безопасный порядок такой:

  • составьте список старых и новых URL;
  • отдельно проверьте самые посещаемые страницы из аналитики и Search Console;
  • сначала настройте редиректы для ключевых страниц вручную;
  • потом добавляйте массовые правила только там, где шаблон действительно совпадает.

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

Как перенести сайт на новый домен без потери трафика

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

Для доменной миграции обычно делают так:

  1. на новом домене разворачивают копию сайта;
  2. проверяют, что все страницы доступны по новым URL;
  3. на старом домене настраивают 301-редирект со всех страниц на соответствующие страницы нового домена;
  4. обновляют внутренние ссылки, sitemap и канонические URL на новом сайте;
  5. проверяют, что старый домен не отдаёт смешанный контент и не ведёт на цепочки редиректов.

Если новый домен полностью заменяет старый, редирект должен работать на уровне сервера, а не только внутри WordPress. Это особенно важно, если старый сайт больше не будет обслуживаться CMS.

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

После настройки не ограничивайтесь проверкой в браузере. Браузер может скрывать часть деталей, а вам нужно убедиться именно в коде ответа и конечном URL.

Проверьте три вещи:

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

Самый простой способ — открыть старый URL в инструменте проверки заголовков или использовать команду curl:

curl -I https://example.com/staryj-url/

В ответе должен быть статус 301 и заголовок Location с нужным адресом. Если видите 200, редирект не сработал. Если видите несколько переходов подряд, лучше сократить цепочку до одного шага: это быстрее для пользователя и чище для поисковых систем.

Типичные ошибки, из-за которых редиректы ломаются

Чаще всего проблемы возникают не в самом 301, а в деталях настройки.

  • Редирект на несуществующий URL. В итоге пользователь всё равно попадает на 404, только через лишний шаг.
  • Цепочка редиректов. Старый адрес ведёт на промежуточный, а тот — на конечный. Это лишняя нагрузка и лишняя задержка.
  • Петля редиректов. Новый URL по ошибке снова отправляет на старый, и страница не открывается.
  • Одинаковое правило в нескольких местах. Например, редирект есть и в плагине, и в .htaccess. Потом сложно понять, что именно срабатывает.
  • Слишком широкое правило. Оно может задеть не только нужную страницу, но и похожие URL.

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

Если нужен удобный способ управлять редиректами и другими техническими настройками сайта из админки, в экосистеме WPShop есть плагин Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpkit.ru&utm_medium=article&utm_campaign=kak-nastroit-redirekty-301-v-wordpress. Но для самой задачи 301-редиректов достаточно и обычного плагина редиректов, и серверной настройки — выбирайте способ по тому, где у вас есть доступ и сколько URL нужно перенести.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше