301 редирект: что это и как настроить
301 редирект (Moved Permanently) — это постоянное перенаправление: сервер сообщает, что страница навсегда переехала на другой адрес, и браузер вместе с поисковиками идут по новому. Его настраивают при смене адресов, переезде на https или другой домен и вместо 404 для удалённых страниц с заменой.
Обновлено 11 октября 2026 г.
Что такое редирект и как работает 301
Редирект (перенаправление) — это ответ сервера, который отправляет браузер или робота с запрошенного адреса на другой. Сервер возвращает код 3xx и заголовок Location с новым адресом. Код 301 Moved Permanently говорит, что перенос постоянный: поисковые системы со временем заменяют старый адрес новым в индексе, а ссылочный вес со старого адреса передаётся новому. Справка по коду: HTTP 301.
301, 302, 307 и 308: в чём разница
| Код | Название | Тип | Когда использовать |
|---|---|---|---|
| 301 | Moved Permanently | Постоянный | Переезд страницы или сайта, смена URL, склейка www и без www, http → https |
| 302 | Found | Временный | Временная акция, A/B-тест, сезонная страница. Подробнее: HTTP 302 |
| 307 | Temporary Redirect | Временный | Как 302, но метод запроса (POST) и тело сохраняются. HTTP 307 |
| 308 | Permanent Redirect | Постоянный | Как 301, но метод и тело сохраняются (например, для API). HTTP 308 |
Для обычных страниц сайта достаточно 301 и 302. Коды 307 и 308 нужны, когда важно не изменить метод запроса: при 301 и 302 браузеры могут превратить POST в GET.
Когда нужен 301 редирект
- Страница получила новый адрес (смена ЧПУ, структуры, переименование раздела).
- Сайт переезжает на другой домен или на https.
- Нужно склеить зеркала:
wwwи безwww, со слэшем в конце и без. - Удалённая страница имеет близкую по смыслу замену (вместо 404).
- Объединяются дубли страниц.
Как настроить 301 редирект
.htaccess (Apache)
Для одной страницы подойдёт директива Redirect из mod_alias. Первый аргумент — путь на сайте, второй — полный новый адрес:
# Одна страница
Redirect 301 /old-page https://example.com/new-page
# Весь раздел с сохранением остатка пути
RedirectMatch 301 ^/blog/(.*)$ https://example.com/articles/$1
# Правило через mod_rewrite
RewriteEngine On
RewriteRule ^old-page/?$ /new-page [R=301,L]nginx
server {
server_name example.com;
# Одна страница (точное совпадение)
location = /old-page {
return 301 /new-page;
}
# Раздел целиком
location ^~ /blog/ {
rewrite ^/blog/(.*)$ /articles/$1 permanent;
}
}Для nginx лучше использовать return 301, а не rewrite, где это возможно: так проще и быстрее. После правок проверьте конфиг командой nginx -t и перезагрузите службу. Ещё про сервер: настройка nginx и .htaccess.
WordPress
Проще всего поставить плагин Redirection: добавьте правило «Источник → Цель» с кодом 301 в разделе «Инструменты → Redirection». Плагин также записывает 404-ошибки и позволяет превращать их в редиректы в пару кликов. Подробнее: инструкция для WordPress.
1С-Битрикс
Массовые правила обычно добавляют на уровне веб-сервера (.htaccess или nginx), как в примерах выше. Для одной страницы в коде используйте функцию LocalRedirect с указанием статуса. Есть и готовые решения для управления редиректами в Маркетплейсе Битрикса. Подробнее: инструкция для Битрикс.
<?php
// /bitrix/php_interface/init.php или в шаблоне страницы
LocalRedirect("/new-page/", false, "301 Moved permanently");Tilda
В Tilda редиректы настраиваются в настройках сайта в разделе «Редиректы»: укажите старый адрес и страницу, на которую нужно перейти. Постоянный перенос и переезд на другой домен в Tilda решаются штатными настройками домена. Подробнее: инструкция для Tilda.
PHP
<?php
header("Location: https://example.com/new-page", true, 301);
exit;header() нужно вызывать до любого вывода, иначе PHP вернёт ошибку «headers already sent». После вызова обязательно ставьте exit, иначе скрипт продолжит выполнение.
Редирект с http на https и с www на без www
Эти два редиректа нужны любому сайту: у страницы должен быть один основной адрес. В Apache:
RewriteEngine On
# http -> https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# www -> без www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]В nginx:
# http -> https (и www, и без www)
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
# https://www -> https://без www
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
return 301 https://example.com$request_uri;
}Не хотите писать правила вручную? Генератор 301-редиректов соберёт готовый код для .htaccess и nginx.
Частые ошибки
- Цепочки редиректов. A → B → C, где можно сразу A → C. Каждый шаг замедляет загрузку, а длинные цепочки робот может не дойти до конца. Настраивайте переход сразу на конечный адрес.
- Петли. A → B → A: браузер выдаёт ошибку «Слишком много переадресаций». Разбор: ERR_TOO_MANY_REDIRECTS.
- Все страницы на главную. Для посетителя и поисковика это выглядит как soft 404. Перенаправляйте на ближайшую по смыслу страницу.
- 302 вместо 301. Для постоянного переезда нужен 301. Временный редирект не сообщает поисковикам, что адрес нужно заменить.
- Нет нормализации адреса. Если открываются и
http, иhttps, иwww, и без него, поисковик видит дубли. - Редирект остался навсегда после удаления целевой страницы. Цепочки 301 → 404 надо периодически перепроверять.
После настройки проверьте результат в инструменте проверки кода ответа: он покажет всю цепочку редиректов, статус каждого шага и итоговый адрес.
Как узнать, какие редиректы нужны
Нужные редиректы лучше определять по данным, а не по догадкам. Monitor404 собирает 404-адреса, на которые приходят реальные посетители, подсказывает наиболее подходящую страницу из sitemap и выгружает готовые правила для nginx и .htaccess.
Частые вопросы
Что такое 301 редирект?
Это постоянное перенаправление: сервер отвечает кодом 301 и указывает новый адрес. Браузеры и поисковые системы переходят по нему, а старый адрес со временем заменяется новым.
Чем 301 отличается от 302?
301 — постоянный перенос, 302 — временный. При временном редиректе поисковик обычно сохраняет в индексе старый адрес. Для постоянной смены адреса используйте 301.
Как сделать редирект с http на https?
В nginx добавьте server на 80 порту с return 301 https://example.com$request_uri;. В Apache используйте RewriteCond %{HTTPS} off и RewriteRule с флагом R=301,L.
Сколько редиректов в цепочке допустимо?
Лучше один. Каждый дополнительный переход замедляет загрузку, а поисковые роботы могут не пройти слишком длинную цепочку. Настраивайте переход сразу на финальный адрес.
Можно ли перенаправить все удалённые страницы на главную?
Не стоит. Это создаёт soft 404 и не помогает посетителю. Редирект должен вести на максимально близкую по смыслу страницу, а если замены нет, лучше отдать 404 или 410.