wp3.ru wordpress WP3

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

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

Ниже — практический разбор, как настроить 301 редирект в WordPress без лишних действий и как проверить, что он действительно работает.

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

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

  • изменили структуру ссылок на сайте;
  • перенесли материал на другой адрес;
  • удалили страницу, но есть похожая замена;
  • объединили несколько статей в одну;
  • перенесли сайт на новый домен или в другую папку.

Если страница удалена без замены и аналогичного контента нет, 301 не всегда обязателен. Иногда лучше оставить 404 или 410, чтобы не отправлять пользователя на нерелевантную страницу. Но если у старого URL есть понятный новый адрес, 301 — правильный вариант.

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

Для большинства сайтов на WordPress удобнее всего настраивать редиректы через плагин. Это безопаснее, чем править конфигурацию сервера вручную, особенно если у вас нет доступа к Apache/Nginx или вы не хотите рисковать .htaccess.

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

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

  1. Установите и активируйте плагин.
  2. Откройте раздел управления редиректами.
  3. Создайте новое правило.
  4. В поле исходного URL укажите старый адрес, обычно без домена, например /staryj-url/.
  5. В поле целевого URL укажите новый адрес, например /novyj-url/.
  6. Выберите тип перенаправления 301 - Moved Permanently.
  7. Сохраните правило.

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

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

Редирект через .htaccess: когда это быстрее и надёжнее

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

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

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

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

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

Пример через mod_rewrite, если нужно больше контроля:

RewriteEngine On
RewriteRule ^staryj-url/?$ /novyj-url/ [R=301,L]

Обратите внимание: в .htaccess путь указывается без домена, а в целевом URL можно использовать полный адрес или относительный путь. Если на сайте уже есть правила WordPress, не удаляйте их. Добавляйте редирект выше стандартного блока WordPress, если это требуется для вашего сценария.

Редирект через PHP: рабочий вариант, если нет доступа к серверу

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

Для одиночного перенаправления можно использовать хук template_redirect. Пример:

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() обязательно идёт exit;, иначе WordPress продолжит вывод страницы.

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

Какой способ выбрать в реальной работе

СпособКогда подходитПлюсыМинусы
ПлагинНужно быстро настроить несколько редиректов без кодаПросто, безопасно, удобно правитьДополнительная нагрузка и зависимость от плагина
.htaccessСайт на Apache/LiteSpeed, нужен быстрый серверный редиректРаботает до загрузки WordPress, подходит для большого числа правилНужен доступ к файлу и аккуратность при правке
PHP-кодНужно перенаправить несколько адресов и нет доступа к серверуНе требует отдельного плагинаЗависит от темы или собственного кода

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

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

После настройки важно убедиться, что редирект действительно отдаёт код 301, а не 302 и не цепочку из нескольких переходов.

Проверка вручную:

  1. Откройте старый URL в браузере.
  2. Убедитесь, что он сразу ведёт на новый адрес.
  3. Проверьте, что конечная страница открывается без ошибок.

Техническая проверка надёжнее. Можно использовать команду curl, если у вас есть доступ к терминалу:

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

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

Что обычно ломает редиректы

На практике проблемы повторяются довольно часто:

  • Редирект ведёт на сам себя. Это создаёт цикл, и страница не открывается.
  • Старый и новый URL отличаются только слэшем. Иногда это вызывает лишние переходы, если на сайте уже есть свои правила канонизации.
  • Сначала срабатывает кэш. После изменения правил старый ответ может ещё какое-то время отдаваться из кэша плагина, сервера или CDN.
  • Неправильный тип редиректа. Для постоянного переноса нужен именно 301, а не 302.
  • Смешаны несколько способов. Например, правило есть и в плагине, и в .htaccess, и в коде темы. Тогда трудно понять, что именно срабатывает первым.

Если редирект не работает, сначала проверьте, нет ли дублирующего правила в другом месте. Потом очистите кэш и только после этого ищите ошибку в синтаксисе.

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

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

Практически это выглядит так:

  • соберите список старых URL из аналитики, карты сайта, логов или старого CMS;
  • определите, какие страницы имеют прямую замену;
  • для каждой пары настройте отдельный 301;
  • проверьте, нет ли цепочек вида старый URL → промежуточный URL → новый URL;
  • после запуска ещё раз просмотрите 404-ошибки и добавьте недостающие правила.

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

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

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

×
Halloween Game

Сыграй в игру, спаси сайт! Забери приз

Играть