Редиректы: для чего нужны и как сделать
В процессе работы над созданием и продвижением сайта рано или поздно владельцы сталкиваются с таким понятием как редирект страницы. В статье расскажу, что это такое, когда его стоит применять и как это сделать.
Что такое редирект и зачем он нужен
Редирект — это автоматическая переадресация с одного URL на другой.
Страница, откуда идет перенаправление, называется донором, а та, куда он ведет, — акцептором.
Вроде все просто: откуда и куда. Но случаев, когда может понадобиться редирект на другой сайт, довольно много, поэтому и реализация может отличаться. Рассмотрим варианты.
URL страницы изменился
Бывают такие ситуации, когда страница сайта уже недоступна по её адресу. Например, когда товар переместили в другой раздел каталога, и его URL изменился. В таком случае и пользователи, которые могли сохранить веб-адрес в закладках, и поисковые системы при переходе по нему будут видеть ошибку 404. Это значит, что страница отсутствует. Что будет далее?
Большинство пользователей решат, что товар больше не продается, или сайт поломался, поэтому уйдет, ничего не купив.
Поисковая система сделает вывод, что страница нерабочая, и удалит её из индекса.
В обоих случаях это плохо, ведь интернет-магазин потеряет потенциального клиента и часть веса в поисковой системе. Чтобы избежать такой неприятности, нам и поможет редирект — автоматическое перенаправление на другую страницу сайта. Тогда и пользователи, перешедшие по устаревшей ссылке, с большей вероятностью останутся, и с точки зрения поисковых систем вес старой страницы перейдет на акцептор.
Страница удалена
Вариант поведения посетителей и ПС тот же, что и при переходе по ссылке и попадании на страницу с ошибкой 404. Но здесь нет конкретного URL для перехода. Что делать? Включить редирект!
Если это товар, то можно перенаправить на аналогичный продукт или на общую категорию.
Если это услуга — на аналогичную услугу или список услуг.
Информационная статья — на похожую или список публикаций.
Конечно, можно делать редирект со всех страниц на главную. Тогда вес удаленных URL будет перетекать на нее. Но пользователи, переходящие по конкретной ссылке на конкретный товар/статью и видящие перед собой главную страницу, будут в замешательстве. Это не будет отвечать их ожиданиям, и с большей вероятностью они покинут сайт. Поэтому SEO-специалисты рекомендуют ставить редиректы на похожие разделы, чтобы удержать посетителя.
У сайта несколько поддоменов
Если сайт имеет несколько версий для различных регионов, то при выборе посетителем города его логично перенаправить на определенный поддомен. Если веб-ресурс мультиязычный, и языковые версии реализованы на отдельных поддоменах, то здесь тоже пригодится редирект.
Его можно организовать по-разному:
либо при переадресации перенаправлять все на главную;
либо на точно такой же раздел, только на другом поддомене.
Второй вариант предпочтительнее, так как идет перенаправление на такую же страницу. При этом структуры сайтов должны быть идентичны. К сожалению, по техническим причинам или из-за особенностей работы компании этого не всегда можно добиться.
Выбор главного зеркала
У сайта может быть несколько зеркал — копий, расположенных по разным адресам. Я про это писала в другой статье.
Варианты зеркал:
с www и без www;
по протоколу http:// и по протоколу https://.
В идеале должна быть только одна версия сайта, доступная по одному адресу. Остальные копии требуется «подклеить» к главной с помощью простого редиректа.
Дубли страниц
В процессе работы некоторые CMS (системы управления сайтами) генерируют точные копии отдельных страниц, доступные по другим адресам, так называемые дубли.
Например, site.ru — главная страница, а site.ru/index.php — ее дубль. Или site.ru/uslugi и site.ru/uslugi/ — это тоже дубли, хотя отличаются только слешем в конце.
Наличие дублей отрицательно сказывается на продвижении, поэтому от них следует избавляться.
Переезд на другой домен
Когда требуется перенести сайт на новый домен, нежелательно терять уже накопившийся вес или старых посетителей, поэтому переадресация тут обязательна.
Переезд на другую CMS
Бывает, что нынешняя система управления сайтом уже не отвечает требованиям времени или бизнес-задачам. В таком случае принимается решение о переезде на другую. В большинстве случаев это влечет за собой кардинальное изменение структуры. Чтобы не потерять ни позиции в ПС, ни посетителей, следует сделать карту редиректов, в которой прописать старые и новые URL.
Если веб-ресурс большой (интернет-магазин с сотнями товаров), и создание переадресаций для каждого товара невозможно, то следует соотнести категории товаров и сервисные страницы.
Тарасенко
Получите профессиональный бесплатный SEO-аудит вашего сайта. Оставьте заявку и мы обсудим детали.
Получить бесплатный SEO-аудитВиды редиректов
Переадресации делятся на несколько видов в зависимости от отдаваемого кода ответа сервера.
301 редирект — постоянное перенаправление, например на другой домен. Он самый распространенный в использовании. Такой код ответа говорит о том, что страница перемещена навсегда и работать больше не будет. В таком случае поисковые системы перенаправляют вес донора на акцептор. Новая страница появляется в поиске, а старая удаляется.
302 редирект — временное перенаправление. Используется в случае, если страница временно недоступна. Например, если ведутся технические работы. Отличительная особенность: вес не передается на новый адрес, и в индексе могут быть обе страницы. Краулеры (поисковые роботы) «Яндекса» или Google будут периодически проверять старую версию на предмет её доступности. Не следует оставлять 302 редирект дольше недели или двух, так как в таком случае старая страница выпадет из индекса из-за длительной недоступности. Новая же не переймет веса и, соответственно, не будет занимать тех позиций, что занимала старая.
303 редирект — временное перенаправление на аналогичную страницу. Можно сказать, частный случай 302 редиректа. Только здесь идет перенаправление на аналогичный раздел. Например, на такой же товар в интернет-магазине.
307 редирект — поисковыми системами воспринимается так же, как и 302 — как временное перенаправление.
Как сделать редирект сайта
Самый разумный и действенный метод для веб-ресурсов на серверах Apache — использование файла .htaccess. Он расположен в корне сайта и доступен к редактированию с помощью блокнота. Минус метода: нужно разбираться в коде.
Для популярных CMS существует масса плагинов, с помощью которых можно настроить перенаправления. Их функциональные возможности и стоимость отличаются, однако все они служат отличным подспорьем в процессе настройки сайта.
Существуют способы сделать переадресацию средствами PHP и JavaScript, а также с помощью тега <meta http-equiv="refresh">. Они, как правило, используются там, где перенаправление через .htaccess не подходит.
Расскажу подробнее о редиректах в .htaccess.
Редиректы в .htaccess
Перенаправления должны добавляться после команды RewriteEngine On. Если такой команды нет, её следует добавить. Также надо учитывать, что некоторые части файла могут быть зарезервированы CMS сайта, и туда писать ничего не следует (как правило, об этом пишется предупреждение).
Все примеры переадресаций буду приводить с 301-м кодом ответа. Для получения другого редиректа потребуется заменить число 301 на требуемый код.
Как сделать редирект со страницы на страницу
Варианты реализации перенаправления:
Redirect 301 /old https://site.ru/new
В адресе акцептора прописывается домен, даже если перенаправление настраивается внутри одного сайта.
RewriteRule ^old$ http://site.ru/new [R=301,L]
Выбирайте второй, если первый не работает.
Редирект страниц с GET параметрами
Не всегда страницы имеют статичный URL, иногда он формируется динамически, и предыдущие варианты редиректов работать не будут.
Например, для site.ru/?cid=180&p=preview потребуется такая конструкция:
RewriteCond %{QUERY_STRING} ^cid=180
RewriteRule ^.*$ /new/? [R=301,L]
301 редирект с домена на домен
Когда требуется прописать 301 редирект с одного сайта на другой так, чтобы каждая страница старого веб-ресурса перенаправлялась на каждую страницу нового, используют:
RewriteCond %{HTTP_HOST} ^site-old\.ru$ [NC]
RewriteRule ^(.*)$ http://site-new.ru/$1 [R=301,L]
Но это не всегда подходит. Например, это не работает, если поменялась структура сайта. В этом случае можно сделать массовый редирект со всех страниц на главную, но другого веб-ресурса:
RewriteRule ^(.*)$ http://site-new.ru/ [R=301,L]
Если один или оба домена, участвующих в перенаправлении, кириллические, используйте кодировку Punycode.
Как сделать редиректы для доменов с www и без
Когда требуется, чтобы каждая страница перенаправлялась на другую с таким же адресом, но с или без префикса www, код составляют так:
для 301 редиректа с сайта без www на сайт с www:
RewriteCond %{HTTP_HOST} ^([^www].*)$;
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301].
для 301 редиректа с сайта с www на сайт без www:
RewriteCond %{HTTP_HOST} ^www\.(.*)$;
RewriteRule ^(.*)$ http://%1/$1 [L,R=301].
Как сделать редиректы для доменов с https и http
Все больше интернет-ресурсов работают по защищенному протоколу, поисковые системы также рекомендуют следовать только ему. Поэтому копия с http не нужна, подклеить её можно с помощью 301 редиректа с http на https:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Второй вариант исполнения:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Обратная ситуация — 301 редирект с протокола https на http:
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Редиректы для слешей /
301 редирект со страниц без слеша на версию со слешем:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
Наоборот, переадресация со страниц со / на версию без /:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
В интернете можно найти онлайн-генераторы редиректов и правила для .htaccess. Даже используя их, требуется последующая проверка исполнения.
Как проверить редирект
Первый способ проверки, который напрашивается сам собой, — переход по старой ссылке. По тому, выполнил браузер перенаправление или нет, можно судить о результате.
И это в корне неверно! Почему?
С виду корректно работающее перенаправление скрывает в себе несколько внутренних редиректов, которые пользователи не видят. Поисковые системы не любят, когда перенаправлений больше одного.
Серверный ответ при редиректе не тот, который вы ожидали.
Перенаправление не срабатывает из-за кэша браузера.
Лучше проводить проверку через сторонние сервисы:
Вручную вы можете походить по сайту и убедиться, что ничего не поломалось (да, и такое бывает, если в .htaccess не туда или не тот символ прописать).
Вся соль
Редирект для сайта — важный инструмент как при первичной настройке, так и при изменении структуры. Чтобы его сделать, нужно:
определить цель перенаправления;
выбрать способ настройки;
реализовать;
проверить работу сайта и переадресации.
При правильной настройке перенаправлений сайт будет иметь больше преимуществ в поисковых системах, а также не потеряет своих позиций при переезде.
Если у вас есть сомнения в необходимости редиректов или в собственных силах, обращайтесь к нам! Наши специалисты проведут бесплатный аудит вашего сайта и помогут с реализацией рекомендаций.