301 редирект
Синонимы: 301 redirect, постоянное перенаправление, moved permanently, 301-й редирект
NAME
301 редирект — seo
DESCRIPTION
301 редирект — HTTP-код ответа, означающий «перемещено навсегда». Сервер говорит браузеру и поисковику: «Эта страница теперь находится по новому адресу, перенаправляю вас туда. Забудьте старый URL». Передаёт 95-99% ссылочного веса со старого URL на новый.
Типы редиректов в сравнении:
| Код | Тип | Передаёт вес | Когда использовать |
|---|---|---|---|
| 301 | Постоянный | 95-99% | Смена URL навсегда |
| 302 | Временный | 0% (раньше) | Временная подмена |
| 307 | Временный (HTTP/1.1) | 0% | Сохраняет метод (POST) |
| 308 | Постоянный (HTTP/1.1) | 95-99% | Как 301, сохраняет метод |
| 410 | Gone | 0% | Страница удалена навсегда |
| meta refresh | HTML-редирект | Непредсказуемо | Избегать |
| JavaScript redirect | JS-редирект | Слабо | Избегать |
Когда ОБЯЗАТЕЛЬНО ставить 301:
- Смена домена (old.ru → new.ru)
- Переход с http на https
- Смена CMS с другими URL (WordPress → Django)
- Реструктуризация сайта (
/blog/post-1→/seo/post-1/) - Удаление страниц с заменой на аналог
- Слияние двух страниц в одну
- Смена URL-ending (с
.htmlна без расширения)
Когда НЕ использовать 301:
- A/B-тестирование (используйте 302)
- Временное перенаправление на обслуживание (503)
- Страницы, которые могут вернуться (используйте 410, если точно нет)
- Пагинация (используйте canonical)
Как настроить 301:
Nginx:
# Одиночный редирект
rewrite ^/old-page$ https://site.ru/new-page permanent;
# Массовый (regex)
rewrite ^/blog/(.*)$ https://site.ru/articles/$1 permanent;
# Весь домен
server {
server_name old.ru;
return 301 https://new.ru$request_uri;
}
Django (views.py):
from django.http import HttpResponsePermanentRedirect
def old_view(request):
return HttpResponsePermanentRedirect('/new-url/')
.htaccess (Apache):
Redirect 301 /old-page https://site.ru/new-page
Цепочки редиректов — зло:
A → B → C → D— робот может не дойти до конечной страницы- Google рекомендует не более 5 переходов, лучше 1
- Используйте прямые редиректы:
A → D
Проверка 301:
curl -I https://site.ru/old-page(смотритеHTTP/1.1 301+Location)- Screaming Frog → Response Codes → 3xx
- https://httpstatus.io — массовая проверка
Кейс WEBVISUAL:
Клиент — компания по ремонту, ребрендинг со сменой домена remont-msk.ru → remontpro.ru + смена CMS с WordPress на Django. Было: 4 500 проиндексированных страниц, топ-3 по 200 коммерческим запросам. Настроили:
- Полный маппинг старых URL → новых (таблица в Excel → скрипт генерации Nginx-правил)
- Все 4 500 редиректов 301, без цепочек
- Sitemap старого сайта с редиректами → новый sitemap
- Обновили ссылки во внешних источниках (2gis, Яндекс.Карты, партнёры)
Результат за 4 месяца: сохранили 95% позиций, трафик просел только на 8% (и восстановился). Бюджет: 45 000 ₽. Без 301 — потеряли бы всё.
СМ. ТАКЖЕ
Индексация(7)