Skip to content
← Все статьи

301 vs 302 редирект: разница и когда что использовать

301 и 302 — два самых распространённых HTTP-редиректа, и их путают даже опытные разработчики. Неправильный выбор стоит SEO-позиций, ломает аналитику и создаёт циклы редиректов. В этой статье разберём принципиальную разницу, влияние на SEO, когда применять каждый, и покажем примеры настройки в nginx, Apache, PHP и WordPress.

Что такое 301 Moved Permanently

По RFC 9110 §15.4.2, код 301 говорит: «ресурс переехал навсегда, используйте новый URL во всех будущих запросах». Поисковые системы передают ~90-99% SEO-веса со старого URL на новый. Браузер кэширует редирект.

Что такое 302 Found

Код 302 (RFC 9110 §15.4.3) означает: «ресурс временно доступен по другому URL, но оригинальный остаётся актуальным». SEO-вес НЕ передаётся — старый URL продолжает индексироваться. Браузер не кэширует.

Ключевые отличия в таблице

Параметр301302
СемантикаНавсегдаВременно
SEO-весПередаётсяНе передаётся
Кэширование браузеромДа (агрессивное)Нет
ИндексацияНовый URLСтарый URL
Метод запросаМожет измениться на GETМожет измениться на GET

Когда использовать 301

  • Переезд домена (example.com → example.io)
  • Изменение URL-структуры (например, переход на ЧПУ)
  • HTTP → SSL/TLS проверку
  • www → без www (или наоборот)
  • Удаление устаревшей страницы с переадресацией на replacement
  • Изменение slug статьи в блоге

Когда использовать 302

  • A/B тестирование — временно отправляем часть трафика на другую страницу
  • Maintenance mode — перенаправляем на заглушку
  • Географический роутинг (реальный edge случай — чаще 307)
  • Временные акции — после окончания возвращаемся на канон
  • Авторизация — после логина redirect на originally-requested страницу

Настройка в nginx

# 301 permanent redirect
location = /old-page {
    return 301 https://example.com/new-page;
}

# 302 temporary redirect
location = /promo {
    return 302 https://example.com/black-friday;
}

# HTTP → HTTPS (всегда 301)
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

Настройка в Apache (.htaccess)

# 301
Redirect 301 /old-page /new-page

# 302
Redirect 302 /promo /black-friday

# HTTP → HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Настройка в PHP

<?php
// 301
header('Location: https://example.com/new-page', true, 301);
exit;

// 302 (default, но лучше указывать явно)
header('Location: https://example.com/temp-page', true, 302);
exit;

Настройка в WordPress

Используйте плагины Redirection или Rank Math, либо в коде:

add_action('template_redirect', function () {
    if (is_page('old-page')) {
        wp_redirect(home_url('/new-page'), 301);
        exit;
    }
});

SEO-риски при неправильном выборе

  1. 302 вместо 301 при переезде → Google не передаёт SEO-вес, новый URL не ранжируется.
  2. 301 для A/B теста → браузеры кэшируют, вы не сможете откатить быстро.
  3. Цепочки редиректов → 301 → 301 → 301 теряет до 15% веса и замедляет загрузку.
  4. Редирект с разных протоколов — следите за HTTPS-цепочкой.

Проверяйте цепочку редиректов через HTTP Header Checker от Enterno.io — он покажет все шаги от исходного URL до финального, с кодами и временем каждого хопа.

303, 307, 308 — когда нужны

  • 303 See Other — после POST перенаправить на GET (POST-Redirect-Get pattern)
  • 307 Temporary Redirect — как 302, но метод и тело ЗАПРОСА сохраняются
  • 308 Permanent Redirect — как 301, но метод и тело сохраняются

Часто задаваемые вопросы (FAQ)

В: Передаётся ли полный SEO-вес через 301?
О: Google официально заявляет: «редиректы 301 передают PageRank полностью». На практике наблюдается 90-99%.

В: Сколько редиректов подряд допустимо?
О: Максимум 1 хоп. Каждый дополнительный редирект = минус SEO и +100-200ms latency.

В: Как проверить, какой код возвращает редирект?
О: curl -I https://example.com или используйте Enterno.io HTTP Checker — покажет полную цепочку.

В: Можно ли использовать 302 постоянно?
О: Можно, но это ошибка. Google может воспринять долгий 302 как 301, но поведение непредсказуемое.

Заключение

Правило простое: 301 для постоянных изменений, 302 для временных. 99% редиректов на production-сайте должны быть 301. Проверяйте цепочки через HTTP Header Checker и избегайте множественных хопов.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: HTTP
HTTP
HTTP коды ответов: полный справочник с примерами
10.03.2025 · 190 просм.
HTTP
HTTP заголовки: полное руководство
10.03.2025 · 186 просм.
HTTP
Ошибка 500 Internal Server Error: что значит и как починить
15.04.2026 · 72 просм.
HTTP
502 Bad Gateway: что значит и как починить
15.04.2026 · 59 просм.