Опытный SEO-специалист должен знать в каких случаях и для чего используется 302-редирект, и самое главное, чем он отличается от других типов переадресации. В этой статье разберем все нюансы этого вопроса, а также научимся настраивать данный тип перенаправления разными способами.
Как работает 302-редирект?
302-редирект работает по принципу перенаправления посетителей или краулеров поисковых систем с текущего URL-адреса на другой. Другими словами, в момент загрузки страницы, от сервера приходит ответ о переадресации с указанием нового URL-адреса, будь то 301 или 302-редиректы.
Для чего используется 302-редирект?
Главная цель 302-редиректа – создать временную переадресацию текущей страницы на новый адрес. Понадобиться подобное может в следующих случаях:
- На странице ведется техническая работа и посещение ее пользователями или ботами нежелательны. К примеру, документ обновляется поэтапно, в течении нескольких дней.
- Временное перенаправление трафика с одного домена на другой.
- Документ часто подвергается корректировкам и требуется показывать последнюю его версию. К примеру, при организации страниц акций в интернет-магазине, когда появляется временное предложение, а страницу предыдущего (как правило, уже проиндексированную и имеющую определенный траст) удалять не требуется.
- Техническое обслуживание сайта. В этом случае, посетителю выводится экран-заглушка, при этом остальные страницы не исключаются из поискового индекса.
- Аналогичным образом, хостинг-провайдеры могут временно закрывать определенные страницы на клиентских сайтах.
Как отмечалось выше, 302-редирект подходит для страниц, адрес которых поменялся временно (как правило, на срок не более 7-10 суток). Это говорит о том, что URL старой страницы остается в индексе поисковых систем. Поэтому, если документ «переехал» на постоянной основе, следует использовать исключительно 301-редирект, либо могут возникнуть сложности с SEO-продвижением.
Некоторые интернет-магазины настраивают 302-редирект с товаров, которых нет в наличии. Не рекомендуется этого делать, лучше предложить потенциальному покупателю аналогичные товары, оставив при этом его на исходном URL-адресе.
Также не следует использовать 302-редирект при смене структуры сайта или при установке SSL-сертификата. Это действительно может создать проблему, т.к. со старого ресурса не будет передаваться весь накопленный траст, а старые страницы не будут исключены из индекса поисковых систем.
301 или 302-редиректы, в чем разница?
Главное отличие:
- 301-редирект – постоянное перенаправление на новую страницу.
- 302-редирект – временное перенаправление.
Что касается влияния на SEO, то тут тоже имеются существенные различия:
- В отличии от 301-редиректа, при 302 не передается ссылочный «вес» старой страницы на новый URL-адрес.
- При 301 перенаправлении, из поискового индекса удаляется адрес старой страницы и добавляется новый. При 302 – оба адреса находятся в индексе (если новая страница успела попасть в индекс, но в любом случае, старый адрес не исключается из него) и сохраняется «авторитет» исходной страницы.
- Если говорить про возможность склейки доменов, то 301 позволяет это сделать, а 302 – нет.
Советуем не настраивать 302-редирект на более чем 7-10 суток, иначе могут последовать санкции со стороны поисковых систем.
Способы настройки 302-редиректа
Настройка 302-редиректа схожа с настройкой других типов перенаправления – синтаксис и команды те же, отличается лишь код ответа сервера.
Прописываем 302-редирект в htaccess
Данный вид настройки доступен только на серверах Apache. Находим в корне сайта файл .htaccess и вносим в него следующие данные:
RewriteEngine on Redirect 302 /old-url https://site.ru/new-url
Как видно из синтаксиса, указывается код ответа (302), далее URL-адрес исходной страницы и после – новой с указанием протокола соединения и доменного имени.
Этот пример подходит, если требуется настроить переадресацию с одной страницы на другую. Если же необходимо создать перенаправления внутри всего ресурса, то следует использовать более сложный вариант:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.site.ru [NC] RewriteRule ^(.*)$ https://site /$1 [R=302,L]
Для закрытия от пользователей и поисковых ботов определенного документа, используется следующий код:
RewriteEngine on RewriteCond %{REQUEST_URI} !/cat.html$ RewriteCond %{REMOTE_ADDR} !^123.123.123.123 RewriteRule $ /cat.html [R=302, L]
С помощью php
Если по каким-то причинам предыдущий метод не подходит, то настроить 302-редирект можно с помощью php-кода. В этом случае перенаправление происходит на самом сервере, а не в браузере пользователя.
Настройка редиректа производится через установку специального заголовка Location и функции header(), которая позволяет отправлять HTTP-заголовок в браузер. Главное замечание – данная функция на странице должна быть вызвана раньше других, и располагаться вначале документа (даже пробел перед этой конструкцией приведет к ее неработоспособности). Если этим правилом пренебречь, то редирект не сработает.
Преимущество данного метода настройки переадресации заключается в том, что синтаксис довольно-таки прост:
<?php header('Location: https://site.ru/primer.html'); exit; ?>
Чтобы настроить сам редирект, данный фрагмент кода необходимо вставить на страницу (в ее php код), с которой будет осуществляться перенаправление в самое начало документа. В примере кода требуется лишь заменить URL-адрес конечной страницы, на которую будет происходить переадресация с указанием полного пути.
Если редиректов планируется много, то рекомендуется создать файл, содержащий все необходимые правила.
С помощью JavaScript
Это менее распространенный способ настройки 302-редиректа по той причине, что в случае, если JavaScript в браузере у посетителя отключен (а так бывает в большинстве случаев), то перенаправление не сработает.
Также, наблюдается небольшая задержка, вызванная тем, что первоначально загружается исходная HTML-страница в виде белого экрана, и только после срабатывает редирект.
Для реализации этого способа, необходимо оформить нижеприведенный код в тег <body> или <head> страницы, с которой требуется сделать перенаправление:
<script type=”text/JavaScript”> document.location = ‘https://site.ru/primer.html’; </script>
Как исправить 302 редирект на 301?
Чтобы не было проблем, необходимо отличать эти два вида редиректов, понимать, в каких случаях применяется тот или иной. Иногда случаются ситуации, что некоторые CMS или их плагины, вместо 301-редиректа, проставляют 302. Это может создать ряд трудностей для владельца ресурса, поэтому важно отслеживать этот момент.
Способы исправления 302-редиректа на 301 отличаются в зависимости от того, каким методом реализована переадресация. К примеру, если это было сделано в файле .htaccess, то достаточно просто изменить код ответа сервера с 302 на 301:
RewriteEngine on Redirect 301 /old-url https://site.ru/new-url
Если говорить про php-способ, то в примере выше был использован заголовок Location, по умолчанию он передает редирект 302. Если требуется прописать 301, то используем следующий код (предварительно удалив от 302-редиректа):
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: https://site.ru/primer.html"); exit(); ?>
Как проверить что все настроено верно?
Проверить код ответа сервера и работоспособность настроенных редиректов можно несколькими способами.
С помощью Яндекс.Вебмастер
Панель Вебмастера позволяет проверять коды ответов сервера. Чтобы попасть в этот инструмент, переходим: «Инструменты – Проверка ответов сервера». Вбиваем нужный URL-адрес и получаем код ответа.
Проверка ответа сервера с помощью Яндекс.Вебмастера
Как видно на примере, у страницы корректно сработал 302-редирект.
Проверка вручную
Если требуется проверить одну или несколько страниц, то можно воспользоваться ручным способом. Достаточно зайти на страницу, с которой должен быть осуществлен редирект, если все настроено корректно, то сработает перенаправление.
Единственный его недостаток – не получится понять какой тип редиректа сработал.
С помощью сервиса bertal.ru
Данный сервис позволяет получать информацию из HTTP-заголовков документов. Принцип работы с ним достаточно прост: копируем и вставляем в строку URL-адрес интересуемой страницы, нажимаем «Проверить» и получаем код ответа сервера.
Проверяем код ответа сервера с помощью сервиса bertal.ru
Screaming Frog SEO
Если на сайте настроено множество редиректов и их требуется найти, ручные способы для этого малопригодны. В этом случае, рекомендуется использовать специализированный софт, например, Screaming Frog SEO.
Первоначально, сайт необходимо просканировать, вбив его URL-адрес в программу и запустив краулер.
Получение данных через Screaming Frog SEO
Далее переходим к поиску страниц с 302-редиректом (или любым другим кодом ответа), настроив предварительно фильтр по соответствующему столбцу:
Настройка фильтра для поиска страниц с 302-редиректом
И получаем список интересующих документов.
Используя 302-редирект, необходимо быть предельно внимательным, если применять его бездумно, то можно лишь усложнить SEO-продвижение ресурса.
* Meta Platforms Inc. (и принадлежащие ей соц.сети Instagram, Facebook) признана экстремистской организацией, ее деятельность в России запрещена.