Содержание статьи

Редирект (перенаправление) – это процесс автоматической переадресации пользователя с одного URL-адреса на другой, что бывает полезным при изменении URL-адреса страницы, переноса сайта на другой домен, исправления ошибок URL, обеспечения безопасности сайта и т.д. Переадресация может быть выполнена на уровне веб-сервера, когда он получает запрос от пользователя, или на уровне кода страницы, когда скрипт веб-страницы отправляет запрос на перенаправление пользователя.
Методы переадресации
В зависимости от целей переадресации используются различные методы перенаправления, каждый из которых имеет свои особенности.
- Редирект (Redirect) – это метод, который обеспечивает автоматическую переадресацию пользователя с одного URL-адреса на другой. В редиректах есть разные типы, такие как 301, 302, 307 и т.п., указывающие на различные виды перенаправления.
- Meta Refresh – использует тег HTML <meta> для автоматического перенаправления пользователя на новую страницу. Это может быть полезно, например, при автоматическом обновлении страницы после определенного времени. Однако этот метод имеет некоторые недостатки, такие как неудобство для пользователей и ухудшение SEO, поскольку поисковые системы могут воспринимать это как мошенничество.
- JavaScript Redirect – этот метод использует JavaScript для перенаправления пользователя на другой URL. Этот метод может быть полезен для переадресации пользователя после заполнения формы или после выполнения определенных действий на странице, но может быть блокирован браузерами по причине безопасности.
- Canonical Links – HTML-тег, указывающий поисковым ботам на основной URL-адрес страницы, который должен быть индексирован поисковыми системами. Канонические ссылки могут быть полезны, когда на сайте есть дубликаты страниц с разными URL-адресами, и помогают избежать дублирования контента и улучшить SEO.
Более подробно рассмотрим метод Redirect, который важен для поисковой оптимизации с точки зрения сохранения веса и позиции страницы, а следовательно, и органического трафика.
Виды редиректов
Существует несколько кодов редиректирования (HTTP redirection status codes) в протоколе HTTP, описывающих статус перенаправления от сервера к клиенту:
- 301 Moved Permanently – этот код означает, что ресурс был перемещен на новый URL-адрес, и соответствующий URL больше не существует, используется для окончательных перемещений. Авторитет и позиции страницы донора передаются странице акцептора, которая и будет присутствовать в индексе поисковых систем.
- 302 Found – означает, что ресурс был временно перемещен на новый URL-адрес, и соответствующий URL может снова появиться в будущем. Следовательно, новый URL не будет индексироваться, а поисковые показатели и настройки останутся на «старом» адресе.
- 303 See Other – этот код означает, что клиент должен перейти к другому URL-адресу, который указал сервер. Он используется для возврата запросов POST или PUT.
- 304 Not Modified – этот код возвращается, когда ресурс не был изменен с момента последнего запроса, означает, что клиент может использовать кэшированную версию ресурса.
- 307 Temporary Redirect – этот код аналогичен 302, но сохраняется метод запроса HTTP, который был использован во время исходного запроса. Используется только тогда, когда клиент должен использовать тот же метод запроса HTTP для повторного запроса.
- 308 Permanent Redirect – этот код подобен 301, но сохраняет метод запроса HTTP, который был использован при первом запросе. Он должен использоваться только тогда, когда клиент должен использовать тот же метод запроса HTTP для повторного запроса.
Более подробная информация, касающаяся 3хх кодов ответа сервера, приведена в статье – Коды ответов 3хх.
Примеры применения 301 редиректов в .htaccess
Рассмотрим самые распространенные случаи использования 301 редиректов с примерами реализации в файле конфигурации .htaccess, который можно найти с помощью FTP или через сервисы хостинга.
Заметим: внесение изменений в .htaccess может привести к ошибкам в работе вашего сайта, так что, если у вас недостаточно опыта, правильным будет обратиться к профессионалам.
301 редирект из старого URL-адреса страницы на новый
Если вам нужно изменить адрес или удалить проиндексированную страницу, использование 301 редиректа поможет сохранить ее позицию и вес
Redirect 301 /old_url_addr /new_url_addr
301 редирект с одного домена на другой
Правило для настройки перенаправления всех страниц старого домена на новый, при сохранении структуры сайта:
Redirect 301 / https://new-sitename.com/
Такой редирект используется при переносе сайта на новый домен, но с полным перечнем действий для «удачного» переноса вы можете ознакомиться в нашей статье «Перенос сайта без потери позиций».
301 редирект с HTTP на HTTPs
Установив SSL-сертификат, вы получите защищенную версию сайта (на протоколе https://), но доступной останется также и незащищенная версия (на протоколе http://). Для «склейки» нужно настроить 301 редирект с HTTP на HTTPs – добавить в .htaccess правило:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://sitename.com/$1 [R=301,L]
301 редирект символов верхнего регистра на нижнем
Ссылки с символами в верхнем и нижнем регистре (https://sitename.com/blog и https://sitename.com/Blog) поисковые боты воспринимают за ссылки на разные страницы, так что полезно настроить перенаправление на основную версию. Настройки с помощью .htaccess и PHP:
Добавить в .htaccess код:
RewriteCond %{REQUEST_URI} [AZ][OR]
RewriteCond %{QUERY_STRING}[AZ]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule (.*) rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L]
Создать в том же каталоге файл rewrite-strtolower.php со строками:
<?php
if(isset($_GET['rewrite-strtolower-url'])) {
$url = $_GET['rewrite-strtolower-url'];
unset($_GET['rewrite-strtolower-url']);
$params = http_build_query($_GET);
if(strlen($params)) {
$params = '?' . $params;
}
header('Location: https://' . $_SERVER['HTTP_HOST'] . '/' . strtolower($url) . $params, true, 301);
exit;
}
header("HTTP/1.0 404 Not Found");
die('Unable to convert the URL to lowercase. You must supply a URL to work upon.');
301 редирект на URL без расширения
Например, у вас есть страница https://sitename.com/help.htm и требуется перенаправление на URL-адрес https://sitename.com/help , добавьте правило:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.htm -f
RewriteRule ^(.+)$ $1.htm [L,QSA]
RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /.*\.htm\ HTTP/
RewriteRule ^(.*)\.htm$ /$1 [R=301,L]
Сменив .htm на другое значение, получите правило для редиректирования нужного расширения.
301 редирект по адресу без слэша на слэш
Правило в .htaccess для настройки 301 редиректа для ссылок без слеша по адресу:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /$1/ [L,R=301]
и наоборот, для получения ссылок без слеша:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$1 [L,R=301]
301 редирект с WWW без WWW
Страницы с WWW в URL-адресе и без WWW поисковая система определяет как дубликаты. Желательно выбрать один и настроить на него переадресацию из других вариантов.
При наличии у сайта позиций нужно проверить, какая из версий имеет большую видимость (большее количество страниц в результате поиска):
- с помощью оператора “site” (site:www.sitename.com и site:sitename.com) определить, какой вариант имеет больше страниц в результатах;
- проверить количество страниц в индексе с помощью Google Search Console, добавив и подтвердив каждую из зеркал сайта.
Для настройки 301 редиректа ссылок без WWW по адресу с WWW, в .htaccess добавьте следующий код:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^v sitename\.com$ [NC]
RewriteRule ^(.*)$ https://www.sitename.com/$1 [R=301,L]
Напротив, правило для настройки 301 редиректа с WWW по адресу без WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sitename\.com$ [NC]
RewriteRule ^(.*)$ https://sitename.com/$1 [R=301,L]
Более подробное описание настроек редиректов в .htaccess вы можете просмотреть за ссылкой.
Настройка редиректов с помощью CMS
Подавляющее большинство CMS имеют комплекс инструментов для настройки редиректов, они могут быть интегрированы или используются плагины. Для использования необходимо изучить соответствующие инструкции.
- WordPress – используйте один из многих доступных плагинов, например: 301 Redirects, Yoast SEO Premium, All in One SEO, Rank Math и другие.
- Opencart – модуль Менеджер 301 редакций
- Joomla – настройка в административной панели в разделе «Компоненты» – «Перенаправление».
Распространенные ошибки с 301 редиректами
Настройка переадресации для сайта не всегда работает корректно, так что требует проверки и, при необходимости, корректировки. Рассмотрим самые распространенные проблемы, возникающие при использовании редиректив.
Редирект не работает
К примеру, вы добавили правило в .htaccess, но перенаправление не срабатывает. Возможно, команды в файле расположены в неподходящей последовательности, попробуйте разместить «неработающую» команду в начале файла. В .htaccess директива расположенная первой может модифицировать запрос, и он не будет удовлетворять условиям последующих директив.
Цепи редиректов
Иногда, перейдя по ссылке, вы не попадаете на конечную страницу сразу, и вместо одного перенаправления требуется больше (например, с http:// на https:// и затем с URL с WWW на без WWW). Каждый из «лишних» редиректов – это дополнительная нагрузка на сервер и увеличение времени загрузки страницы, что не может понравиться ни поисковым ботам, ни посетителям.
Циклические редиректы
Это ошибка в логике настройки переадресации, когда один адрес страницы перенаправлен на предыдущий адрес в цепи редиректа и по кругу. Конечная страница не загрузится и возникнет ошибка “ERR_TOO_MANY_REDIRECTS”.
Битые редиректы
Если посетитель сайта или поисковый бот не могут попасть на конечную страницу редиректа, страница не открывается и возвращает 4хх или 5хх код ответа сервера. Эта страница не может быть в результатах поиска. Проверка ошибок износа редиректов на сайте желательно периодически проверять. Для этого вы можете использовать как Google Search Console, добавив свой сайт, так и приложение. SEO Spider Screaming Frog.
Подведем итоги
Применение редиректов в SEO оптимизации, при правильной настройке, способствует сохранению и росту позиций сайта. Периодические проверки веб-сайта и устранение проблем с перенаправлениями, битыми ссылками и т.д., помогает улучшению пользовательского опыта и качества индексации сайта, а следовательно, повышению посещаемости.
В то же время некорректные настройки редиректов приводят к ухудшениям в качестве поисковой оптимизации и работе веб-ресурса вообще, а исправления могут стоить большого количества ресурсов и времени. Итак, при отсутствии достаточного опыта, рекомендуем доверить настройки переадресации экспертам: программистам и SEO-оптимизаторам.




