Содержание
Если вы хотите изменить URL-адрес страницы, отображаемый в результатах поиска, рекомендуется использовать переадресацию 301 (301 Permanent Redirect), выполняемую сервером. Это самый лучший способ обеспечить переход пользователей и поисковых систем на нужную страницу.
Код статуса 301 означает, что запрашиваемая страница окончательно перемещена в новое местоположение.
На самом деле существует несколько редиректов. О том как сделать 301 редирект можно посмотреть на инфографике.
В каких случаях использовать редирект 301?
Использовать переадресацию 301 особенно удобно в следующих случаях:
- При смене домена. Вы переместили свой сайт в другой домен и хотите, чтобы казалось, будто перехода и вовсе не было.
- Для передачи новому домену Page Rank и тИЦ.
- Для сохранения поискового трафика.
- Пользователи могут получить доступ к сайту, используя несколько различных URL-адресов. Например, попасть на страницу можно несколькими способами: //site.ru/sub, //sub.site.ru или //www.site.ru. Бывает удобно выбрать один из этих URL-адресов в качестве канонического (основного) и использовать переадресацию 301 для перенаправления на него трафика с других URL. Для настройки основного домена можно использовать «Инструменты для веб-мастеров».
- При объединении двух сайтов требуется, чтобы все ссылки на устаревшие страницы указывали на страницы, действующие в данный момент.
- При переносе страницы сайта в новое место.
- Для склейки имени сайта с префиксом www и без него.
Пример использования 301 редиректа
Задача: удалить поддомен.
Как это сделать корректно? Ведь его страницы наверняка уже проиндексированы и есть обратные сслыки.
Самый простой способ — поставить редирект 301. Чтобы сделать переадресацию 301 для сайтов, размещенных на серверах Apache, необходимо внести изменения в файл сервера .htaccess
. Для этого, нужно создать текстовый файл .htaccess и написать в нем такую строку:
Redirect 301 / //www.newsite.ru
где:
Redirect 301
— эта инструкция указывает, что сайт (страница) перемещен;
/
— означает, что всё с верхнего уровня сайта, включая все подкаталоги, будет переадресовано на новый домен.
Особенность:
- исходный адрес указывается без http: и домена
- файл .htaccess должен быть с точкой в начале
Redirect 301 /old-url/ //ohersite.ru/new-url/
Если вы хотите изменить URL-адрес страницы, отображаемый в результатах поиска, рекомендуется использовать переадресацию 301, выполняемую сервером. Это самый лучший способ обеспечить переход пользователей и поисковых систем на нужную страницу. Код статуса 301 означает, что запрашиваемая страница окончательно перемещена в новое местоположение.
После прописывания инструкции, старый сайт будет осуществлять перенаправление на новый и не будет индексироваться до тех пор, пока при обращении к нему робот Яндекса не будет получать ответ HTTP 200. При такой конфигурации будет индексироваться только цель перенаправления — новый сайт.
Google расценивает 301 редирект всех страниц на главную как 404 ошибки. По сути, Google игнорирует эти редиректы, и они не передают PageRank.
Об этом рассказал Джон Мюллер в ходе видеовстречи с вебмастерами:
https://www.youtube.com/watch?v=RVrYfoXH-BM
Чтобы установить переадресацию 301 для сайтов, размещенных на серверах Apache, необходимо внести изменения в файл сервера .htaccess
. Дополнительные сведения можно найти в учебном пособии по файлам .htaccess
для Apache и руководстве по изменению URL-адресов для Apache.
301-ая ошибка (301 Permament Redirect), возвращаемая при обращении к определенному адресу страницы, означает, что сайт был на постоянной основе перенесен на новый адрес, также указанный в HTTP заголовке. Как пользователи, зашедшие через браузер, так и поисковые боты будут перенаправляться по новому адресу, при этом, для поисковиков все свойства старого адреса (страницы) будут переданы новому URL. При 301 редиректе произойдет склейка старого и нового адресов: параметры вроде PageRank и тИЦ, а также вес страницы и ссылочный вес старого адреса будет передан новому URL.
Редирект с номером ошибки 301 (moved permanently) это наилучший способ сохранить рейтинг сайта в поисковых системах при переносе его на новый домен или смене системы управления контентом. Переадресацию можно выполнить несколькими способами, в зависимости от установленного программного обеспечения.
301 редирект в .htaccess
При использовании сервера Apache, переадресацию можно просто выполнить с помощью файла .htaccess
, однако, при этом, не забыть включить модули mod_alias
(для поддержки директив Redirect
, RedirectPermanent
и RedirectMatch
) и/или mod_rewrite
(для использования реврайта) в php.ini
.
Для этого поместите в корне папке вашего сайта файл .htaccess.
Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias
Redirect 301 /old-page.html //new-domain.ru/new-page.html
или
Redirect permanent /old-page.html //new-domain.ru/new-page.html
Недостатком данного способа является то, что все адреса, которые необходимо перенаправить, нужно перечислять один за одним, каждый отдельно. Также можно использовать RedirectPermanent для аналогичных целей.
RedirectPermanent /old-url.html //new-site.ru/new-url.html
Редирект с помощью директивы RedirectMatch
Этот редирект подобен предыдущему, за исключением того, что можно задавать регулярное выражение для старых URL адресов. Допустим, при смене движка с PHP на ASP, можно старые адреса перенаправить следующим образом:
RedirectMatch /(.*).php$ /$1.aspx
Редирект с помощью директивы RewriteRule модуля mod_rewrite
Для использования директивы RewriteRule
необходимо удостовериться, что в httpd.conf
подключен модуль mod_rewrite
, а также влючена опция FollowSymLinks
. Использование реврайт модуля дает много возможностей для перенаправления страниц на новые адреса.
Перенаправление домена с www на не-www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^(.*)$ //%1/$1 [R=301,L]
или альтернативный, более понятный синтаксис
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC] RewriteRule ^(.*)$ //domain.com/$1 [R=301,L]
Редирект запросов с не-www на домен с www префиксом
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^domain.com$ [NC] RewriteRule ^(.*)$ //www.domain.com/$1 [R=301,L]
или же альтернативный вариант
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.(.*) [NC] RewriteRule ^(.*)$ //www.%1/$1 [R=301,L]
Как три домена средиректить на один через htaccess
RewriteCond %{HTTP_HOST} ^domain4.ru [OR] RewriteCond %{HTTP_HOST} ^www.domain4.ru [OR] RewriteCond %{HTTP_HOST} ^domain3.ru [OR] RewriteCond %{HTTP_HOST} ^www.domain3.ru [OR] RewriteCond %{HTTP_HOST} ^domain2.ru [OR] RewriteCond %{HTTP_HOST} ^www.domain2.ru [OR] RewriteCond %{HTTP_HOST} ^www.domain1.ru RewriteRule ^(.*)$ //domain1.ru/$1
Есть специальный сервис, который поможет сгенерировать код для редиректа: //www.webconfs.com/htaccess-redirect-generator.php
Редирект с помощью скрипта (отправки заголовков)
Редирект запросов можно осуществлять также с помощью скриптов, отправляя клиенту необходимые заголовки.
HTTP/1.1 301 Moved Permanently Location: //www.newdomain.ru/newdir/newpage.htm
PHP редирект
<?php header(“<span class="caps">HTTP</span>/1.1 301 Moved Permanently”); header(“Location: //www.newdomain.ru/newdir/newpage.htm”); exit(); ?>
Использованы материалы Переадресация 301 (Центр веб-мастеров Google)