301 редирект. Готовые рецепты для SEO

301 редирект (301 Permanent Redirect) — это код ответа сервера, означающий что запрошенная страница навсегда перемещена  и располагается теперь по новому адресу, который также передается в HTTP-заголовке ответа. Браузеры автоматически реагируют на эту директиву и для конечного пользователя переход происходит практически незаметно (меняется только URL в адресной строке браузера). Метод 301 редиректа широко используется в SEO для переноса веса со старых страниц на новые и для удержания пользователей на сайте.

В сети есть множество информации о 301 редиректе (ссылки на полезности ищите в конце статьи), но нужные рецепты частично устарели, недостаточно полны или раскиданы по десяткам страниц. Работая в SEO-компании, я часто сталкиваюсь с отсутствием или нехваткой знаний для простановки редиректов, как среди сеошников, так и среди программистов. Поэтому я начну цикл статей-рецептов, в которых все объясню максимально доступно.

Эта статья будет своего рода содержанием. В ней будет дополняемый список ссылок на все рецепты с 301 редиректом. Итак, сначала список, затем общие детали установки редиректов.

Рецепты редиректов

Способы реализации редиректов

В общем случае есть 2 основных способа реализации редиректов:

  1. Через конфигурацию веб-сервера. В подавляющем большинстве случаев веб-сервером служит apache и редиректы конфигурируются через файл .htaccess в веб-директории нужного сайта. Обязательно также наличие включенного модуля апача mod_rewrite, но он тоже почти всегда включен. Этот вариант является рекомендуемым и именно его мы будем рассматривать во всех рецептах.
  2. Через скрипты сайта. Вариант нежелательный, поскольку вы меняете код сайта, что при ошибке может привести к различным неприятным последствиям. Также, этот вариант медленнее, поскольку веб-сервер должен обработать запрос, а потом уже передать управление языку, на котором написан движок сайта (чаще всего php) и только потом произойдет редирект. Но иногда без этого способа не обойтись. Например, когда веб-сервером является nginx и у вас нет прав на редактирование его конфигурации.

Куда вставлять редирект в .htaccess

Часто этот вопрос обходится стороной, несмотря на то, что файл конфигурации .htaccess может быть очень большим. Человеку, который видит его в первый раз, совершенно непонятно куда вставить редирект из рецепта так, чтобы он заработал.

Для работы редиректов через mod_rewrite в файле .htaccess должны быть следующие строки:

apacheOptions +FollowSymLinks
RewriteEngine On

Первая включает следование по символическим ссылкам.
Вторая — включает использование движка rewrite для редиректов.

Чаще всего эти строки уже будут в файле, найдите их и вставляйте редирект после них.
Если таких строк нет, то вставьте их самостоятельно в начало файла.

Далее, у CMS поддерживающих ЧПУ (человеко-понятные урлы), в .htaccess будет подобная конструкция:

apache# The Friendly URLs part

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Так вот, редирект нужно вставлять до нее, поскольку она собирает все необработанные запросы и отдает их на обработку входному файлу CMS (чаще всего это index.php). А указанный в квадратных скобках флаг L, дает команду прервать обработку всех последующих правил редиректа.
Таким образом, правило, вставленное после такой конструкции, не будет работать.

Правила безопасности при редактировании .htaccess

Если не хотите получить сайт, который отдает ошибку 500 на любой странице — выполняйте следующие правила:

  • Обязательно сделайте копию исходного .htaccess и сохраните ее в надежном месте ДО начала изменений. В случае проблем вы хотя бы сможете вернуть все как было.
  • После вставки редиректа проверьте работу сайта (обновите главную страницу).
  • Используйте качественный редактор текста (например, notepad++). Если в файле используются русские символы, некоторые редакторы могут неправильно определить кодировку текста и из-за этого сохранить файл с ошибками.
  • Если файл в кодировке UTF-8, следите чтобы он сохранялся в UTF-8 без BOM. BOM — это 3 служебных байта в начале файла, которые могут быть интерпретированы апачем неверно и добавить проблем.

Как проверить редирект

  • С помощью сервисов. Например, http://www.bertal.ru/. Вводим адрес нужной страницы и смотрим заголовки ответа. Код ответа должен быть 301, а в заголовке Location адрес страницы, на которую должен происходить редирект.
  • В своем браузере. Сложность в том, что браузеры кешируют редиректы, поэтому если вы редактируете редирект, проверять его следует в Новом приватном окне (доступно в firefox и chrome: Файл->новое приватное окно). Приведу пример для Firefox:
    Открываем панель «Сеть» в инструментах разработчика (Инструменты → Веб-разработка → Сеть или F12 → вкладка Сеть) и выбираем подвкладку «html», чтобы не видеть запросы для js, css и т.д.
    Открываем сайт по адресу страницы, с которой должен происходить редирект.

Полезные ссылки:

 

17 февраля 2016