DATAWORD - наблюдения оптимизатора - https://dataword.info

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

Опубликовано октября 5, 2007 @ 11:36 pm в разделе SEO-приёмы | 28 Comments

Во многих информационных материалах, которые мне когда-либо приходилось читать об этом служебном файле веб-сервера 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.


Статья напечана с сайта DATAWORD - наблюдения оптимизатора: https://dataword.info

Адрес статьи: https://dataword.info/htaccess-file-and-seo.php