Настройка редиректа 301. При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect. Это один из инструментов SEO, который позволяет не только избежать ошибок при открытии отдельных страниц, но и добиться корректной работы ресурса. Правильные настройки редиректа дают дополнительную возможность получить синергетический эффект в поисковой оптимизации и увеличить количество органического трафика на релевантные страницы. Permanent Redirect 301 Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче. Настроить код состояния HTTP 301 можно разными способами: с помощью HTML и PHP; через панель управления или плагины соответствующей CMS; при помощи специальных скриптов (программ); на уровне хостинг-провайдера; внесением соответствующих записей в файлы .htaccess для сервера Apache или web.config для IIS. Альтернативные методы переадресации Редирект 302. Применяется в случае временной переадресации с одного url на другой. При его использовании поисковая система индексирует все доступные версии сайта или страницы. Объединения ссылочного веса и внутренних метрик на приоритетном ресурсе не происходит. 307 Temporary Redirect рекомендуется применять в исключительных случаях. Например, при техническом обслуживании сайта, когда он недоступен некоторое время. Обновления Meta Refresh выполняют переадресацию не на уровне сервера, а непосредственно на сайте. Пользователь сталкивается с временной задержкой (обычно около пяти секунд), после чего для перехода на нужную страницу должен принудительно запустить определенную команду. Этот метод часто приводит к падению посетительского интереса и проседанию поисковых индексов. Редирект rel=«canonical». Позволяет сохранить доступ посетителям ресурса к контенту дублирующихся страниц. При этом для поисковиков наличие команды canonical на одной из страниц говорит о том, что только она подлежит индексации в поиске. В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи. Не рекомендуется использовать постоянный редирект при временном переносе сайта или наличии серьезных проблем со старым доменным именем. Если адрес забанен или попал под поисковую фильтрацию, смена дислокации с применением переадресации не поможет избавиться от этих ограничений. В каких случаях используется постоянный редирект 301 Смена доменного имени, перенос сайта. Необходимо произвести тотальную настройку переадресации со старого адреса на новый, чтобы все без исключения запросы к old_site.ru перенаправлялись на new_site.ru. Изменение написания url определенных страниц в целях SEOпродвижения, смены CMS или по иным причинам. Требуется настроить редирект с site.ru/1hdkr5 на site.ru/page_adress. Перенос разделов на субдомены. Необходимо сменить адрес www.site.ru/example на example.site.ru. Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс. Исключение дублирующихся страниц из индекса. Склейка зеркал сайта – вариантов сайта с идентичным контентом, но разным написанием адресов: site.ru, www.site.ru, https://site1.ru и т.д. В этом случае выбирается один приоритетный домен и на него настраивается редирект со всех остальных зеркал. Удаление ранее существовавшей страницы. В этом случае пользователи обычно видят ошибку 404. Большое количество таких сообщений негативно воспринимается как пользователями, так и поисковиками. Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств. Создание постоянной переадресации 301 через настройки и плагины CMS В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Файл .htaccess в CMS OpenCart: RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$ RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L] Файл .htaccess в CMS Битрикс : RewriteEngine On RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC] RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L] WordPress плагины: Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений. Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта. Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow». Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную. Настройка 301 редирект в .htaccess Файл с расширением .htaccess – это дополнительный конфигурационный файл web-сервера Apache. Его используют для настройки веб-сервера, а также для обработки различных URL-адресов. Для настройки 301 редиректа в файле .htaccess чаще всего применяют одну из трех директив: Redirect, RedirectMatch или RewriteRule. Директивы относятся только к папке, где размещен .htaccess, а оттуда распространяются на дочерние папки. Предварительная подготовка Для создания 301 редиректа перейдите в панель управления вашего сайта. Проверьте наличие .htaccess файла в корневом каталоге сайта (public_html, если используете WordPress). Если файл отсутствует, создайте его. Рекомендуем все условия редирект записывать в блоке IfModule, дабы избежать ошибок при выполнении файла htaccess. <IfModule mod_rewrite.c> </IfModule> Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On. Хостинги применяют по умолчанию 302 или любой другой 3xx редирект. В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L]. Наиболее распространенные варианты создания 301 редиректа через .htaccess 1. Склейка зеркал сайта (www / без www) Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта. В поисковой системе сайт по одному адресу будет проиндексирован, а по второму адресу зафиксирован как дубль, что может повлиять на продвижение ресурса. Для избегания дублей необходимо сделать так называемую «склейку» сайта, то есть прописать 301 редирект в .htaccess. Если изначально в индекс поисковой системы попала версия «с www», в файл .htaccess добавляется редирект на «без www»: Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается: RewriteCond %{HTTP_HOST} ^www.name\.site$ [NC] RewriteRule ^(.*)$ http://name.site/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^v name\.site$ [NC] RewriteRule ^(.*)$ http://www.name.site/$1 [R=301,L] Наиболее распространенные варианты создания 301 редиректа через .htaccess 2. Редирект с http на https для всего сайта В случае перехода на защищенный протокол https для всего сайта, необходимо настроить перенаправление с 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 всех пользователей и поисковых систем. Наиболее распространенные варианты создания 301 редиректа через .htaccess 3. Постранично Постраничный редирект используется в случае, если нужно сделать редирект на https всех страниц, кроме одной. RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} !^/page.php RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] 4. Редирект только для одной страницы Используется для редиректа с http на https одной страницы RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} =/page.php RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] 5.Редирект сайта с https на http RewriteCond %{SERVER_PORT} ^443$ [OR] RewriteCond %{HTTP} =on RewriteRule ^(.*)$ https://name.site/$1 [R=301,L] Наиболее распространенные варианты создания 301 редиректа через .htaccess 6.Изменение домена В том случае. если необходимо перейти на другой домен, при этом сохранив SEO-позиции, в файл .htaccess прописывают следующее: 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] 7.Редирект для url (с параметрами) Если адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию: RewriteCond %{QUERY_STRING} section=1 RewriteRule ^index.php http://name.site/articles.php? [R=301,L] Наиболее распространенные варианты создания 301 редиректа через .htaccess 8.Редирект на страницу с другим url (без параметров) Иногда возникает ситуация, когда необходимо изменить url страницы, то есть перенести данные с одной страницы на другую страницу, при этом не потеряв вес страниц. В этом случае в файл .htaccess прописывают следующее: RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L] 9.Редирект со страниц со слешем на без слеша (для всего сайта) Для избегания дублей в файле .htaccess используют следующую конструкцию: RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1 [R=301,L] Более короткий вариант: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L] Наиболее распространенные варианты создания 301 редиректа через .htaccess 10.Редирект с index.php на главную страницу В тех случаях, когда главная страница сайта может быть недоступна по нескольким адресам одновременно, применяют следующую конструкцию: RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://name.site/ [R=301,L] 11.Редирект со страниц без слеша на слеш (для всего сайта) Обратный вариант применяется, когда нужно использовать адреса со слешем RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*[^\/])$ /$1/ [R=301,L] Наиболее распространенные варианты создания 301 редиректа через .htaccess 12. 301 редирект с 404 Not Found Код 404 Not Found (страница не найдена) присваивается удаленной или несуществующей странице на сайте. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса при виде ошибки. 301 редирект для страниц 404 Not Found сделать совсем не сложно. Например, этот код перенаправит со всех 404-страниц на главную: ErrorDocument 404 http://www.site.com/301.html Делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса. Другие способы создания переадресации 301 Через PHP Первый способ: <?php if($_SERVER['REQUEST_URI'] == "/index.php") { header("Location: /",TRUE,301); exit(); } ?> Второй способ - перенаправление при помощи отправки заголовков (скрипта): <?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.newdomain.ru/newdir/newpage.htm"); exit(); ?> Редирект в Nginx if ($host = 'www.domain.com' ) { rewrite ^(.*)$ http://domain.com$1 permanent; } Другие способы создания переадресации 301 HTML-редирект Этот способ подойдет для небольших статических сайтов, когда требуется настроить переадресацию для одной страницы. Для этого необходимо добавить специальный мета-тег внутри кода HTML. Пример записи редиректа на другой ресурс после 5-секундной задержки: <meta http-equiv="refresh" content="5;https://samgk.ru"> JS-редирект Код можно прописать лишь в одном файле, а сам файл добавить на все нужные страницы, указав: <script type="text/javascript" src="redirect.js"></script> <script type="text/javascript"> location="https://yandex.ru"; </script> Проверка корректности настроек 301 редиректа Для автоматической проверки можно воспользоваться специальными сервисами: Redirect Checker (www.redirect-checker.org), bertal.ru или Header Checker Tool (www.internetmarketingninjas.com) для тестирования отдельных страниц; программой Screaming Frog Seo Spider (www.screamingfrog.co.uk), способной просканировать весь сайт. Самый простой способ проверки переадресации – ручное тестирование. Ошибки, которые следует избегать при настройке редирект 301: использование перенаправлений между страницами сайта без изменения их url в ссылках; установка временной переадресации вместо постоянной; неправильный выбор типа редиректа; перенаправление файла robots.txt; непонимание разницы между rel=canonical и кодом 301; редирект на нерелевантный контент; переадресация, которая не приводит к 200-й странице.