Найти тему

Для чего нужен 301 редирект интернет-магазину и как его использовать

Оглавление

Про 301 редирект написано уже достаточно много, однако от подписчиков мне периодически приходят письма с разного рода вопросами, касающимися 301 редиректа, поэтому решил немного разжевать эту тему для новичков. Постараюсь рассказать о нем максимально простым языком, что и для чего нужно, зачем это вообще нужно интернет-магазину, как это использовать, ну и конечно приведу конкретные примеры, как сделать 301 редирект.

Говоря простым языком, редирект – это перенаправление. Например, когда пользователь приходит с поисковой системы на один URL адрес, а перенаправляется на другой. Это необходимо иногда делать, когда у вас на сайте меняется URL товара или URL раздела каталога, или вы вовсе решили сменить доменное имя. Чтобы пользователь в этом случае не попал на 404 ошибку (отсутствие страницы), а попал на новый URL.

Существует восемь разных редиректов с разными кодами – с 300 по 307, детально на них останавливаться не будем сейчас, чтобы не забивать голову. Скажу лишь, что самый массовый из них – это 301 редирект. Это тот редирект, который указывает поисковым системам, что страница была перемещена навсегда и теперь необходимо индексировать новый адрес, вместо старого.

Вот представьте такую ситуацию – вы решили переименовать раздел каталога, раньше он назывался «catalog-1», а теперь стал называться «catalog-2». По сути ничего не поменялось в каталоге, все тот же ассортимент остался, те же мета-теги, тот же заголовок и описание, поменялся только URL. Старый каталог был проиндексирован уже поисковыми системами и находился в поисковой выдаче. Если ничего больше не делать, то клиенты будут попадать на 404 страницу и часть из них будет уходить. Через некоторое время поисковик, поняв, что старый URL более не существует, исключит его из поисковой выдачи. Еще какое-то время понадобится чтобы найти новый URL каталога, но он не будет знать, что это переименованный старый и соответственно все будет по новой переиндексироваться и не факт, что в поисковой выдаче новый URL займет былые позиции. Как понимаете время на переиндексацию тоже может потребоваться не маленькое, особенно, если у вас молодой сайт и поисковые роботы к вам заглядывают не часто. Совсем другое дело, когда вы указали поисковику, что вы сменили один URL на другой – сделав 301 редирект. Тогда пользователь, перейдя по старой ссылке попадет на новую, а поисковик поймет, что надо старый URL в результатах выдачи, поменять на новый, что в ближайшее время он и сделает. Грубо говоря, вы сократите время пути на переиндексацию и не потеряете пользователей.

Также часто 301 редирект используют для того, чтобы сделать переадресацию с WWW на без WWW (или наоборот), с HTTP на защищенный HTTPS и пр., т.к. для поисковых систем сайт «www.site.ru» и просто «site.ru» — это по сути разные сайты. Аналогичная картина и для HTTP/HTTPS.

Переадресацию можно сделать несколькими способами, наверное, наиболее распространенные – это при помощи языка программирования (например, PHP) и при помощи файла .htaccess, который вы можете найти в корне вашего сайта. Последний является очень распространенным, т.к. позволяет сделать переадресацию не привлекая программистов. Мы сегодня рассмотрим несколько примеров как это сделать, однако, если вы делаете это впервые не лишним будет перестраховаться и сохранить исходник файла .htaccess, чтобы потом была возможность восстановиться. Ну и конечно же лучше это делать руками специалистов, которые в этом разбираются.

301 редирект при помощи плагина / модуля

Разработчики для некоторых CMS пишут разные модули/плагины, которые позволяют работать с переадресацией в удобном веб-интерфейсе в админке вашего сайта. Можно использовать их, это достаточно удобно и наименее безопасно для новичков. Для каких-то CMS они распространяются бесплатно, для каких-то платно, тут нужно смотреть уже на конкретную CMS.

-2

Также существуют подобные модули/плагины которые могут ряд переадресаций делать самостоятельно без участия пользователя. Например, когда вы переместили товар из одной категории в другую и у него поменялся путь (URL), или вы вовсе переименовали товар, или как писал выше переименовали категорию. В этом случае переадресация будет сделана автоматически абсолютно без вашего участия, и это достаточно удобно, скажу я вам. Грубо говоря – поставил и забыл.

301 редирект при помощи файла .htaccess

Это немного посложнее и вариант, однако разобраться в нем может быть полезно. Приведу несколько наиболее распространенных вариантов переадресации.

301 редирект с одного домена на другой

RewriteEngine On
RewriteCond %{HTTP_HOST} old-site.ru
RewriteRule (.*) http://new-site.ru/$1 [R=301,L]

Где «old-site.ru» — это адрес старого сайта (с которого происходит редирект), а «new-site.ru» — адрес нового (на который редиректим). Добавить строки в этот файл нужно на том хостинге, где находится ваш старый сайт.

Данный редирект может использоваться если меняется доменное имя сайта. Например, когда у вас сайт создавался под узкую нишу, но со временем на сайте сильно вырос ассортимент и название уже не очень подходит.

301 редирект с домена с WWW на домен без WWW

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L

Где «site.ru» – имя вашего домена.

Наиболее часто используемое правило, чтобы сделать основным сайт без WWW. Обратное правило, когда основным делается сайт с WWW используется значительно реже, однако упомянуть его тоже стоит, оно не сильно отличается от предыдущего.

301 редирект с домена без WWW на домен с WWW

RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

Где «site.ru» – имя вашего домена.

301 редирект с протокола HTTP на HTTPS

Этот редирект понадобится, если вы решите перевести сайт на защищенный протокол HTTPS. Тут у некоторых возникают сложности с переадресацией, когда правило не работает или работает не так как нужно, в плоть до ухода в циклическую переадресацию. Для разных хостингов и разных CMS могут подойти разные варианты.

Вариант первый:

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Если первый вариант не сработает, попробуйте второй вариант:

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Если и он не поможет и возникает циклическая переадресация, попробуйте третий вариант:

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

301 редирект с протокола HTTPS на HTTP

Ну и в обратку, когда нужно с защищенного HTTPS откатится на обычный HTTP, то использовать нужно следующий код:

RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Где «site.ru» – имя вашего домена.

Конечно, это далеко не весь перечень переадресаций, которые могут понадобится интернет-магазину, тут перечислены скорее глобальные. Переадресации с одного каталога на другой или со старого URL карточки товара на новый URL проще и удобнее делать через плагины/модули для вашей CMS в админке, чем постоянно изменять файл .htaccess. Как правило, там все просто – указали старый URL, указали новый, все остальное сделалось автоматически. В общем, если для вашей CMS есть подобные решения, даже если они стоят денег, не пожалейте их – это может сильно облегчить жизнь, все-таки 301 редирект вещь полезная, особенно, если он автоматический.

Магазин цифровых товаров и услуг