Файл 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).
11 октября, 2007 г. в 2:44 pm
Разграничивать доступ по ip, user-agents и тп все-таки идеологически да и просто правильнее при помощи mod_access, а не mod_rewrite.
5 ноября, 2007 г. в 7:41 pm
Ещё желательно бы дополнить, что 301 редирект наиболее часто используют для определения основного зеркала (с www или без www)
21 января, 2008 г. в 3:07 pm
Классная статья! Как раз искал про 301 редирект! Спасибо!
8 мая, 2008 г. в 9:11 pm
Мне статья понравилась, просто дикие вещи творить можно, и кода в несколько раз меньше если писать на php и тому подобных.
15 июня, 2008 г. в 9:09 pm
RewriteEngine on
Надо помозговать !
RewriteBase /
RewriteCond %{REMOTE_ADDR} ^200.35.120.15$
RewriteRule ^.*$ - [F]
Терь до меня вроде бы доехало ! Хотя ...
20 сентября, 2008 г. в 4:21 am
Спасиба за статью, очень понравилась
так же рекомендую прочитать
http://beget.ru/art9.html - Все информация в одном месте
http://beget.ru/art10.html - примеры mod_rewrite
30 сентября, 2008 г. в 3:42 am
Спасибо за статейку про статические ссылки, целый месяц лазил искал как сделать, нигде не мог понять, вот теперь все отлично, спасибо большое!
2 октября, 2008 г. в 3:09 pm
Зашел сюда по запросу чтото вроде "как переадресовать русский трафик через htaccess" . Увы.. именно этого не нашел. Добавьте плис по возможности..
6 октября, 2008 г. в 1:36 pm
Промоутер -> средствами .htaccess это сделать не удастся (либо это будет ну очень жирный файл), нужно GeoIp и через PHP. Если интересно свяжись помогу 9536828
27 октября, 2008 г. в 1:17 pm
Ключевое "на службе у сеошника =)"
18 декабря, 2008 г. в 8:12 pm
спасибо за статью. С .htaccess всегда были траблы, если что то надо было сделать мучался не один день в поисках решения. А тут выложены почти все нужные, рабочие варианты
еще раз сенкс!
23 декабря, 2008 г. в 2:09 pm
Спасибо, статья понравилась,
более подробно о .htaccess и mod_rewrite можно почитать ещё здесь - http://www.inbusiness.net.ru/stati/19/htaccess-i-modrewrite-dlja-novichkov
12 января, 2009 г. в 5:42 pm
Спасибо, особенно понравилось преобразование переменных скрипта, в папки...
14 января, 2009 г. в 11:54 pm
Еще бы для всех поисковиков написали запрет для индексирования, а то только гугл и яндекс...
17 января, 2009 г. в 3:19 am
mozgun, надо будет составить список возможных юзер-агентов
Спасибо за замечание!
4 марта, 2009 г. в 2:19 pm
Вопрос:
Как правильно прописывать адрес IP?
^192.188.10. или ^192\.188\.10\.
21 августа, 2009 г. в 11:58 am
Я так понимаю, что при помощи .htacess можно и 404 страницу убрать? Если я не ошибаюсь это будет выглядеть так : ErrorDocument 404 /vashastranica.html
Если я ошибаюсь поправьте меня
2 сентября, 2009 г. в 8:09 am
Пример есть ссылка типа
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
5 октября, 2009 г. в 12:45 pm
Здравствуйте!
Зашел сюда, чтобы решить следующую задачу. Прошу вашей помощи:
Как при помощи файла .htaccess указать поисковым роботам, чтобы они индексировали в качестве заглавной страницы не index.htm (на которой находится заставка) а, например, следующую, на которой весь основной текст?
16 октября, 2009 г. в 3:39 pm
28 декабря, 2009 г. в 8:31 pm
можно ли используя файл .htaccess указать поисковым системам, чтобы они индексировали в качестве главной страницы не index.html
2 января, 2010 г. в 3:56 pm
6 марта, 2010 г. в 2:22 pm
Да, спасибо большое за информацию.
Интересует вопрос - а роботы поисковые могут как-то пробиться к этому файлу (.htaccess)?
Я думаю такие игры нужно делать очень осторожно, потому что это вроде как клоакинг и за это наказывают (когда поймают).
6 марта, 2010 г. в 4:22 pm
27 августа, 2010 г. в 7:11 pm
Мне хот-есес тоже сослужил добрую службу - с его помощью я "склеил" сайт.
11 апреля, 2011 г. в 1:43 am
Хотел увидеть информацию о максимальном размере файла .htaccess, но её, увы, как и на других блогах, не оказалось...
Иметь дело с файлом приходилось не раз - порой, удавалось решить довольно объёмные задачи, а как-то раз задумался, сколько же может вместиться в один такой файлик, чтобы он корректно считывался веб-сервером...
13 апреля, 2011 г. в 2:01 am
25 апреля, 2011 г. в 9:12 pm
Интересную статью о защите сайта с помощью файла .htaccess нашел здесь: http://mycrimea.su/partners/web/access/