Ваш успех в сети
WEBVISUAL
301 РЕДИРЕКТ(7) WEBVISUAL MANUAL 301 РЕДИРЕКТ(7)

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)