К содержимому

9 мин чтения

Редирект: что это, какие бывают виды и как его настроить

Редирект отправляет посетителя и поискового робота со старого адреса на новый. Разбираем коды перенаправления, способы настройки и порядок действий при переезде сайта.

Изогнутая хромированная стрелка между двумя дверными рамами

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

Что такое редирект

Редирект (от английского redirect) — ответ сервера с кодом группы 3xx и заголовком Location, в котором указан новый адрес. Браузер или робот получает такой ответ и сам переходит по указанному URL.

Код ответа сообщает характер переадресации: постоянная она или временная. Пользователь этой разницы не видит, а для поисковой системы она определяет, какой адрес оставить в индексе. Поэтому переадресация сайта — не только удобство, но и сигнал для поиска.

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

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

  • переезд на новый домен или с HTTP на HTTPS;
  • выбор одного главного адреса: с www или без, со слешем в конце или без;
  • смена структуры URL при редизайне или переходе на другую CMS;
  • объединение похожих страниц и удаление устаревших разделов;
  • перенаправление после отправки формы, чтобы повторное обновление страницы не отправило её снова.

Виды редиректов: коды 301, 302, 303, 307 и 308

Редиректы делятся на постоянные (301 и 308) и временные (302, 303 и 307). Постоянный говорит поисковику, что новый адрес заменил старый, временный — что старый адрес скоро вернётся.

КодНазваниеТипКогда использовать
301Moved PermanentlyПостоянныйСтраница навсегда переехала на новый URL
308Permanent RedirectПостоянныйТо же, но с сохранением метода и тела запроса
302FoundВременныйТехнические работы, временная акция, тест страниц
307Temporary RedirectВременныйВременный перенос с сохранением метода запроса
303See OtherВременныйПереход на страницу результата после отправки формы

Коды 307 и 308 появились, чтобы убрать неоднозначность 301 и 302: при них браузер обязан повторить запрос тем же методом, например POST. Для обычных страниц, которые открываются методом GET, разница не важна.

Код 304 Not Modified часто путают с редиректом, хотя он означает другое: страница не изменилась с прошлого визита, и можно взять копию из кеша. Яндекс рекомендует отдавать его для редко меняющихся файлов, это экономит ресурсы обхода.

Как поисковики учитывают редиректы

Для Google и Яндекса редирект — сигнал, какой адрес показывать в поиске. После постоянного перенаправления в индексе остаётся новый URL, после временного поисковик может продолжать показывать старый.

По документации Google, коды 301 и 308 — сильный сигнал, что каноническим должен стать новый адрес, а 302, 303 и 307 — слабый. Мгновенный meta refresh с задержкой 0 секунд Google тоже считает постоянным, а JavaScript-редирект советует применять только тогда, когда серверный вариант невозможен: если отрисовка страницы не удастся, робот его не увидит. Краулеры Google проходят не более 10 переходов в цепочке.

Яндекс рекомендует 301 для постоянного переноса и советует сохранять такой редирект не меньше шести месяцев. Временный 302 нужен только для временных ситуаций: технических работ или сравнения двух версий страницы.

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

Надёжнее всего настраивать редирект на сервере: в конфигурации Apache или Nginx либо в коде сайта. Перенаправления через HTML и JavaScript оставляют на случай, когда доступа к серверу нет.

Apache и файл .htaccess

Для одной страницы достаточно строки Redirect 301 /old-page/ https://example.ru/new-page/. Для правил по шаблону используют модуль mod_rewrite и флаг [R=301]. Учтите, что директива Redirect без указания кода по умолчанию отдаёт временный 302.

Nginx

В Nginx редирект задают в блоке server или location: return 301 https://example.ru$request_uri;. Для переноса по шаблону подходит rewrite с флагом permanent. Файлы .htaccess Nginx не читает, поэтому правила, перенесённые с Apache, нужно переписать.

PHP и другие языки

В коде редирект отправляют заголовками до вывода любого содержимого: header("Location: https://example.ru/new/", true, 301); и затем завершают выполнение скрипта.

HTML и JavaScript

Метатег <meta http-equiv="refresh" content="0; url=https://example.ru/new/"> и смена window.location в JavaScript работают только в браузере после загрузки страницы. Это запасные варианты, а не основной способ.

В CMS

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

Переезд сайта и карта 301-редиректов

Хромированные бирки, попарно соединённые проволокой, как карта редиректов
Карта редиректов: каждой старой странице — своя новая

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

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

  1. Соберите все старые URL: из Sitemap, выгрузки краулера, отчётов Вебмастера и Search Console, статистики посещаемости.
  2. Для каждого адреса определите новую страницу. Перенаправлять всё на главную нельзя: Яндекс отмечает, что это неудобно пользователям и замедляет индексирование нового сайта.
  3. Настройте редиректы напрямую, без цепочек. Если меняются и домен, и пути, сведите их в одно правило.
  4. Обновите внутренние ссылки, canonical и Sitemap, чтобы они указывали на новые адреса.
  5. В Яндекс Вебмастере подайте заявку в разделе «Индексирование» → «Переезд сайта» со старого сайта, в Google Search Console при смене домена используйте инструмент изменения адреса.
  6. Следите за отчётами индексирования обоих сайтов и за ошибками 404.

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

Как проверить редирект

Проверить редирект можно в браузере, в консоли сервера или в инструментах поисковых систем. Смотрите на три вещи: код ответа, конечный адрес и количество промежуточных переходов.

  • Инструменты разработчика в браузере. На вкладке Network при включённой опции сохранения журнала видна вся цепочка с кодами ответов.
  • Командная строка. Запрос curl -I https://example.ru/old/ покажет код и заголовок Location.
  • Панели вебмастеров. «Проверка ответа сервера» в Яндекс Вебмастере и проверка URL в Search Console показывают, что видит поисковый робот.
  • Краулеры и онлайн-сервисы. Они проверяют сразу весь сайт или список адресов из карты редиректов.

Частые ошибки при настройке редиректов

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

ОшибкаПоследствиеРешение
302 вместо 301 при постоянном переносеПоиск может держать в индексе старый адресСменить код на 301 или 308
Цепочка из нескольких редиректовМедленнее для людей, хуже для обходаВести сразу на конечный URL
Циклический редиректБраузер показывает ошибку «слишком много переадресаций»Найти конфликт правил сервера и CMS
Все старые страницы ведут на главнуюПользователь не находит нужное, индексирование замедляетсяПеренаправлять на близкую по смыслу страницу
Внутренние ссылки ведут на старые адресаЛишние переходы на каждом кликеЗаменить ссылки на новые URL
Редиректы сняли через месяц после переездаСтарые ссылки снова ведут на 404Сохранять перенаправления надолго

Если сайт ждёт переезд или смена структуры, карту редиректов и их проверку стоит включить в техническое SEO сайта до релиза, а не после падения трафика.

Источники

Вопросы и ответы

Что такое редирект?

Это автоматическое перенаправление посетителя и робота с одного URL на другой. Сервер отвечает кодом 3xx и указывает новый адрес в заголовке Location.

Где настраивается редирект?

Чаще всего в конфигурации веб-сервера (.htaccess для Apache, файлы Nginx) или в коде сайта. В CMS перенаправления можно добавить через админку или модуль.

Как убрать редирект?

Удалите правило там, где оно задано: в конфигурации сервера, коде или модуле CMS, затем очистите кеш. Учтите, что браузеры могут помнить постоянный 301, поэтому проверяйте результат в режиме инкогнито или через curl.

Как правильно настроить переадресацию сайта на новый домен?

Перенаправьте каждую старую страницу на соответствующую новую кодом 301, обновите Sitemap и внутренние ссылки, затем сообщите о переезде в Яндекс Вебмастере и Google Search Console.

Чем 301 отличается от 302?

301 сообщает, что адрес сменился навсегда, и в поиске остаётся новая страница. 302 означает временный перенос, и поисковик может продолжать показывать старый URL.

Подписаться на журнал

Новые разборы о сайтах, SEO и ИИ выходят в журнале QIO. Подпишитесь в Google, по RSS или в Telegram, чтобы получать их первыми.

Читайте также

Чем можем помочь?
Обсудить проект