- Как настроить 301-й редирект
- Настройка 301 редиректа в .htaccess
- Редирект с одного домена на другой
- Постраничные редиректы
- Склейка зеркал сайта
- Борьба с дублями на сайте
- Настройка 301 редиректа в web.config
- Альтернативные способы настройки переадресации
- Как настроить редирект, если нет опыта веб-программирования
- Популярные плагины для WordPress
- Подводим итоги
- Как сделать редирект. Все виды.
Как настроить 301-й редирект
С 301-м редиректом (переадресацией) вы обязательно столкнетесь при склейке зеркал сайта с префиксом WWW и без него, в случае переезда сайта на новый домен, с HTTP на HTTPS, переноса страницы в другой раздел сайта и изменения ее адреса. Во всех этих случаях важно сохранить позиции и трафик, перенаправляя его на новые страницы. Как это сделать? Читайте нашу инструкцию.
Код состояния HTTP 301 (Moved Permanently или 301 редирект) — это стандартный код ответа сервера, который сообщает, что запрашиваемый ресурс перемещен и получил новый URL.
Для SEO 301 редирект важен, поскольку он позволяет исключить из поисковой выдачи старый URL и заменить его новым без потери страницей веса и, соответственно, ухудшения ее позиций.
Настроить 301-й редирект можно разными способами:
- с помощью HTML и PHP;
- средствами специальных плагинов для CMS,
- при помощи скриптов;
- с помощью файлов .htaccess для сервера Apache или web.config — для IIS.
Последний вариант — самый надежный и простой, поэтому о нем и расскажем подробнее.
Настройка 301 редиректа в .htaccess
.htaccess — это файл дополнительной конфигурации веб-сервера Apache, с помощью которого можно задавать настройки на уровне отдельных каталогов. В отличие от главного файла конфигурации httpd.conf, директивы в .htaccess распространяются только на тот каталог, где он размещен, и на дочерние каталоги.
Если в корневой папке вашего сайта нет файла .htaccess, его нужно создать и загрузить с помощью FTP-клиента. Теперь можно приступать к настройке редиректов.
Подробнее о возможностях файла .htaccess — в этой статье.
Редирект с одного домена на другой
Когда вам требуется сделать редирект с текущего домена на другой (например, при переезде сайта), можно использовать директивы модуля mod_alias. Пропишите в .htaccess следующую директиву (вместо newsite.ru укажите ваш новый домен):
Redirect permanent / https://newsite.ru/
Redirect 301 / https://newsite.ru/
301 редирект — не единственный возможный. Есть 302, 307 и другие редиректы. О том, в каких ситуациях их использовать и в чем их польза для SEO, рассказано в этой статье.
Постраничные редиректы
Приведем еще примеры настройки переадресации 301.
Редирект со страницы page1.html на страницу page2.html:
Redirect 301 /page1.html https://site.ru/page2.html
Редирект с главной страницы сайта на страницу каталога /cat:
Redirect 301 / https://site.ru/cat
Редирект с каталога /cat на главную:
Redirect 301 /cat https://site.ru
Склейка зеркал сайта
Редирект часто используют для склеивания зеркал сайта — так называются варианты сайта с одинаковым контентом, доступные по разным адресам. Например, site.com и www.site.com. Поисковики не любят зеркала и считают их дублями, поэтому рекомендуется выбрать один основной адрес (главное зеркало), а с остальных настроить переадресацию на него.
Для склейки зеркал применяется модуль mod_rewrite.
Например, если вы хотите, чтобы шел редирект с домена с www на домен без www, то пропишите такие строки (где yoursite.ru — ваш домен):
RewriteEngine On RewriteCond % ^www.yoursite.ru$ [NC] RewriteRule ^(.*)$ http://yoursite.ru/$1 [R=301,L]
И наоборот — редирект с домена без www на домен с www:
RewriteEngine On RewriteCond % ^ yoursite.ru RewriteRule (.*) http://www.yoursite.ru/$1 [R=301,L]
Редирект всех страниц сайта при переезде с http на https:
RewriteEngine On RewriteCond % !^443$ RewriteRule .* https://%% [R=301,L]
Если не сработает, можно попробовать такой вариант:
RewriteEngine On RewriteCond % =off RewriteRule (.*) https://%% [QSA,L]
Борьба с дублями на сайте
Также 301 редирект используется в борьбе с дублями страниц. Приведем несколько примеров.
Для поисковых систем URL https://www.yoursite.ru/ и https://www.yoursite.ru являются разными. Поэтому надо решить, какой тип использовать: со слешем в конце или без него.
Для того чтобы убрать слеш в конце URL, пропишите в файле .htaccess правило:
RewriteEngine On RewriteCond % (.*) RewriteCond % /$ [NC] RewriteRule ^(.*)(/)$ $1 [L,R=301]
Добавить слеш можно таким образом:
RewriteEngine On RewriteCond % !-f RewriteCond % !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301]
Для того чтобы заменить все .htm файлы .html файлами, пропишите следующие строки:
RewriteEngine on RewriteBase / RewriteRule ^(.*)\.htm$ $1.html [R=permanent]
Если вы прописываете несколько директив, то строка «RewriteEngine on» указывается один раз — с ее помощью включается модуль mod_rewrite.
Если вы создаете файл .htaccess с нуля, то все команды указываются внутри таких строк:
Например, так будет выглядеть файл .htaccess с двумя редиректами: с www на без www и со страниц без слеша на страницы со слешем в конце:
Это лишь несколько примеров дублирования страниц. Вот подробная инструкция по поиску и устранению дублей на сайте — в том числе с помощью 301 редиректа.
Настройка 301 редиректа в web.config
Вариант редиректа с помощью .htaccess работает только для Apache. Для веб-сервера IIS настраивать переадресацию нужно в файле web.config. Это XML-файл, в котором хранятся основные настройки сервера IIS. Его роль аналогична роли файла .htaccess для сервера Apache.
Чтобы настроить 301-й редирект с одной страницы (yoursite.ru/page.html) на другую (yoursite.ru/page2.html), нужно прописать в файле web.config следующий фрагмент кода:
301-й редирект с домена с www на домен без www настроить можно таким образом:
" pattern="^www\.(.+)$" /> /" redirectType="Permanent" />
Альтернативные способы настройки переадресации
Если по какой-то причине вы не можете создавать и редактировать web.config или .htaccess (например, в силу ограничений на хостинге) или вам нужна определенная обработка полученных данных, их модификация или проверка, по результатам которой реализуется перенаправление, вы можете настроить редирект с помощью PHP.
Синтаксис следующий:
В этом случае происходит принудительная передача кода HTTP-ответа 301, и пользователь перенаправляется на страницу https://newsite.ru/.
Если у вас небольшой сайт с парой страниц, то редирект можно сделать с помощью HTML:
Изменяя цифру 0, вы задаете количество секунд до переадресации. В этом случае редирект реализуется не на стороне сервера, а на стороне клиента (не передается заголовок 301).
Также редирект можно сделать с помощью JavaScript:
В этом случае также не передается заголовок 301. И если у пользователя в браузере отключена поддержка JavaScript, то редирект не сработает.
Вариантов редиректов бесчисленное множество. Упростить работу можно с помощью генераторов редиректов. Это онлайн-сервисы, которые выдают готовые коды, — вам нужно лишь указать, откуда и куда перенаправить пользователя. Вот некоторые из этих сервисов: www.webconfs.com, www.rapidtables.com, www.htaccessredirect.net.
Как настроить редирект, если нет опыта веб-программирования
Настройка редиректа — сложная техническая задача, для выполнения которой не обойтись без профильных знаний. Если вы не владеете навыками разработки и программирования, и у вас под рукой нет штатного программиста, можно воспользоваться поддержкой хостинг-провайдеров. Многие из них предлагают услугу web-форвардинга (или «переадресация домена», «URL-форвардинг» и т. п.). Она позволяет настроить переадресацию с одного URL на другой. При этом используется 301 редирект.
Еще один вариант — настройка редиректов с помощью встроенных инструментов CMS или конструкторов сайтов (такие есть, например, в Joomla!, Wix и Тильде) или специальных плагинов.
Популярные плагины для WordPress
Настроить редиректы для сайта на WordPress можно с помощью таких плагинов:
- Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбор статистики переадресаций, отслеживание ошибок 404, поддержка регулярных выражений.
- Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения и не несет серьезной угрозы для производительности сайта.
- 301 Redirects — помогает создавать 301, 302, 307 редиректы. Есть журнал для выявления ошибок 404 — удобно, чтобы понять, какие страницы нуждаются в перенаправлении.
Не уверены, что сможете правильно настроить редиректы своими руками? Лучше не рисковать — в модуле SEO системы PromoPult за вас все сделают профессиональные вебмастера. Все работы выполняются по чек-листу и в срок. Есть возможность рассрочки платежа.
Подводим итоги
Лучший способ настроить 301 редирект — с помощью .htaccess. Но он подходит только для веб-серверов Apache. Для IIS придется настраивать web.config. Если же нужно не просто сделать редирект, а учесть определенные условия, то используйте PHP, но в этом случае без помощи программиста не обойтись.
Есть и другие способы (в частности, с помощью HTML и JavaScript), но это не 301 редирект, а просто перенаправление без передачи веса, что бесполезно с точки зрения SEO.
Также можно использовать плагины для популярных CMS или подключить услугу web-форвардинга, если ее оказывает ваш хостинг-провайдер.
Стоит понимать, что не всегда есть смысл использовать 301-й редирект. В некоторых случаях лучше подойдет, например, атрибут rel=»canonical».
Какой бы вариант вы ни выбрали, главное, чтобы он правильно работал. Проверить корректность редиректов на вашем сайте и поставить задачи на внедрение переадресации можно в рамках модуля PromoPult «Поисковое продвижение».
Как сделать редирект. Все виды.
Есть несколько типов редиректов, рассмотрите каждый из них в кратце, чтобы определить какой из них вам больше подходит.
Редирект через htaccess — самый популярный, и довольно простой способ. Чтобы его сделать, вам понадобится создать в папке сайта файл с названием .htaccess (обратите внимание, что название файла начинается с точки, это не опечатка). Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его.
Читайте ниже чтобы узнать какие именно инструкции в нем нужно прописать, чтобы создать перенаправление.
Редирект при помощи PHP — подойдет в том случае, если вы разбираетесь в PHP и знаете структуру своего сайта. Этот вариант подойдет вам, если ваш сайт написан не на CMS. В ином случае лучше используйте редирект через htaccess.
Редирект HTML — если у вас простой HTML сайт и вам нужно сделать перенаправление для одной страницы — это самый простой вариант. Сделать перенаправление для всего сайта этим способом будет трудозатратно, особенно если у вас на сайте больше 10 страниц.
Редирект при помощи JavaScript — этот способ подойдет также в том случае, если у вас простой сайт, либо если нужно сделать редирект для одной — двух страниц, либо для всего сайта в целом.
Инструкции, которые вы увидите ниже, нужно прописать в файл .htaccess в самое начало.
- Редирект всего сайта (всех страниц) на другой сайт
RewriteEngine on
RewriteCond % ^www.example\.ru [NC]
RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L]
Пропишите эту строку в .htaccess файле, и тогда все посетители вошедшие на сайт по протоколу HTTP будут перенаправляться на защищенный протокол HTTPS.
Если вы прописываете редирект для WordPress, то обратите внимание на то, что в файле уже есть строка RewriteEngine On. Поэтому сразу под ней вам нужно добавить такие строки
В PHP редирект делается так: сервер отправляет заголовки headers браузеру посетителя, и тот переходит по нужному адресу автоматически.
Стоит отметить важный момент, отправлять заголовки можно только до вывода другой информации. То есть они должны отправляться до вывода любой другой информации через echo и до отправки кук.
- Редирект на другой сайт
if( $_SERVER[‘REQUEST_URI’] === ‘blog/post-1.html’ ) header(» Location: http://example.com/page.html «);
>
?>?>
Чтобы сделать редирект через HTML, нужно добавить на каждую страницу где он планируется специальный мета тег. Мета тег прописывается внутри тега .
На больших сайтах этот метод не удобен, и рекомендуется использовать редирект через htaccess.
- Редирект на другой сайт
Этот вид перенаправления удобен тем, что его код можно прописать в одном файле (в отличие от html метода), и этот файл вставить на каждой странице прописав
- Редирект на другой сайт