Редирект в SEO — это метод перенаправления пользователей и поисковых роботов с одного URL-адреса на другой. Он используется для различных целей, таких как перенаправление страниц после их перемещения, объединение контента с нескольких страниц на одну, исправление ошибок в URL-ах и т. д. Редиректы помогают сохранить ценность и ранжирование страницы, а также улучшить пользовательский опыт.
301 Permanent Redirect (Постоянный редирект): этот тип редиректа сообщает поисковым роботам и браузерам, что страница была окончательно перемещена на новый адрес. Он перенаправляет как поисковые запросы, так и прямые ссылки на новую страницу, передавая большую часть ранжирования и авторитета старой страницы на новую.
302 Temporary Redirect (Временный редирект): данный редирект указывает, что страница временно доступна по другому URL и возможно вернется в будущем. Поисковые роботы обычно сохраняют оригинальный адрес и не передают такой редирект полный ранжирования на перенаправленную страницу.
307 Temporary Redirect (Временный редирект): этот тип редиректа, аналогичный 302, указывает временное перемещение страницы на другой URL. Однако, поисковые роботы могут его интерпретировать по-разному, и некоторые не передают свое ранжирование на новую страницу.
Meta Refresh: этот тип редиректа происходит через мета-тег, который автоматически перенаправляет пользователя на новую страницу через указанное время. Он реже используется в SEO, так как не все поисковые роботы хорошо его обрабатывают.
Для чего используются редиректы в SEO
Редиректы в SEO используются для управления перемещением содержимого, обеспечения безопасности сайта (например, перенаправление с HTTP на HTTPS), исправления ошибок в URL-ах, предотвращения дублирования контента и улучшения пользовательского опыта. Однако неправильное использование редиректов может привести к проблемам, таким как циклические редиректы, которые негативно сказываются на индексации и ранжировании страниц. Поэтому рекомендуется использовать редиректы с осторожностью и правильно настроить их для достижения желаемых результатов.
Google выполняет не менее пяти переходов в цепочке переадресаций согласно RFC 1945. Затем поисковый робот прерывает операцию и интерпретирует ситуацию как ошибку 404, относящуюся к файлу robots.txt. Это также относится к любым заблокированным URL в цепочке переадресаций, поскольку из-за них поисковый робот не может получить правила.
Существует два основных способа это сделать: с помощью директивы Redirect (простой способ) и с помощью модуля mod_rewrite (более гибкий и мощный способ).
Способ 1: Использование директивы Redirect (самый простой)
Этот метод идеально подходит для простых перенаправлений отдельных страниц и не требует глубоких знаний регулярных выражений.
Redirect 301 — это сама команда. Redirect — директива, а 301 — это HTTP-код, который означает “Moved Permanently” (Перемещено навсегда). Это сообщает браузерам и поисковым системам, что страница окончательно переехала.
/staraya-stranica.html — это URL-путь старой страницы относительно корня сайта. Обратите внимание, что здесь не нужно указывать домен (http://www.vash-sait.ru).
https://www.vash-sait.ru/novaya-stranica.html — это полный абсолютный URL новой страницы, куда должен перейти пользователь. Указывать полный URL с https:// является лучшей практикой.
Способ 2: Использование mod_rewrite (более гибкий)
Этот метод является более мощным и используется для более сложных условий перенаправления. Для его работы на вашем хостинге должен быть включен модуль Apache mod_rewrite.
Код:
# Включаем модуль перенаправлений
RewriteEngine On
# Правило для перенаправления конкретной страницы
RewriteCond %{REQUEST_URI} ^/staraya-stranica\.html$
RewriteRule ^(.*)$ https://www.vash-sait.ru/novaya-stranica.html [R=301,L]
Разбор кода:
RewriteEngine On — эта строка обязательна, она включает механизм преобразования URL.
RewriteCond %{REQUEST_URI} ^/staraya-stranica\.html$ — это условие. Оно проверяет, соответствует ли запрошенный URI (%{REQUEST_URI}) точному пути /staraya-stranica.html.
^ означает начало строки.
$ означает конец строки. Это гарантирует, что правило сработает только для этого конкретного URL, а не для, например, /staraya-stranica.html?param=1.
\. — точка экранируется обратным слэшем, так как в регулярных выражениях точка является специальным символом.
RewriteRule ^(.*)$ https://… [R=301,L] — это само правило перенаправления, которое выполняется, если условие выше истинно.
^(.*)$ — простое регулярное выражение, которое захватывает весь входящий запрос.
https://www.vash-sait.ru/novaya-stranica.html — новый URL, куда будет выполнено перенаправление.
[R=301,L] — это флаги.
R=301 указывает, что нужно выполнить постоянный 301 редирект.
L (Last) означает, что это последнее правило, и обработку правил для данного запроса следует прекратить. Это помогает избежать конфликтов с другими правилами в файле .htaccess.
Что нужно учесть:
Расположение файла: файл .htaccess должен находиться в корневой папке вашего сайта (часто это папки public_html, www или htdocs).
Порядок правил: если у вас несколько правил редиректа, более конкретные правила должны идти перед более общими.
Кеширование: 301 редиректы агрессивно кешируются браузерами. При тестировании используйте режим “Инкогнито” в браузере или очищайте кеш после каждого изменения в файле .htaccess, чтобы видеть актуальный результат.
Синтаксис: будьте внимательны с синтаксисом, особенно с пробелами и специальными символами в mod_rewrite. Одна ошибка может привести к неработоспособности всего сайта.
Перенаправление с региональных субдоменов на главное зеркало
У сайта есть субдомены, на которых лежит точная копия сайта. Яндекс по какой-то причине по ряду запросов начинает выбирать для ранжирования и вывода в своих сервисах (“нейро-выдаче”) случайно выбранные региональные субдомены. Чтобы склеить их с главным зеркалом (доменом второго уровня) можно настроить с этих субдоменов постоянный (301) редирект.
Рассмотрим настройки файла htaccess для решения этой задачи.
Для этого используется модуль Apachemod_rewrite. Код ниже перенаправит любой субдомен (кромеwww) на ваш основной домен, сохранив при этом путь и параметры запроса. Например, запрос кspb.example.com/products/item?id=123будет перенаправлен наhttps://example.com/products/item?id=123.
Поместите следующий код в начало вашего файла.htaccess, который находится в корневой директории сайта.
# Включаем модуль перезаписи URL
RewriteEngine On
# Условие 1: Захватываем имя субдомена, если хост соответствует шаблону "что-то.example.com"
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
# Условие 2: Убеждаемся, что захваченный субдомен - это не "www"
RewriteCond %1 !^www$ [NC]
# Правило: Если оба условия выше выполнены, делаем 301 редирект на основной домен,
# сохраняя исходный путь и параметры запроса.
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
Важные моменты для настройки
Заменитеexample.comна ваше реальное доменное имя в двух местах: вRewriteCondи вRewriteRule.
Протоколhttps://: В примере используется защищенный протоколhttps://. Если ваш основной сайт работает по протоколуhttp://, заменитеhttps://наhttp://.
Исключениеwww: Данный код специально игнорирует субдоменwww, так как он часто используется как основной или зеркало основного домена. Если вы хотите перенаправлять абсолютно все субдомены, включая www, используйте более простой вариант кода ниже.
Альтернативный вариант (редирект всех субдоменов, включая www)
Если вам нужно перенаправлять все субдомены без исключений, используйте этот код. Он проверяет, не является ли хост основным доменом, и если нет — перенаправляет.
# Включаем модуль перезаписи URL
RewriteEngine On
# Условие: хост НЕ является основным доменом
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
# Правило: перенаправляем на основной домен с сохранением URI
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
Перед внесением изменений убедитесь, что на вашем хостинге включен модуль mod_rewrite. Обычно он включен по умолчанию.
Как настроить постраничный редирект с одного домена на другой
Для настройки постраничного 301 редиректа со старого домена на новый добавьте следующий код в файл .htaccess в корневой директории вашего старого сайта. Этот метод сохранит все URL-пути, перенаправляя, например, old-domain.com/page на new-domain.com/page.
Вам нужно заменить old-domain.com на ваш старый домен и www.new-domain.com на ваш новый домен. Код сработает как для версии с www, так и без нее. R=301 указывает на постоянное перемещение, что является правильным решением для поисковых систем.