Файл htaccess на службе у seo-оптимизатора | О раскрутке сайта простым языком

DATAWORD - наблюдения оптимизатора
Раскрутка сайта и поисковая оптимизация

 
  

Файл htaccess на службе у seo-оптимизатора

Раздел блога: SEO-приёмы | 5 октября 2007, 23:36

Версия для печати Версия для печати

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

Информация о возможности применения данного файла для SEO либо упоминается вскользь, либо авторы подобных статей теряются в собственных мыслях и о SEO, как о важном аспекте развития проекта, вообще не упоминают.

Оказывается стандарт файла htaccess настолько гибок, что настройки можно производить фактически для любой нетривиальной задачи, которая должна выполняться веб-сайтом. В данном аспекте я искал именно информацию о SEO и возможностях применения файла htaccess для целей оптимизации сайта для поисковых систем.

Ну что же? Попробую собрать своего рода некое небольшое руководство для seo-специалистов.

 У многих сразу возникнет вопрос: "а зачем это надо? Ведь есть файл robots.txt, в котором можно всё указать?". Отвечаю: "Да, такая возможность есть, но стандарт файла robots.txt всё же носит рекомендативный характер.

Поисковые роботы и не только они могут не руководствоваться информацией, опубликованной там.

Стандарт файла htaccess выгодно отличается от стандарта файла robots.txt прежде всего тем, что все директивы обязательны для исполнения, т. к. их исполнение контролируется веб-сервером, а не остаётся на совести ботов.

Данная статья представляет собой набор этапов-вариантов оптимизации сайта для поисковых систем при помощи файла htaccess. Каждый этап - одна небольшая микронастройка, входящая в комплексный список SEO-приёмов для оптимизации ресурса. Описанные методы работы с файлом htaccess работают только в связке с модулем mod-rewrite веб-сервера Apache. Поинтересуйтесь, можно ли на вашем хостинге использовать его, а также изменять настройки конфигурации сервера при помощи файла htaccess.

Этап 1: блокировка доступа к сайту

Для любого сайта избыточный трафик вреден. К тому же многие проекты находятся на хостинговых проектах, которые всё ещё требуют оплату трафика. Да и, к слову, избыточный трафик помимо своей дороговизны прилично нагружает и без того занятый сервер, снижая его работоспособность. Многие проекты в силу различных причин избегают излишнего сканирования себя, отсекая возможность получить доступ "ненужным поисковикам" к ресурсам сайта. (Например, сайт оптимизируется для России, следовательно, трафик с Yahoo не важен ну или любых других причин). Многие сайты пытаются защитить себя от сканирования вредоносными роботами (например, сборщиками спама).

Как реализовать?

Немного базисной информации:
Создайте файл .htaccess (с точкой в начале), после того как вы введёте необходимые директивы, загрузите его на веб-сервер в текстовой форме для того, чтобы ваши настройки смогли вступить в силу (обратите внимание: этот файл служебный, поэтому в обычном режиме он не виден – у вас должна быть активирована опция показа скрытых файлов).

Немного пояснений по синтаксису:

RewriteEngine – ключ к запуску модуля.
RewriteBase указывает на "глобальность" наших изменений (если используется знак «/», значит, настройки будут применены к текущей директории).
Директива RewriteCond ставит условие, при истинности которого будет исполняться наша настройка. В состав этой директивы входит проверочная строка. В данном случае используем переменную сервера %{HTTP_USER_AGENT}, которая выводит юзер-агенты программ, обращающихся к серверу. Далее идёт значение этой переменной, разделённое регулярным выражением ^ начала строки.
RewriteRule выполняет нашу настройку. В данном случае мы запрещаем доступ к серверу. Делается это при помощи регулярных выражений начала строки ^ и конца строки $, а также флага вида действия - [F] (его значение в данном случае -FORBIDDEN).
[OR] используется в случае, если у нас несколько условий обработки действий роботов.

А теперь сама защита от роботов:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^Googlebot
RewriteRule ^.*$ - [F]

В данном случае робот с юзер-агентом Googlebot (сканирующий робот поисковой системы Google) не сможет получить доступ к сайту. На месте Googlebot можно написать любой юзер-агент программы или робота, которого вы не хотите видеть у себя на сайте. Здесь же можно указать и юзер-агенты известных программ-сборщиков спама типа EmailSiphon или ExtractorPro.

А как запретить доступ сразу нескольким роботам?

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^ Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT} ^ Yandex
RewriteRule ^.*$ - [F]

Просто пишем несколько условий подряд через директиву RewriteCond.

Как запретить доступ роботов с определённых IP?

RewriteEngine on
RewriteBase /
RewriteCond %{REMOTE_ADDR} ^200.35.120.15$
RewriteRule ^.*$ - [F]

Меняем условие в директиве RewriteCond, обращаясь к http-заголовку с запросом
удалённого IP-адреса.

Как запретить сразу несколько роботов с одного диапазона IP?

RewriteEngine on
RewriteBase /
RewriteCond %{REMOTE_ADDR} ^200.35.120.
RewriteRule ^.*$ - [F]

Этап 2: делаем удобные URL

Ни для кого не секрет, что динамические адреса сайтов могут плохо индексироваться поисковыми системами. Этому есть различные причины. Например, избыточное количество переменных в URL-строке.

Что с этим делать?

Вариант 1: переписать движок, что сложнее и дольше.
Вариант 2: использовать mod_rewrite, что быстрее и эффективнее.

Воспользуемся вторым вариантом. Допустим, мы имеем адрес вида: http://site.ru/buy.php?act=1
Конечно, было бы очень неплохо иметь что-то вида http://site.ru/buy/1

Как это сделать?

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)buy/(.*)$ $1buy.php?act=$2

Общий синтаксис:

RewriteRule текущий URL перезаписываемый URL

Вызываемый URL разбивается на части. Все, что находится перед "buy", плюс, все, что находится после "buy /" определяется и хранится в этих двух переменных: $1 и $2.

Этап 3: редиректы

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

301 редирект или страница перенесена НАВСЕГДА на другой домен

Метод примечателен тем, что многие поисковые системы, в частности Google, помимо получения полезной информации о смене адреса страницы также переносят и все статические показатели (тИЦ, PR) этой страницы на новый адрес сайта (страницы), ибо, как вы указали, сайт, с которого производится редирект, по-видимому, больше не будет эксплуатироваться

Как реализовать 301 редирект?

Redirect 301 http://www.sait.ru/ http://www.sait1.ru/

Директива Redirect с кодом 301 как раз и отвечает за данный перенос. Состоит из 2 параметров: первый (http://www.sait.ru/) обозначает, с какой страницы следует делать перенос, второй (http://www.sait1.ru/) – на страницу, куда нам нужно переместиться.

302 редирект или страница перенесена ВРЕМЕННО

Собственно, этим всё сказано. Это не значит, что сайт больше существовать не будет. Отнюдь, очень даже будет. Просто, видимо, сайт в данный момент находится не в должном состоянии по стандартному адресу. Раз переадресация временная, то сайт продолжает индексироваться поисковыми системами и выводиться по ключевым поисковым запросам. Однако так происходит не во всех поисковых системах.
Например, "Яндекс" предпочитает не показывать страницы с временным редиректом в поиске до тех пор, пока страница не будет иметь http-статус 200, т. е. нормально отдаваться веб-сервером.

Seo-профи не любят 302 редирект, видать, в виду того, что статические показатели с домена не передаются на новый домен. Однако как принято в сообществе профессионалов, 302 редирект – это плохой кандидат редиректа на новые домены. Используйте его в границах одного домена. Уже были прецеденты. Не рекомендую.

Как реализовать 302 редирект?

Redirect 302 http://www.sait.ru/ http://www.sait1.ru/

Этот редирект от описанного мной выше отличает лишь номер редиректа, а именно цифра 302.



Перейти в начало страницы

Подписаться на rssНравится этот блог?
Подпишитесь на обновления блога (RSS)
.
Подпишитесь на комментарии (RSS).



Количество комментариев: 28

  1. dima:

    Разграничивать доступ по ip, user-agents и тп все-таки идеологически да и просто правильнее при помощи mod_access, а не mod_rewrite.

  2. oqbo:

    Ещё желательно бы дополнить, что 301 редирект наиболее часто используют для определения основного зеркала (с www или без www)

  3. meea:

    Классная статья! Как раз искал про 301 редирект! Спасибо!

  4. Chromanon:

    Мне статья понравилась, просто дикие вещи творить можно, и кода в несколько раз меньше если писать на php и тому подобных.

  5. Ma3au*:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REMOTE_ADDR} ^200.35.120.15$
    RewriteRule ^.*$ - [F]
    Терь до меня вроде бы доехало ! Хотя ... :shock: Надо помозговать !

  6. alexey:

    Спасиба за статью, очень понравилась
    так же рекомендую прочитать
    http://beget.ru/art9.html - Все информация в одном месте
    http://beget.ru/art10.html - примеры mod_rewrite

  7. dron.net:

    Спасибо за статейку про статические ссылки, целый месяц лазил искал как сделать, нигде не мог понять, вот теперь все отлично, спасибо большое! :smile:

  8. Промоутер:

    Зашел сюда по запросу чтото вроде "как переадресовать русский трафик через htaccess" . Увы.. именно этого не нашел. Добавьте плис по возможности..

  9. alexey:

    Промоутер -> средствами .htaccess это сделать не удастся (либо это будет ну очень жирный файл), нужно GeoIp и через PHP. Если интересно свяжись помогу 9536828

  10. Франк:

    Ключевое "на службе у сеошника =)"

  11. SurgX:

    спасибо за статью. С .htaccess всегда были траблы, если что то надо было сделать мучался не один день в поисках решения. А тут выложены почти все нужные, рабочие варианты :smile: еще раз сенкс!

  12. Николай:

    Спасибо, статья понравилась, :smile: более подробно о .htaccess и mod_rewrite можно почитать ещё здесь - http://www.inbusiness.net.ru/stati/19/htaccess-i-modrewrite-dlja-novichkov

  13. CyberX:

    Спасибо, особенно понравилось преобразование переменных скрипта, в папки... :smile:

  14. mozgun:

    Еще бы для всех поисковиков написали запрет для индексирования, а то только гугл и яндекс...

  15. Автор блога Виталий:

    mozgun, надо будет составить список возможных юзер-агентов :) Спасибо за замечание!

  16. Graf:

    Вопрос:
    Как правильно прописывать адрес IP?
    ^192.188.10. или ^192\.188\.10\.

  17. HOK:

    Я так понимаю, что при помощи .htacess можно и 404 страницу убрать? Если я не ошибаюсь это будет выглядеть так : ErrorDocument 404 /vashastranica.html
    Если я ошибаюсь поправьте меня

  18. ИЗЯ ЛЕВКИН:

    Пример есть ссылка типа
    http://rebiznes.ru/index.php?page=2_lugansk.html
    как ее привести к виду
    http://rebiznes.ru/index.php/page=2_lugansk.html
    код ниже не работает, подскажите пожалуста!

    RewriteEngine on
    RewriteBase /
    RewriteRule ^(.*)index/(.*)$ $1index.php?page=$2

  19. Максим:

    Здравствуйте!
    Зашел сюда, чтобы решить следующую задачу. Прошу вашей помощи:
    Как при помощи файла .htaccess указать поисковым роботам, чтобы они индексировали в качестве заглавной страницы не index.htm (на которой находится заставка) а, например, следующую, на которой весь основной текст?

  20. Автор блога Виталий:

    HOK, правильно понимаете.
    Graf, правильно так: ^192.188.10.
    ИЗЯ ЛЕВКИН, подумаю над вашим вопросом.
    Максим, указывайте поисковым системам ссылку на страницу с основным текстом. Также можно на странице с заставкой указать ссылку на страницу с основным текстом. Как вариант, можно написать редирект для User-agent поисковых роботов, но не советую так делать, т. к. метод этот также применяется и в построении дорвеев.

  21. BK-FON:

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

  22. Автор блога Виталий:

    BK-FON

    .HTACCESS - это файл, который позволяет изменять настройки сервера Apache по отношению к конкретной виртуальной директории. Таким образом, вы можете настроить веб-сервер таким образом, чтобы он выводил в качестве главной отличную от index.html страницу для всех пользователей, либо для какого-то конкретного реферрера или пользователя с определённым IP. Можно узнать реферреры поисковых систем и IP их поисковых роботов и уже в файле .htaccess прописать необходимые условия.

  23. Евгений Фоменко:

    Да, спасибо большое за информацию.

    Интересует вопрос - а роботы поисковые могут как-то пробиться к этому файлу (.htaccess)?

    Я думаю такие игры нужно делать очень осторожно, потому что это вроде как клоакинг и за это наказывают (когда поймают).

  24. Автор блога Виталий:

    Евгений Фоменко:

    Файл .htaccess является служебным файлом сервера Apache, получить доступ к нему из браузера невозможно и загрузить по ссылке - тем более, поисковые системы могут разве что наложить санкции на внешнее поведение сервера (например, на редирект), но к самому файлу .htaccess они доступ не имеют.

    Через .htaccess можно делать и много других вещей помимо клоакинга, например, человекоподобные урлы (ЧПУ), когда мы имеем удобный формат обращения к страницам сайта (при условии удаления дублей из индекса ПС).
    Конечно, нужно всё делать с умом, да и вообще нужно всё делать с умом :twisted:

  25. Оливер:

    Мне хот-есес тоже сослужил добрую службу - с его помощью я "склеил" сайт.

  26. Филя:

    Хотел увидеть информацию о максимальном размере файла .htaccess, но её, увы, как и на других блогах, не оказалось...

    Иметь дело с файлом приходилось не раз - порой, удавалось решить довольно объёмные задачи, а как-то раз задумался, сколько же может вместиться в один такой файлик, чтобы он корректно считывался веб-сервером... :roll:

  27. Автор блога Виталий:

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

  28. Сергей:

    Интересную статью о защите сайта с помощью файла .htaccess нашел здесь: http://mycrimea.su/partners/web/access/

www.liex.ru - автоматическое размещение статей с прямыми ссылками

Хотите высказать своё мнение по теме? Пишите!

ВНИМАНИЕ!
Комментарии, которые не несут смысловую нагрузку, могут быть удалены! В URL можно использовать только ссылку на ваш блог или Twitter, ссылки на другие ресурсы могут быть удалены.

Поля, помеченные *, обязательны для заполнения.


Наши партнёры: