Monitor404

301 редирект: что это и как настроить

301 редирект (Moved Permanently) — это постоянное перенаправление: сервер сообщает, что страница навсегда переехала на другой адрес, и браузер вместе с поисковиками идут по новому. Его настраивают при смене адресов, переезде на https или другой домен и вместо 404 для удалённых страниц с заменой.

Обновлено 11 октября 2026 г.

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

Редирект (перенаправление) — это ответ сервера, который отправляет браузер или робота с запрошенного адреса на другой. Сервер возвращает код 3xx и заголовок Location с новым адресом. Код 301 Moved Permanently говорит, что перенос постоянный: поисковые системы со временем заменяют старый адрес новым в индексе, а ссылочный вес со старого адреса передаётся новому. Справка по коду: HTTP 301.

301, 302, 307 и 308: в чём разница

КодНазваниеТипКогда использовать
301Moved PermanentlyПостоянныйПереезд страницы или сайта, смена URL, склейка www и без www, http → https
302FoundВременныйВременная акция, A/B-тест, сезонная страница. Подробнее: HTTP 302
307Temporary RedirectВременныйКак 302, но метод запроса (POST) и тело сохраняются. HTTP 307
308Permanent RedirectПостоянныйКак 301, но метод и тело сохраняются (например, для API). HTTP 308

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

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

  • Страница получила новый адрес (смена ЧПУ, структуры, переименование раздела).
  • Сайт переезжает на другой домен или на https.
  • Нужно склеить зеркала: www и без www, со слэшем в конце и без.
  • Удалённая страница имеет близкую по смыслу замену (вместо 404).
  • Объединяются дубли страниц.

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

.htaccess (Apache)

Для одной страницы подойдёт директива Redirect из mod_alias. Первый аргумент — путь на сайте, второй — полный новый адрес:

.htaccess
# Одна страница
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

nginx.conf
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
<?php
header("Location: https://example.com/new-page", true, 301);
exit;

header() нужно вызывать до любого вывода, иначе PHP вернёт ошибку «headers already sent». После вызова обязательно ставьте exit, иначе скрипт продолжит выполнение.

Редирект с http на https и с www на без www

Эти два редиректа нужны любому сайту: у страницы должен быть один основной адрес. В Apache:

.htaccess
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:

nginx.conf
# 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.

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