301 редирект нужен, когда страница или сайт окончательно переехали на новый адрес. Я использую его, чтобы посетитель сразу попадал в нужное место, а поисковик понимал, какой URL теперь считать основным. Ниже — короткая логика выбора, рабочие примеры для Apache и Nginx и проверка после запуска.
Что такое 301 редирект
301 — это ответ сервера: «страница переехала навсегда». Браузер получает новый адрес и открывает его автоматически. Поисковый робот тоже переходит дальше и со временем заменяет старый URL новым в индексе. Для бизнеса это важно при смене структуры сайта, переезде на другой домен, подключении HTTPS или объединении дублей с www и без www.
Я ставлю 301 только тогда, когда возвращать старый адрес уже не планирую. Если изменение временное, выбираю 302 или 307. Если обе страницы должны открываться, но одна считается основной, использую canonical. Эти инструменты решают разные задачи: редирект переносит человека, а canonical лишь подсказывает поисковику предпочтительную версию.
Старый адрес отвечает кодом 301 и сразу направляет посетителя на новый.
Как выбрать правильный способ
| Способ | Когда применяю | Что видит посетитель | Главное ограничение |
|---|---|---|---|
| 301 | Адрес изменился навсегда | Сразу открывается новый URL | Не подходит для временных изменений |
| 302 или 307 | Перенос нужен на короткий срок | Открывается временный URL | Старый адрес остаётся основным |
| Canonical | Обе версии нужны, но одна основная | Никуда не перенаправляется | Это рекомендация для робота, а не переход |
| 404 или 410 | Страница удалена и равноценной замены нет | Показывается страница ошибки | Нельзя массово вести такие URL на главную |
Когда я настраиваю постоянный редирект
- Меняю адрес отдельной страницы и перенаправляю старый URL на её прямую замену.
- Перевожу сайт с HTTP на HTTPS и оставляю одну защищённую версию.
- Выбираю главное зеркало: с www или без www.
- Переношу сайт на другой домен, сохраняя пути страниц.
- Убираю дубли вроде /index.php и привожу адреса со слешем к одному формату.
- Удаляю страницу, но у неё есть близкая по смыслу действующая замена.
Перед настройкой я составляю карту «старый URL → новый URL». Для небольшого сайта хватает таблицы. При крупном переезде выгружаю все индексируемые, посещаемые и имеющие внешние ссылки страницы. Каждому важному старому адресу назначаю наиболее близкую новую страницу. Не отправляю весь архив на главную: посетитель не получает ожидаемый ответ, а поисковик может посчитать такой переход мягкой ошибкой.
Карта редиректов связывает каждый старый URL с релевантной новой страницей.
Как настроить 301 на Apache
На сервере Apache правила обычно добавляют в файл .htaccess в корне сайта. До правок я сохраняю копию файла: лишний символ способен вызвать ошибку сервера. Для одной страницы удобно простое правило: Redirect 301 /old-page/ https://example.com/new-page/ Старый путь указываю относительным, новый адрес — полным. После сохранения отдельно проверяю оба URL.
Для перевода всего сайта на HTTPS использую mod_rewrite: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] Флаг R=301 задаёт постоянный ответ, а L прекращает обработку следующих правил. Если сайт работает за прокси, сервер может не видеть HTTPS напрямую — тогда конфигурацию лучше уточнить у администратора или хостинга.
При переезде на новый домен сохраняю путь после имени сайта: RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?old\.example$ [NC] RewriteRule ^(.*)$ https://new.example/$1 [R=301,L] Так старая страница /contacts/ ведёт на /contacts/, а не на главную. Домены в примере обязательно заменяю своими.
Как настроить на Nginx
Nginx не читает .htaccess: правило добавляют в конфигурацию сайта. Для переноса HTTP-версии на основной HTTPS-адрес достаточно отдельного серверного блока: server { listen 80; server_name example.com www.example.com; return 301 https://example.com$request_uri; } Переменная request_uri сохраняет путь и параметры. После изменения конфигурацию сначала проверяют, затем перезагружают Nginx. Если доступа к серверу нет, передаю администратору готовую карту адресов и ожидаемый код ответа.
Каких ошибок я избегаю
- Не создаю цепочку из нескольких переходов. Старый URL должен вести сразу на конечный.
- Не соединяю правила, которые добавляют и одновременно убирают слеш: получится петля.
- Не перенаправляю удалённые страницы на нерелевантные разделы или главную.
- Не оставляю внутренние ссылки на старые адреса после переезда.
- Не закрываю конечную страницу от обхода и не веду на URL с ошибкой.
- Не считаю смену адреса способом снять санкции или исправить слабый контент.
Порядок правил тоже важен. Сначала я нормализую протокол и главное зеркало, затем обрабатываю конкретные страницы и разделы. Иначе один запрос проходит через несколько промежуточных адресов. После запуска обновляю ссылки в меню, тексте, XML-карте и рекламных материалах: редирект должен страховать старые входы, а не заменять аккуратные ссылки внутри сайта.
Правильная схема: один ответ 301, затем доступная конечная страница.
Как проверить результат
Открыть старый адрес в браузере недостаточно: я увижу конечную страницу, но могу пропустить промежуточные ответы. Поэтому проверяю заголовки командой curl: curl -IL https://example.com/old-page/ В норме старый URL возвращает 301 и заголовок Location с правильным адресом, а конечная страница — 200. Если встречаю 302, лишний переход, 404 или повторение одного адреса, возвращаюсь к правилам.
Для большого сайта прогоняю список адресов краулером или пакетным проверяющим инструментом. После этого выборочно прохожу важные страницы вручную: главную, категории, услуги, карточки, статьи и URL с параметрами. Проверяю не только код, но и смысл — старая страница должна привести туда, куда рассчитывает попасть человек.
Финальный чек-лист
- Старый адрес отвечает именно 301.
- Переход выполняется за один шаг.
- Новый URL соответствует содержанию старой страницы.
- Конечная страница отвечает 200 и доступна поисковому роботу.
- Внутренние ссылки уже ведут на новые адреса.
- В карте сайта указаны только конечные URL.
- Нет циклов, массовых переходов на главную и редиректов на ошибку.
После переезда я не удаляю правила сразу. Старые ссылки могут оставаться в поиске, закладках, письмах и чужих публикациях. Периодически проверяю журнал ошибок и дополняю карту, если нахожу ценные пропущенные адреса. Так 301 остаётся понятным техническим мостом, а не запутанной сетью переходов.
SEO
Проверю карту редиректов
Найду временные ответы, цепочки, петли и старые адреса, которые ведут не на те страницы.
Леонид СтрельцовИнтернет-маркетолог и автор материала
Обо мне VK Telegram MaxЧитайте также
Оптимизация изображений для сайта: мой рабочий процесс
Показываю, как выбрать формат, размер и сжатие изображений, настроить srcset, lazy loading и alt, а затем проверить скорость и качество.
Читать статью
Дубли страниц сайта: как найти и что с ними делать
Объясняю, как узнать дубль страницы, чем он отличается от похожего URL и когда выбрать canonical, редирект или закрытие от индекса.
Читать статью
Структура сайта: схема разделов, вложенность и URL
Показываю, как собрать структуру сайта из спроса: выбрать тип схемы, разложить страницы по разделам и проверить вложенность, URL и ссылки.
Читать статью
Внутренняя оптимизация сайта: мой порядок работы
Рассказываю, как проверяю индексацию, структуру, метатеги, скорость, перелинковку и коммерческие страницы перед продвижением.
Читать статью
