09.04.2015

Настройка htaccess для SEO: 301 редирект, склейка зеркал

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

Базовая настройка htaccess

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

Добавлю, что для некоторых CMS, например, Joomla, необходимо включить перенаправление в админке сайта. В Joomla 2.5 данная настройка находится в «Сайт — Общие настройки — Сайт». Сами настройки должны выглядеть так:

Nastrojka-htaccess-dlja-SEO

Склейка зеркал сайта с www и без

По умолчанию, большинство сайтов доступны по 2-м адресам, например, www.site.com и site.com. Дело в том, что поисковые системы в выдачу могут помещать как первый, так и второй адрес, вследствие чего создаются дубли страниц. Чтобы этого избежать, необходимо использовать 301-й редирект. 

Существует два варианта. В первом, предположим, что адрес вашего сайта должен выглядеть как site.com. В таком случае, зеркало www.site.com необходимо перенаправить на site.com:

Второй вариант — ваш сайт должен иметь такой вид: www.site.com. Для этого в настройках htaccess необходимо прописать следующее правило:

Убираем index.php и index.html из адреса сайта

Ваш сайт может быть доступным по адресу site.com/index.php. Проблема решается очень просто, для этого вам необходимо прописать в htaccess такую конструкцию:

Работает неплохо, но я заметил одно НО. На сайтах, где активен такой функционал, как регистрация, корзина, оформление заказов наблюдаю сбои в работе после применения данного редиректа. На одном из сайтов авторизоваться можно только с главной страницы, на внутренних авторизация не работала. Долгое время я даже не знал, в чем проблема, пока не стал ковырять настройки htaccess. Так что после правок в файле всегда проверяйте работоспособность функционала сайта.

В случае, если описанный выше редирект режет функционал либо вовсе не работает, попробуйте в файле index.php, лежащем в корне сайта, прописать следующий код:

Иногда бывает, что сайт доступен по адресу site.com/index.html. Это может произойти, если ваш сайт создан на HTM, впрочем, на некоторых CMS такое встречал тоже. В любом случае, это дубль сайта, убрать его можно при помощи директивы сложного перенаправления:

Редирект 301 для страниц со слешем и без

По умолчанию, все страницы сайта могут быть доступны со слешем (/) и без него. Для того, чтобы убрать слэш в конце URL, пропишите такую директиву:

И наоборот, для добавления «/» в конце URL, добавьте следующий код:

Перенаправление со старого на новый домен

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

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

Директивы простого перенаправления (Redirect 301)

Кроме специфических ситуаций, бывает, когда надо всего лишь перенаправить старую страницу, которая отдает 404, на рабочую новую. Для этого можно использовать так называемые директивы простого перенаправления. Вот пример использования. Допустим, надо перенаправить страницу site.com/page-old на site.com/page-new. Это можно сделать при помощи одной из директив ниже.

или

Вот и все, что я хотел сегодня рассказать. Настройка htaccess для SEO — один из первых шагов, которые необходимо сделать после создания сайта. Если настройку не произвести — в индекс поисковых систем попадет немало дублей, что не добавит авторитета интернет-ресурсу. Поэтому поработайте сначала над внутренними SEO факторами.

Просмотров записи: 4451
Теги статьи:
Проблемы с продвижением? Закажите экспресс-аудит по антикризисной цене!
  • Надежда

    Здравствуйте, у меня прописан такой код
    RewriteEngine On
    RewriteCond %{http_host} ^www.vkpluss.ru
    RewriteRule ^(.*)$ http://vkpluss.ru/$1 [R=301,L]
    Уже давно, полгода, не меньше, а склейки нет до сих пор
    У чем дело, подскажите пожалуйста.

    • Ярослав

      Что вы имеете ввиду под склейкой? В результатах выдачи ваш сайт отображается нормально, без www.

      • Думаю Надежда имела ввиду не склейку а автоматическое перенаправление с адреса с www на аналогичный без www. У меня, например, прописан вот такой код и он работает:
        RewriteCond %{HTTP_HOST} ^www.freelly.ru
        RewriteRule (.*) http://freelly.ru/$1 [R=301,L]
        Может быть, у Надежды лишние символы в последней строке прописаны: ^ и $

  • Надежда

    Спасибо всем откливнувшимся, не ожидала даже, нет, лишних символов в последней строке нет, все нормально, просто неправильно понимала значение кода

  • Ох, и боюсь же я трогать свой htaccess файл. Сколько помню после каждой правки сайт просто перестает работать. Уж и с помощью Notepad++ пробовала — все одно и тоже. Иногда возникают подозрения: а не может это случаться из-за несовершенства используемой cms? Понимаю, что мой файл далек от совершенства, но как же его исправить…

  • Денис

    Вопросом настройки htaccess занималась одна контора, сотрудником которой мне было сказано, что появление дублей это серьезная проблема, которую сложно решить. Поизучав этот вопрос, прочитал Вашу статью. Понимаю, что это не сложно. Сегодня же займусь решением этого вопроса.

  • Когда делала блог, просто скопировала htaccess из курса, по которому училась. Потом залезала только раз прописала свой IP. Склейки зеркал у меня нет. Выходит, надо склеивать? делать перенаправления? Действительно полезная статья, все по делу.

    • Ярослав

      Да, Татьяна. Если сейчас зеркала не склеены, следует это сделать.

  • Ивал Торимис

    У меня на сайте ничего этого не было сделано! Оказывается столько ошибок которые влияют на продвижение! Читал статью и вносил изменения!