Причины появления скрытого редиректа
Веб-мастер сам так настроил
Иногда веб-мастера сами настраивают переадресацию мобильных посетителей на сторонние сайты. Например, если сайт служит им для заработка на продаже мобильного трафика через партнерские программы WAP-click. Такой заработок против правил поисковиков и чреват вылетом из индекса.
Скрипт ворует трафик, веб-мастер не в курсе
Нелицензионные CMS, бесплатные виджеты и подозрительные скрипты небезопасны, через них трафик может утекать на вредоносные сайты без ведома веб-мастера. Например, это могут быть элементы для показа рекламы или монетизации контента.
Злоумышленники взломали сайт
Веб-мастер снова будет не в курсе, но трафик могут перехватить злоумышленники, которые взломали сайт и настроили редирект на нужные им площадки для воровства личных данных или денег с банковских карт.
Отключение некоторых функций сайта (рекомендуется)
Если вы планируете в дальнейшем вернуться к ведению бизнеса онлайн, мы советуем не удалять сайт из Интернета, а просто отключить некоторые его функции. Это оптимальный вариант, поскольку он позволяет свести к минимуму негативное влияние на видимость вашего сайта в Поиске. Пользователи по-прежнему смогут находить ваши товары, читать отзывы о них и добавлять их в списки желаний на будущее. Ниже рассказывается о том, что вы можете предпринять.
- Отключите корзину. Это самая простая мера, которая никак не повлияет на видимость ваших страниц в Поиске.
-
Используйте баннер или всплывающее окно. Добавьте элемент div с баннером или всплывающим окном на все страницы, включая целевую, чтобы посетители сразу видели статус сайта. Укажите в нем информацию о нетипичных задержках, изменениях сроков доставки, новых вариантах получения товаров и т. д.
Чтобы текст баннера или всплывающего окна не появлялся в результатах поиска, используйте .
Следуйте нашим рекомендациям по размещению всплывающих окон и баннеров. - Обновите структурированные данные. Если на ваш сайт добавлены структурированные данные (, , и т. д.), внесите необходимые корректировки, например отражающие наличие товара или отмену мероприятия. Если у вас есть обычный магазин, укажите его текущий график работы в структурированных данных о местной компании.
- Проверьте фид Merchant Center. Если вы работаете с Merchant Center, следуйте рекомендациям по использованию атрибута availability (наличие).
- Сообщите Google об изменениях. Запросить повторное сканирование небольшого числа страниц (или одной, например главной) можно через Search Console. Если нужно просканировать много страниц, например все страницы товаров, используйте файлы Sitemap.
Виды перенаправлений
Браузеры и роботы поисковых систем определяют вид редиректа по коду состояния HTTP. Перенаправления могут иметь разный HTTP-статус: 301, 302, 303, 307. Давайте рассмотрим каждый вид подробнее.
Редирект 301
Это самый распространённый вид перенаправления. Его можно сравнить с постоянным переездом — когда вы уезжаете из одного дома в другой и точно не вернётесь назад.
Получается, что HTTP-статус 301 (Moved Permanently) означает, что веб-страница навсегда перемещена с запрошенного URL на новый. После получения ответа 301 браузер делает новый запрос и быстро перенаправляет пользователя на актуальную страницу.
Поисковые системы хорошо реагируют на 301-й редирект, да и сложностей обычно не возникает
Но важно всё правильно настроить, чтобы пользователь при переходе не получил ошибку 404.
Редирект 302
Этот редирект 302 (Moved Temporarily) можно назвать «временным». Возвращаясь к предыдущему примеру с переездом в новый дом, этот вид можно сравнить, например, поездкой на дачу на летние каникулы — ваша квартира в городе никуда не денется, и вы сможете вернуться туда в любой момент.
Важно — редирект 302 не передаёт авторитет и ссылочный вес донора акцептору. Для поисковых систем это означает полное дублирование страниц, а потому одна из них (чаще всего старая) будет исключена из выдачи (кстати, как и в случае с 301)
Редиректы 303 и 307
307-й (Temporary Redirect) для поисковых систем фактически точная реплика (копия) 303-го (Found) редиректа. Это временное перенаправление трафика на новую страницу с сохранением всех параметров прежней.
Эти виды используют, когда появляется необходимость перенаправить пользователя на другую страницу, которая не содержит точного ответа, но является частичной заменой запрошенной.
В большинстве случаев владельцам сайтов подходит редирект 301. Именно этот вид уведомляет поисковых роботов, что документ навсегда перемещён на новый адрес, что передаёт авторитет и ссылочный вес новой странице.
Другие способы создания переадресации 301
Через PHP
Данный вариант подойдет тем, кто хорошо разбирается в web-программировании и PHP. Необходимо открыть файл index.php в корне CMS-движка и прописать там:
if($_SERVER == "/index.php") { header("Location: /",TRUE,301); exit(); }
(в первой строке укажите старый url, а во второй — новый)
Второй способ — перенаправление при помощи отправки заголовков (скрипта):
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.newdomain.ru/newdir/newpage.htm"); exit(); ?>
ASP-редирект
<%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.new-url.com" response.end %>
ASP.NET редирект
Найдите в корне своего сайта файл web.config и вставьте в секцию синтаксис:
<script runat="server"> private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.new-url.com"); } </script>
ColdFusion редирект
<.cfheader statuscode="301″ statustext="Moved permanently"> <.cfheader name="Location" value="http://www.new-url.com">
JSP (Java) редирект
Данный способ подойдет для небольшой корректировки простых сайтов. Код можно прописать лишь в одном файле, а сам файл добавить на все нужные страницы, указав:
<script type="text/javascript" src="redirect.js"></script> <script type="text/javascript"> location="https://yandex.ru"; </script>
HTML-редирект
Этот способ подойдет для небольших статических сайтов, когда требуется настроить переадресацию для одной страницы. Для этого необходимо добавить специальный мета-тег внутри кода HTML. Пример записи редиректа на другой ресурс после 5-секундной задержки:
<meta http-equiv="refresh" content="5;https://livepage.pro">
Если поставить значение 0 вместо 5, то переадресация на https://livepage.pro произойдет моментально.
Однако для больших сайтов HTML-перенаправление делать сложно и затратно по времени, поэтому лучше отдать предпочтение другому варианту.
Node.js перенаправления
Чтобы перенаправить с помощью Node, во-первых, нужно включить HTTP модуль и создать новый сервер, используя .writeHead () метод:
var http = require(“http”);
http.createServer(function(req, res) {
res.writeHead(301,{Location: ‘http://new-website.com’});
res.end();
}).listen(8888);
Если Вы делаете новый файл и называете его index.js, вставьте код, приведенный выше, и запустите node index.js, в командной строке вы найдете локальную версию сайта, перенаправленную на new-website.com. Но, чтобы перенаправить все сообщения в разделе /blog, нужно разобрать URL из запроса с удобным Node URL модулем:
Бесплатные вебинары по схожей тематике:
Создание дизайна лендинга с Figma
Алла Штогрина
Увлекательное путешествие в страну динамического программирования
Игорь Клейнер
Tips&Tricks: How to Survive Meetings with Foreign Customers
Оксана Скоромная
var http = require(“http”);
var url = require(“url”);
http.createServer(function(req, res) {
var pathname = url.parse(req.url).pathname;
res.writeHead(301,{Location: ‘http://new-website.com/’ + pathname});
res.end();
}).listen(8888);
Используя функцию .writeHead (), мы можем установит путь от запроса до конца URL строки. Теперь пользователь будет перенаправлен на тот же путь на новом сайте.
Как сделать, чтобы это не повторилось — защищаем сайт
Нужно поработать с безопасностью проекта, чтобы уменьшить риск повторного появления редиректа на чужой сайт.
Обновляйте версии, не ставьте пиратский софт
Если вы нашли причину утечки мобильного трафика в каком-то расширении или модуле, возможно, больше не стоит пользоваться сайтом, на котором вы его взяли. Используйте только лицензионное ПО и устанавливайте все виджеты, модули, плагины и всевозможные решения только с официальных ресурсов. Чем меньше установлено, тем лучше — вероятность уязвимости статистически меньше.
Следите за новостями и проверяйте список уязвимостей для вашей CMS, набора библиотек или фреймворка. Если вскрылась уязвимость, разработчики торопятся выпустить обновление с исправлением.
Поговорите с сотрудниками, обновляйте пароли
Для каждой площадки придумайте отдельный пароль, чтобы в случае утечки одного пароля злоумышленникам не открылся доступ ко всем вашим ресурсам.
Для панели администратора можно установить задержку ввода пароля для следующих попыток после ввода неправильного. Так злоумышленнику будет сложнее перебирать пароли к админке сайта.
Разграничивайте доступы для сотрудников и проводите с ними беседы. Если у инициативного, но не очень разбирающегося сотрудника есть доступ к админке сайта, он из добрых побуждений может установить что-то небезопасное.
Внимательнее выбирайте рекламодателей
Обещания золотых гор хоть и звучат соблазнительно, на деле оказываются приманкой для участия в фейковых партнерских программах. Аккуратно выбирайте рекламодателей, используйте Google.Adsense, Яндекс.Директ и другие проверенные варианты.
Расскажите о своем опыте: вы сталкивались с такими редиректами? Как исправили ситуацию?
Как остановить перенаправления в Chrome?
Чтобы остановить перенаправления в Chrome, вы должны удалить их причины из браузера. Давайте перечислим методы для этого.
1. Используйте Chrome Malware Scanner
Многие функции делают Google Chrome лучшим браузером среди всех остальных. Одной из таких функций является встроенный сканер вредоносных программ. Chromes оснащен антивирусом, который автоматически сканирует вредоносные файлы или программы. Однако вы также можете выполнить сканирование вручную.
— В браузере Chrome щелкните значок трех точек в правом верхнем углу и найдите Настройки.
— На странице настроек прокрутите вниз и нажмите Дополнительные.
— В дополнительных настройках в разделе найдите заголовок «Сброс и очистка», а под ним нажмите Очистка компьютера опцию.
— Нажмите на Найдите начать сканирование вредоносных программ.
2. Запретить перенаправления из настроек сайта
В Chrome предусмотрена настройка для остановки перенаправлений и всплывающих окон в браузере.
— Перейдите в настройки, нажав на значок из трех точек в правом верхнем углу Chrome.
— На странице настроек найдите ‘Конфиденциальность и Безопасностьзаголовок и щелкните Настройки сайтов
— Двигайся вниз и ищи Всплывающие окна и перенаправления и щелкните по нему.
— Убедитесь, что Разрешить опция отключена, и Блокировать включен.
3. Очистить данные просмотра
Иногда, очистив данные браузера, вы можете избавиться от перенаправлений Chrome.
— Откройте браузер Chrome и нажмите Ctrl + H открыть страницу истории просмотра.
— На левой панели, нажмите на Очистить данные просмотра.
— Выберите временной диапазон в соответствии с тем, когда в вашем браузере начались перенаправления, и нажмите Очистить данные.
4. Сброс браузера Chrome
Вы можете попробовать сбросить настройки браузера, если вирус перенаправления нанес большой урон.
— Перейдите к заголовку «Сброс и очистка», выполнив шаги, описанные в первом методе.
— Под ним нажмите ‘Восстановление настроек по умолчанию«
— Появится предупреждающее сообщение с подробной информацией о том, что будет сброшено. Нажать на Сбросить настройки.
5. Удалите подозрительные веб-расширения
Некоторые веб-расширения имеют злонамеренные намерения. Они также могут быть причиной перенаправления на Chrome. Лучше удалить их навсегда.
— Нажмите на три точки в верхнем углу и наведите указатель мыши на другие инструменты и нажмите Расширения.
— Вы дойдете до страницы, где будут все ваши установленные расширения. Ищите подозрительные и навсегда удалите их из браузера.
Есть ли какой-нибудь аналог .htaccess в nginx?
Ещё один довольно частый вопрос. В этом веб-сервера такой возможности нет. Однако, подобное обычно и не требуется. Дело в том, что nginx, как правило, устанавливается в качестве фронденда, т. е. принимает и обрабатывает все запросы, которые либо выполняет сам, либо перенаправляет на бэкенд, роль которого может выполнять Apache, который можно дополнительно конфигурировать с помощью .htaccess.
Поддержка сайта
С удовольствием создаю годный контент. Буду очень признателен, если вы поддержите мои усилия:
днём интернета
шоколадкой для работы мозга
коробочкой ароматного чая для бодрости
продлением хостинга на +1 месяц
2 070
не в сети 4 месяца
Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы
RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ http://www.%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)\/$ http://www.%1/$1
Альтернативные способы указания перенаправлений
HTTP перенаправления это не единственный способ переадресации. Есть ещё два метода: HTML перенаправления используют элемент , и JavaScript перенаправления используют DOM.
HTTP перенаправления более предпочтительный способ создания перенаправлений, но, иногда, у веб-разработчиков нету контроля над сервером или возможности настроить его. Для таких особых случаев, разработчики могут создать HTML страницу с элементом и установить атрибуту значение в блоке . Когда страница отображается, браузер найдёт этот элемент и перейдёт на указанную страницу.
Атрибут начинается с числа, которое означает, сколько секунд браузер должен ждать, прежде чем перейти по данной ссылке. Всегда устанавливайте 0, для лучшей доступности.
Очевидно, этот метод работает только с HTML страницами и не может использоваться для изображений или другого типа контента.
Заметьте, что перенаправления не позволяют работать должным образом кнопке «Назад» в браузере: вы можете вернуться на страницу назад, но мгновенно будете перенаправлены на страницу с которой пришли.
Перенаправления в JavaScript создаются установкой значения свойства и новая страница загрузиться.
Как и HTML перенаправления, этот тип не будет работать на всех ресурсах, и очевидно, что работает только на стороне клиента, который выполнит JavaScript. С другой стороны, вы можете вызвать перенаправление, только тогда, когда исполнится определённое условие.
При использовании трёх возможных способов URL перенаправления, некоторые методы могут быть вызваны одновременно, но какой из них будет примёнён первым? Порядок приоритетов следующий:
- HTTP перенаправления всегда выполняются первыми, пока ещё страница даже не была передана, и конечно же, пока ещё не прочитана.
- HTML перенаправления () выполняются только, если перенаправление не было в выполнено в HTTP.
- JavaScript перенаправления используются как последняя возможность перенаправления, и работают только если разрешено выполнение JavaScript на клиентской стороне.
Используйте HTTP перенаправления, когда это возможно, и не используйте элемент . Если разработчик изменяет HTTP перенаправление и забывает изменить HTML перенаправление , тогда они больше не идентичны, и закончится это вечным циклом или другим ночным кошмаром.
Что такое переадресация 301
Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.
Настроить код состояния HTTP 301 можно разными способами:
-
с помощью HTML и PHP;
-
через панель управления или плагины соответствующей CMS;
-
при помощи специальных скриптов (программ);
-
на уровне хостинг-провайдера;
-
внесением соответствующих записей в файлы .htaccess для сервера Apache или web.config для IIS.
Последний способ является наиболее простым и надежным. О нем чуть позже поговорим подробнее.
Где настраиваются редиректы
Настроить редирект можно несколькими способами.
Если ваш сайт работает на WordPress, проще всего использовать специальные плагины, например Redirection. Некоторые SEO-плагины в WordPress даже будут сами предлагать вам установить перенаправления, если вы удалите какую-либо страницу.
Настроить редирект можно также напрямую на сервере — так перенаправление будет происходить быстрее, чем в случае использования плагинов. Для этого нужно отредактировать файл .htaccess (если ваш сайт работает на веб-сервере Apache) или файлы конфигурации виртуальных доменов (если у вас сайт на сервере NGINX).
LightTPD перенаправления
Для серверов, которые работают под управлением веб-сервера Lighttpd, можно сделать перенаправление, импортируя mod_redirect модуль и используя url.redirect:
server.modules = (
“mod_redirect”
)
$HTTP=~”^(www\.)?old-website.com$”{
url.redirect = (
“^/(.*)$” => “http://www.new-website.com/$1”,
)
}
PHP перенаправления
В PHP можно использовать функцию header:
header(‘Location: http://new-website.com’);
exit;
?>
Это должно быть установлено перед любой разметкой и контентом другого рода, однако есть одна небольшая сложность. Функция по умолчанию отправляет ответ 302, сообщая о том, что контент был временно перемещен. В нашем случае нужно постоянно перемещать файлы на новый сайт, так что стоит заменить перенаправление 302 на 301:
header(‘Location: http://www.new-website.com/’, true, 301);
exit();
?>
Параметр true заменит ранее установленный header и 301 изменяет код ответа на правильный.
Что делать, если обнаружили скрытый редирект на сайте
Действия по исправлению зависят от причины, по которой появилась скрытая переадресация.
Внимание! Перед тем как что-то делать с работающим сайтом, создайте резервную копию на хостинге и проверьте, работает ли она
Если сайт взломали злоумышленники
У вас должны быть резервные работающие копии, попробуйте восстановить сайт. Для проверки на вирусы обратитесь к хостеру, обычно хостинги предоставляют такую услугу. Проверка покажет, где вирусы и что нужно удалить.
Можно поискать код вручную, часто зловредные элементы прописывают в этих местах:
-
в .htaccess — обычно это выглядит как определение устройства по юзер-агенту и переадресация;
-
в index.php в корне сайта — обфусцированный код в конце файла, огромные строки кода легко заметить и удалить;
-
в .js-файлах — аналогично, код в конце файла.
Обязательно обновите пароли — от хостинга, FTP, панели администратора и базы данных.
Если виноваты скрипты виджетов
Редирект на чужой сайт может работать через сторонние скрипты, плагины, шаблоны CMS, темы, другие элементы. Виноваты могут быть как новые недавно установленные плагины, так и те, которые давно стоят, но уже устарели — их могли взломать.
Если вы сами ничего не устанавливали, посмотрите историю доступов к сайту. Возможно, другие администраторы или модераторы поставили какой-то зараженный скрипт по незнанию или даже чтобы вам навредить
Что делать:
-
Найдите какую-то из страниц, на которой срабатывает переадресация мобильного трафика, посмотрите код. Если на ней находятся чужие скрипты и элементы — удаляйте их по одному. Код перенаправления нужно искать в тегах script и iframe . Он может иметь вид
-
После каждого удаления заходите на страницу со смартфона или через эмулятор браузера, и проверяйте, остался ли редирект.
-
Как только вы найдете этот вредный элемент, удалите его с других страниц. Если заражен был какой-то важный плагин, проверьте актуальность версии. Напишите разработчику, возможно, он уже поправил уязвимость.
Обязательно обновите CMS и плагины до последней стабильной версии, удалите все, что вызывает подозрение и подберите лицензионные решения с официальных источников.
Если веб-мастер сотрудничает с некачественными партнерками
Еще одна причина — веб-мастер специально или неосознанно сотрудничает с фейковыми партнерскими системами. Обычно они притворяются простыми партнерками с баннерной рекламой.
Часто такие партнерки рекламируются в Яндекс.Директе и Google Ads или присылают предложения сотрудничества на почту, представляясь маркетинговыми агентствами и обещая подозрительно высокий доход. Прекращайте работу с такими партнерками и отказывайтесь от подозрительных предложений.
Перенаправления Apache
Возможно, самый удобный способ перенаправления – добавление определенных правил в файл `.htaccess` на веб-сервере Apache.
`.htaccess` – документ, дающий нам возможность отдавать команды Apache, программному обеспечению, работающему на сервере. Чтобы перенаправить пользователей, нужно создать новый (или отредактировать существующий) файл .htaccess и добавить его в корневой каталог старого сайта. Мы будем добавлять данное правило:
Redirect 301 / http://www.new-website.com
Любая страница, открытая на старом сайте, перенаправляется на новую. Как Вы видите, мы ставим код ответа прямо перед правилом переадресации.
Этот вид переадресации работает только на серверах Linux с включенным mod_rewrite, модулем Apache, позволяющим нам перенаправить запрашиваемые URL-адреса на сервере, если определенный образец найден, он будет изменять запрос некоторым способом. Большинство хостинг-компаний поддерживают это по умолчанию.
Вернемся к нашему примеру, если использовать код, приведенный выше, то пользователь перейдет к «old-website.com/blog/post» и будет перенаправлен по адресу «new-website.com». Неудобно то, что пользователи не видят реальную запрашиваемую страницу. Поэтому добавим следующее правило для нашего `.htaccess` файла, чтобы перенаправить все сообщения блога на нужную страницу:
RedirectMatch 301 /blog(.*) http://www.new-website.com$1
Если необходимо перенаправить отдельные страницы по определенному адресу, можно добавить правила, например, так:
Видео курсы по схожей тематике:
UX/UI Design Стартовый
Артур Рыгус
UX/UI Design мобильных приложений
Владислав Шевченко
Создаем игру типа “Pokémon Go“
Роман Самчук
По ошибке пользователи могут быть перенаправлены на страницу 404:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* 404.html
</IfModule>
Сначала нужно проверить, доступен ли модуль mod_rewrite и включить его. В случае, когда файл или каталог не найден, пользователь попадет на нашу страницу 404. Он увидит содержимое страницы 404.html файла в то время, как запрашиваемый URL останется тем же.
Перенаправления Nginx
Для серверов, работающих на Nginx, в `nginx.conf` файл нужно добавить блок для обработки перенаправления запросов:
server {
listen 80;
server_name old-website.com;
return 301 $scheme://new-website.com$request_url;
}
Принцип работы
В HTTP, перенаправление вызывается при отправке сервером специального ответа на запрос: redirects. HTTP перенаправление, это ответы с кодом статуса. Когда браузер получает ответ перенаправления, он использует новый предоставленный URL-адрес и немедленно загружает его: в большинстве случаев переадресация невидима для пользователя, за исключением небольшого влияния производительность.
Есть несколько типов перенаправлений и делятся на три категории: постоянные, временные и специальные перенаправления.
Эти перенаправления призваны длиться вечно. Они подразумевают, что оригинальный URL-адрес больше не должен использоваться, а вместо него должен быть использован новый. Поисковые роботы запускают обновление связанного URL-адреса для ресурса в своих индексах.
Код | Текст | Обработка метода | Случаи использования |
---|---|---|---|
методы неизменны. Другие методы могут быть превращены в . |
Реорганизация веб-сайта. | ||
Метод и тело запроса неизменны. | Реорганизация веб-сайта, с не-GET ссылками/операциями. |
Спецификация не была намерена разрешать изменение метода, но на практике, клиентские приложения делают это. Код был создан чтобы избавиться от неоднозначности в поведении, при использовании не- методов.
Иногда, доступ к запрашиваемому ресурсу не может быть предоставлен из определённого места, но может быть предоставлен из другого. В этом случае, могут быть использованы временные перенаправления. Поисковые роботы не запоминают новую, временную ссылку. Временные перенаправления также используются, когда создаются, обновляются, или удаляются ресурсы, которые представляют временные страницы.
Код | Текст | Обработка метода | Случаи использования |
---|---|---|---|
методы неизменны. Другие методы могут быть превращены в . |
Веб-страница недоступна по непредвиденным причинам. В этом случае поисковые роботы не будут обновлять свои ссылки. | ||
методы неизменны. Другие превращены в (тело запроса теряется). |
Используется для перенаправления после или для предотвращения обновления страницы, что может спровоцировать повторный вызов операции. | ||
Метод и тело запроса неизменны. | Веб-страница недоступна по непредвиденным причинам. В этом случае поисковые роботы не будут обновлять свои ссылки. Лучше чем код когда не-GET ссылки/операции доступны на сайте. |
Спецификация не была намерена разрешать изменение метода, но на практике, клиентские приложения делают это. Код был создан чтобы избавиться от неоднозначности в поведении, при использовании не- методов.
В добавок к обычным перенаправлениям, есть 2 специальные. Перенаправление с кодом (Not Modified) перенаправляет страницу к локальной закешированной копии (которая была устаревшей), и перенаправление с кодом (Multiple Choice) это ручное перенаправление: тело, представленное браузером, как веб-страница, перечисляет возможные перенаправления и пользователь выбирает одно из них.
Код | Текст | Случаи использования |
---|---|---|
Не так много: варианты перечислены на HTML странице. Может быть обслужен со статусом . | ||
Обновление кеша: означает, что значение кеша все ещё актуально и может быть использовано. |
Зачем настраивать редирект
Есть несколько основных причин перенаправлять пользователя на другой URL. Давайте рассмотрим их подробнее.
Для указания главной версии сайта
Возможно, вы замечали, что адрес одних сайтов начинается с https, а других — с http. Также иногда в адресе указан префикс www, а иногда его нет. Выбор протокола и решение использования www перед основным доменом определяют главное зеркало ресурса. Это основная версия сайта, на которую перенаправляют всех пользователей, если они вводят в строку поиска альтернативный вариант URL-адреса.
В этом случае редирект необходим для избежания проблем с дублями контента. Что такое дубли страниц и почему это плохо, можно почитать в нашей статье.
Для решения проблемы дублей
Дубли страниц возникают не только из-за разных протоколов и префикса www в URL-адресе, но и по ряду других технических причин. Также иногда дублируется сам контент — страницы-копии обычно удаляют, а с них настраивают редирект.
Давайте рассмотрим еще несколько сценариев, когда для устранения технических дублей используют переадресацию.
Перенаправление при добавлении завершающего слеша
Когда вы вбиваете адрес страницы в строку поиска, то скорее всего не добавляете слеш в конце. Иногда браузер сам «дописывает» его к URL-адресу — происходит это благодаря редиректу. Как и в случае с протоколом и www, вебмастеру нужно определиться, будут ли на сайте использоваться завершающие слеши, чтобы избежать проблем с дублями.
Ниже мы адаптировали схему, которой аналитик Google Джон Мюллер поделился в своем аккаунте Twitter.
Как вы видите, иногда завершающие слеши приводят к дублированию, а иногда нет. Например, в варианте F и G можно легко получить дублированный контент.
Решить проблему можно двумя способами: использовать тег canonical либо установить перенаправление на нужный вам вариант страницы.
Перенаправление при использовании расширения файлов в URL
Иногда в конце адреса страницы указывается расширение файла, например, .html, .htm, .php, .aspx. Чтобы пользователь, вбивая в строку поиска URL вида https://site.com/page/, все равно попал на страницу https://site.com/page.html и чтобы избежать дублирования контента, используется перенаправление.
Перенаправление URL-адреса в нижний регистр
Один и тот же URL-адрес, прописанный в верхнем и нижнем регистре, — это две разные страницы. Правило хорошего тона — использовать в URL нижний регистр. Поэтому чтобы адрес вида https://site.com/PAGE/ был доступен только как https://site.com/page/, также применяется перенаправление. Естественно, редирект здесь нужен и для того, чтобы предотвратить проблемы с дублями.
Для сохранения ссылочного веса и трафика при смене URL
URL-адрес страницы может поменяться по разным причинам: после миграции на новую CMS, в ходе изменения структуры сайта или в процессе борьбы с дублированным контентом. В результате вы получите страницу с новым адресом, которая отвечает на тот же запрос пользователя, что и старая страница. Редирект позволяет не только перенаправить трафик на актуальную страницу, но и сохранить вес внешних ссылок, указывающих на старый адрес.
Например, вы использовали страницу https://site.com/festivals-2020/, но в конце года решили обновлять контент страницы и публиковать на ней все фестивали следующего года. Чтобы убрать из URL-а прошлый год, вы решаете создать новую страницу https://site.com/festivals/. Эта страница будет постоянно обновляться и содержать контент, который ранее публиковался на странице https://site.com/festivals-2020/. Чтобы избежать каннибализации, вы принимаете решение удалить старую страницу https://site.com/festivals-2020/ и перенаправить трафик и ссылочный вес на новую страницу https://site.com/festivals/.
При миграции на другой домен либо покупке другого сайта зачастую нужно перенаправлять ботов и всех пользователей старого сайта на новый. В таком случае, как вы уже догадались, также используется редирект.