Во время работы с сайтом бывают моменты, когда url-адрес необходимо изменить, удалить или перенести на другой домен.
В этом случае трафик должен быть перенаправлен на новый адрес, а индексация сохраниться для поисковых систем. Для этого используется функция 301 редиректа. Он является постоянным и говорит поисковикам о том, что эта страница перемещена
на новый адрес на совсем. С помощью данной переадресации:
- Сайт будет работать корректно.
- Не будет ошибок при открытии отдельных страниц.
- Пользователи не будут покидать страницу.
При правильных настройках сохраняется поток органического трафика на релевантные страницы.
В этой статье мы подробно рассмотрим, как настроить 301 редирект.
301 редирект и его альтернативы
Перенаправление с помощью 301 редиректа используется в следующих случаях:
- При склейке зеркал сайтов. Нужно выбрать главный домен и настроить редирект на него.
- Для более быстрого перехода с мобильных устройств на адаптивную версию.
- Для избежания 404 ошибки. Удаленная или несуществующая страница негативно воспринимается пользователями и поисковиками.
- При переносе сайта и смене доменного имени.
- При работах над SEO-продвижением ресурса. Например, если нужно сменить url страниц.
- При переносе разделов на субдомены.
- Для исключения дублирующих страниц.
Кроме 301 редиректа можно использовать и другие способы переноса:
- Редирект rel=canonical. Посетители смогут смотреть повторяющиеся страницы, но для поисковиков они будут закрыты от индексации.
- Meta Refresh. Перенаправление происходит не на сервере, а на сайте. Это приводит к медленной загрузке разделов, из-за чего посещаемость сайта может упасть. Поэтому, без крайней необходимости не стоит прибегать к этому методу.
- 302 редирект. Можно использовать для временной переадресации на другой адрес. Обычно это срок от 1 до 10 дней. Значение 302 редиректа чаще всего подразумевает , что запрашиваемая страница временно находится по другому URL адресу.
- 307 Temporary Redirect. Применяется при технических работах, когда сайт недоступен. Для роботов это реплика 302го редиректа, когда все свойства страницы сохраняются, но она временно не доступна и перенесена на другой адрес.
Все перечисленные способы только временно решат проблему, поэтому рекомендуется их использовать только в крайнем случае. Подробная инструкция, как настроить перенаправление и все команды и конструкции прописаны в разделах.
Настройка 301 редиректа в htaccess
Htaccess – это специальное расширение для файла web-сервера Apache. Он используется для настройки веб-сервера и обработки URL-адресов.
Настроить 301 редирект в htaccess можно с помощью специальных директив (команд):
- Redirect.
- RedirectMatch.
- RewriteRule.
Чтобы найти файлы, зайдите в панель управления хостинга или воспользуйтесь FTP-клиентом. При поиске включите отображение скрытых файлов, иначе htaccess не отразиться.
Итак, если вы не знаете, как настроить переадресацию домена на другой сайт, воспользуйтесь инструкцией:
- Зайдите в корневой каталог и проверите в нем наличие .htaccess файла. Если его нет, то создайте файл самостоятельно.
- Включите механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On.
- Используйте в правилах флаги. Например: [R=301,L].
После этого можно создавать перенаправления, исходя из целей. Например, настроить 301 редирект htaccess на другой домен. Существует множество вариантов и назначений данных функции.
Давайте рассмотрим несколько популярных настроек редиректа.
- Изменение домена. Если нужно не просто перенести ресурс, но и сохранить рейтинг, то придется настроить 301 редирект с домена на домен:
RewriteCond %{HTTP_HOST} ^www\.old_name\.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^old_name\.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
- Изменение страниц. Сделать 301 редирект htaccess на другую страницу можно двумя способами:
- перенаправление на всех страниц, кроме одной. Для этого пропишите постраничный редирект:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
- перенаправление одной страницы. Здесь можно использовать конструкцию:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
- Склейка зеркал (с www и без www). Иногда необходимо настроить настроить редирект с www на без www или наоборот. Это нужно, в первую очередь, для поисковых систем. Боты воспринимают зеркала как разные сайты. Они могут посчитать их
плагиатом и наложить бан. Чтобы этого не случилось, адреса объединяются. Тогда поисковики верно проанализируют полученные данные, проиндексируют нужные страницы и не посчитают информацию дублированной. Ниже показаны основные команды,
которые нужно прописать:
RewriteCond %{HTTP_HOST} ^v name\.site$ [NC]
RewriteRule ^(.*)$ http://www.name.site/$1 [R=301,L]
Таким образом, ссылочная популярность станет общей. Так как она больше не будет распределяться между двумя доменами, сайт сможет улучшить свои позиции и войти в ТОП выдачи поисковых систем.
Для того, чтобы проверить, сработала ли команда, зайдите в сервис проверки и введите адрес сайта без WWW. Если все сделано верно, на экране
отобразится следующая информация:
#1 Server Response: http://example.ru
HTTP Status Code: HTTP/1.1 301 Moved Permanently
Date: Wed, 14 Mar 2007 22:49:28 GMT
Server: Apache/1.3.27 (Unix) PHP/4.4.1 FrontPage/5.0.2.2510 mod_ssl/2.8.14 OpenSSL/0.9.6b
Location: http://www.example.ru/
Connection: close
Content-Type: text/html; charset=iso-8859-1
Redirect Target: http://www.example.ru/
#2 Server Response: http://www.example.ru/
HTTP Status Code: HTTP/1.1 200 OK
Date: Wed, 14 Mar 2007 22:49:28 GMT
Server: Apache/1.3.27 (Unix) PHP/4.4.1 FrontPage/5.0.2.2510 mod_ssl/2.8.14 OpenSSL/0.9.6b
Connection: close
Content-Type: text/html
- настройка 301 редиректа с www
RewriteCond %{HTTP_HOST} ^www.name\.site$ [NC]
RewriteRule ^(.*)$ http://name.site/$1 [R=301,L]
- С http на https для всего сайта. Если вы переходите на работу с защищенным протоколом, не забудьте сделать переадресацию. Для этого в файл добавляется конструкция:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Она не всегда срабатывает, поэтому можно использовать альтернативные варианты:
RewriteCond %{HTTPS} =on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Либо:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
- С https на http. Бывают обратные ситуации, когда разработчики уходят от защиты протокола. В этом случае нужно прописать:
RewriteCond %{HTTP_HOST} ^www\.old_name\.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^old_name\.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
- Перенаправление на страницу с другим адресом. Чтобы не потерять вес страниц, добавьте:
RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L]
- С index.php на главную страницу:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://name.site/ [R=301,L]
- Со слешем на без слеша:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
Либо:
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteRule ^(.*)\/$ /$1 [R=301,L]
- Без слеша на слеш:
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]
- С несуществующей или удаленной страницы (404 ошибка). Сделать постоянную переадресацию особенно важно интернет-магазинам, поскольку ассортимент товаров постоянно обновляется. Команда:
ErrorDocument 404 http://www.site.com/301.html
Как мы видим, настроить редирект в htaccess не очень сложно, главное понимать цель переадресации, выбрать верную конструкцию и действовать по шаблону.
Настройка 301 редиректа для разных CMS
Преимущественное отличие перенаправлений на движках в том, что не обязательно использовать встроенные инструменты.
Например, у WordPress это плагины. Для их добавления выполните следующие действия:
- зайдите в административную панель;
- откройте раздел “плагины” и нажмите кнопку “добавить новый”;
- в строке поиска введите название;
- нажмите установить и активировать;
- после активации в разделе редиректы в блоке “добавить новое перенаправление” в поле исходный url пропишите относительный адрес (без домена). Там, где целевой адрес, введите полную ссылку, если вы хотите сделать 301 редирект на
другой сайт, либо относительную - в рамках того же ресурса.
- добавьте перенаправление.
- Redirection. Самый распространенный плагин на Wordpress. С его помощью можно отследить 404 ошибку и собрать статистику.
- Quick Page/Post Redirect Plugin.
- Simple 301 Redirects. Адрес для переадресации необходимо вводить вручную.
Настройка 301 редиректа в WordPress происходит по общим правилам. Если брать другие cms, например Opencart, то здесь все намного сложнее. Стандартное правило одной строки даст только несуществующую страницу. В конце адреса
прикрепляется хвост из-за строки RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]. Это может ввести в заблуждение, так как часть строки никак не убрать.
Поэтому, настройка 301 редиректа в Opencart происходит следующими способами:
- Правка оригинального кода.
- Три строки кода на каждое условие переадресации.
Это неудобно, поэтому разработчики создали специальный модуль, который можно скачать по ссылке.
Его преимущества:
- Быстрая установка.
- Совместимость со всеми версиями.
- Нет необходимости в перезаписи и правке файлов.
- Условия прописываются в административной панели.
После установки нужно перейти в настройки магазина. В первой вкладке появится поле ввода условий в формате.
old-url==new-url
old2==new2
...
Новый редирект пишется с новой строки и разделяется двойным символом равно
«==»
Если рассматривать систему битрикс и как в ней настроить редирект, то можно использовать общее правило:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC]
RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L]
У движка также есть свои модули. Например, редирект мастер. Его можно установить в демо режиме и получить перечень несуществующих на сайте страниц. Инструмент фиксирует все ошибки и предлагает переадресацию, чтобы пользователи смогли
найти нужную информацию, а поисковые боты не снижали позиции веб-ресурса.
Настройка 301 редиректа в Тильде происходит через административную панель. Для этого нужно зайти в “Настройки сайта” - “SEO” - “Редиректы страниц”. Здесь можно выбрать нужную строчку и нажать кнопку “сохранить”. Удобство заключается в
том, что не нужно прописывать все вручную. Команды добавляются автоматически, в зависимости от выбранной функции. Поэтому здесь от вас требуется только верно определить, какая именно переадресация нужна.
Как проверить, правильно ли настроен 301 редирект
Есть несколько способов проверить 301 редирект:
- Ручной метод. Вставьте в адресную строку любого браузера адрес, с которого настроено перенаправление. Если откроется ресурс, на который поставлен редирект - все сделано правильно.
- Автоматический метод. Используются специальные сервисы:
- Screaming Frog. Сканируется весь сайт на наличие ошибок.
- Redirect Checker. Тест отдельных страниц.
Самые распространенные ошибки, при которых переадресация не сработает:
- неправильно выбранный редирект;
- использование перенаправлений между страницами сайта без изменения их url в ссылках;
- установка временной переадресации вместо постоянной;
- перенаправление файла robots.txt;
- переадресация на нерелевантный контент;
- перенаправление, которое не приводит к 200-й коду ответа сервера.
Чтобы сайт работал корректно, правильно отражался в поисковой системе и был верно проиндексирован поисковыми ботами - следите за актуальностью страниц. Настройка 301 редиректа поможет перенести сайт на другой домен, изменит адреса
ссылок и склеит зеркала. Есть много способов прописать необходимые команды. Выбирать нужно исходя из навыков в программировании и знаний особенностей движка, на котором вы работаете.
Автор: Наталья Гилёва-Живых