Вступление

Работы по поисковому продвижению или оптимизации сайтов делятся на два этапа:

1. Работа с внутренними факторами;
2. Работа с внешними факторами.

Работа с внешними факторами – это, в первую очередь, работа с внешними ссылками на сайт, которые влияют на такие факторы ранжирования, как Google PageRank™, Яндекс вИЦ, тИЦ. Часто при этом не уделяется должного внимания «внутренним» факторам и техническим аспектам функционирования сайта.

Внутренние факторы

Код страниц

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

* визуальное оформление заголовков и выделений в тексте с помощью тегов <font>;
* позиционирование элементов страницы при помощи большого количества вложенных таблиц;
* «избыточность» кода;
* использование графики вместо текста, например графические кнопки в основном меню;
* игнорирование при верстке CSS.

Остановимся подробнее на элементах, повышающих вес страницы в глазах поисковика.

Тег <title>
Наиболее важной частью документа является тег <title> – заголовок документа. Часто встречающаяся ошибка – одинаковое содержание тега <title> для всех страниц сайта, особенно при использовании шаблонов. Кроме ранжирования документов, содержимое тега <title> влияет на решение пользователя о переходе по ссылке в результатах поиска, так как заголовок используется как текст ссылки. Поэтому заголовку документа следует уделять особое внимание, как на этапе проектировании сайта – возможность изменять текст заголовка отдельно от текста страницы, автоматическое формирование заголовков, в зависимости от содержимого страницы, так и при наполнении сайта – прописывание в заголовках связного текста, насыщенного ключевыми словами и релевантного содержимому страницы.

Мета-теги
Из мета-тегов следует отдельно выделить описание (description) и ключевые слова (keywords). В настоящее время они почти не используются в поисковых системах из-за «замусоривания» этих тегов популярными ключевыми словами, не имеющими отношения к тексту документа. Например, поисковые системы Рамблер и Google никак не учитывают содержимого мета-тега ключевых слов. Однако, забывать об этих тегах полностью не стоит. Так, поисковые системы Яндекс и Google могут использовать содержимое тега мета-описания, как дополнительный текст возле ссылки на страницах результатов поиска (сниппет).

Внутренние заголовки
Внутренние заголовки в тексте разного уровня (<hx>). Внутренние заголовки используются при логическом разбиении документа на несколько частей. При этом каждая часть документа должна иметь свой заголовок или подзаголовок. Именно для этих заголовков и зарезервированы HTML-теги h1-h6. Текст ограниченный этими тегами, имеет больший вес для поисковых систем.

Выделение текста
Дополнительный вес имеет логически выделенный текст. Выделение части текста оформляется с помощью тегов <strong> (<b>) – выделение жирным и <em> (<i>) – выделение курсивом. Следует рекомендовать использовать логическое выделение тегами <strong>, <em>, а не визуальное – <b>, <i>, так как визуальные теги объявлены устаревшими в последних стандартах HTML.

Альтернативный текст для изображений
Основные роботы поисковых систем не запрашивают изображения и не учитывают их при ранжировании, однако дополнительные параметры тега <img> могут учитываться, в первую очередь это касается параметра alt – альтернативного текста. Содержимое этого параметра, для примера, используется Рамблером, как текст страницы, а поисковой системой Google считается текстом ссылки, если с изображения установлена ссылка. Кроме этого параметр alt учитывается сервисом поиска по изображениям, как в Яндексе, так и в Google.

Адреса страниц (URL)
Адреса страниц могут влиять на ранжирование сайта в результатах поиска. Существуют статические и динамические адреса. Динамические адреса возникают при использовании на сайте серверных скриптов на PHP, Perl, ASP, JSP, CFML и характеризуются как расширением файлов (php, pl, cgi, jsp), так и наличием в адресе символов ?, &, =.
В настоящее время основные поисковые системы успешно работают с динамическими страницами, но с некоторыми оговорками. Так, поисковая система Google рассчитывает для динамических страниц значения Google PageRank, но отображает его для «родительской» страницы, отсекая параметры, то есть все, что находится в адресе после знака ?. В некоторых поисковых системах квоты на количество индексируемых страниц отличаются для динамических и статических страниц.
Существует минимум два метода привести адреса страниц к «псевдостатическому» виду: модуль mod_rewrite сервера Apache и обработка ошибки «404 Not Found». Правильное использование любого из этих методов позволяет получить в результате простые, легко запоминающиеся адреса страниц без явно выраженных признаков их динамического происхождения.
Также следует помнить, что поисковая система Google учитывает ключевые слова в названии домена, директорий и файлов.

Структура сайта
Построение правильной структуры сайта, как набора отдельных документов, связанных между собой – важная часть работы по поисковому продвижению. Здесь уместно будет вспомнить «Правило трех кликов», в котором говорится, что любая страница сайта должна быть доступна не более чем в три перехода с главной страницы. Это правило справедливо и для роботов – сайты, разработанные с учетом «Правила трех кликов» быстрее и полнее индексируются поисковыми системами.
Особое внимание в структуре сайта следует уделять главной странице, которая в большинстве случаев имеет наибольший вес, а также карте сайта, с помощью которой можно «подсказать» роботам наиболее важные страницы, равно как и упростить доступ к «глубоким» страницам.

Внутренние ссылки
Внутренние ссылки на другие страницы этого же сайта учитываются поисковыми системами аналогично внешним при расчете некоторых важных характеристик. Например, при расчете Google PageRank учитывается вес ссылающихся страниц, как с других сайтов, так и внутренних страниц этого же сайта. Аналогично учитываются и тексты ссылок других внутренних страниц. Поэтому, прежде чем начинать работу с внешними ссылками, следует провести аналогичную работу внутри сайта, что сделать в большинстве случаев проще и быстрее.

Взаимодействие сайта и роботов поисковых систем
Роботы поисковых систем – это специальные программы, предназначенные для сбора и обработки информации. Роботы поисковых систем можно сравнить со «слепыми пользователями» (blind users), так как роботы не запрашивают файлов звуковых форматов, файлов графики, за исключением специальных роботов, собирающих информацию для сервисов поиска по изображениям. В настоящее время основные поисковые системы поддерживают поиск в файлах Macromedia Flash, документах в форматах PDF, RTF, Microsoft Office. За последнее время поисковые системы Google и Yahoo работают над сервисами поиска видео-информации.
Тем не менее, несмотря на постоянное расширение списка индексируемых форматов, основные ресурсы поисковых систем направлены на индексацию информации в формате HTML.
Каким образом можно отследить роботов поисковых систем? Так как роботы не запрашивают изображений, то большинство широко распространенных счетчиков здесь бессильны. Отследить роботов можно с помощью анализа журналов доступа веб-сервера (лог-файлов. Каждый робот имеет уникальное имя, по которому его можно идентифицировать, например GoogleBot – робот поисковой системы Google, StackRambler – робот Рамблера, BigmirSpider – Бигмира. Некоторые поисковые системы имеют нескольких роботов, например у Яндекса их не менее 6-ти, причем каждый выполняет определенные задачи.
Кроме того робота можно определить по запросам файла исключений – robots.txt.
Анализ поведения роботов на сайте может дать ответы на многие вопросы: почему сайт не индексируется поисковыми системами, почему редко обновляется информация в базе поисковика, какие части сайта индексируются в большем объеме, а какие – почти не индексируются. Кроме того, такой анализ помогает определить проблемные области в программной части сайта.

Управление индексацией сайта
Поведением роботов поисковых систем в пределах сайта можно управлять. Рассмотрим некоторые методы управления роботами поисковых систем.

Запреты индексации
Можно запретить индексацию отдельных страниц, целых разделов сайта, а в некоторых случаях всего сайта полностью. Инструкции о запрещении индексации размещают или в специальном файле исключений – robots.txt, или в специальном мета-теге <META NAME="ROBOTS">. У каждого метода есть свои преимущества и недостатки. С помощью инструкций в файле robots.txt можно запретить как одну страницу, так и группу страниц или даже разделы сайта с сотнями или тысячами документов, при этом роботы поисковых документов даже не будут запрашивать с сервера эти документы. Управление с помощью мета-тегов более гибкое, можно запретить индексацию, но разрешить следовать по ссылкам. Минусом использования мета-тегов можно считать то, что в любом случае робот будет запрашивать документы с сервера.
Существуют специальные расширения как для файла исключений, так и для метатегов. Так, с помощью мета тега <META NAME="GOOGLEBOT" CONTENT="NOARCHIVE"> можно запретить роботу поисковой системы Google сохранять копию страницы в своей базе, дополнительная инструкция Host в robots.txt указывает роботу Яндекса главное зеркало сайта, с помощью инструкции Crawl-delay можно задать временной интервал между запросами для роботов Yahoo и MSN.

If-modified-Since
В стандарте протокола HTTP описан механизм, который позволяет формировать специальный запрос с заголовком If-modified-Since. В этом случае клиент обращается к серверу с «просьбой» выдать документ только в том случае, если он изменялся после заданной даты. В противном случае сервер посылает ответ 304 Not Modified – документ не изменялся, а сам документ просто не выдает. Клиент тогда вправе использовать старую копию документа.
Роботы большинства поисковых систем, как HTTP-клиенты, используют заголовок If-modified-Since в своих запросах. Если документ не изменялся, роботы смогут уделить больше внимания новым документам и документам с изменениями. В случае статических файлов, веб-сервер может сам правильно обработать такие запросы, когда же документы формируются серверными скриптами, сервер самостоятельно не может определить, вносились в документ изменения или нет. В этом случае запросы необходимо обрабатывать программно в серверных скриптах. Корректная обработка запросов с датами изменений документов актуальна для сайтов с большим количеством страниц и позволяет «направлять» роботов на новые и обновленные документы.

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

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

* Использование сессий – робот получает одну и ту же страницу с разными идентификаторами сессий, для поисковой системы это разные страницы;
* Разный порядок параметров у динамических страниц, например page.php?id=1&show=print и page.php?show=print&id=1 – для поисковой системы это также разные страницы;
* Использование ссылок на директорию и на файл по умолчанию в директории, например /dir/, /dir/index.html
* Неправильное применение механизмов перезаписи адресов – mod_rewrite, обработки ошибки 404;
* Ошибки в конфигурации сервера, когда вместо кода 404 (страница не существует), сервер отдает код 200 и стандартную страницу ошибки.

Присутствие на сайте большого количества дубликатов увеличивает нагрузку на сервер и увеличивает объем исходящего трафика, так как робот запрашивает одни и те же страницы по разным адресам, при наличии квоты робот может не добраться до других страниц, несущих смысловую нагрузку.
Отдельно следует отметить механизм Яндекса по удалению дубликатов: когда количество одинаковых страниц достигает для сайта определенного порога, запускается специальная программа, которая удаляет лишние страницы из индекса поисковой системы. Иногда после такой процедуры в индексе просто не оставалось документов с сайта и процесс индексации начинался с самого начала.

Перенаправления (редиректы)
Перенаправления или редиректы используются для того, чтобы перенаправить пользователя на другой адрес (страницу), без его активных действий. Редиректы делятся на два типа:

1. Редирект на стороне клиента;
2. Редирект на стороне сервера.

Редиректы на стороне клиента
Редиректы на стороне клиента выполняются при помощи мета-тега <META http-equiv="refresh" content="5;URL=http://www.site.com/newrl.html"> либо при помощи Javascript. Такие редиректы поисковыми системами не обрабатываются, за некоторыми исключениями. Например, сотрудники Яндекса в свое время заявляли, что редирект при помощи мета-тега с нулевым временем задержки считается аналогом серверному редиректу; простейшие перенаправления при помощи Javascript Google обрабатывает и страницы, на которые перенаправляется пользователь, позже индексируются роботом и попадают в основной индекс поисковой системы.

Редиректы на стороне сервера
Редиректы на стороне сервера выполняются путем выдачи сервером ответа с кодами 301 и 302. Большинство поисковых систем нормально обрабатывают такие редиректы и индексируют страницы, на которые производятся перенаправления.
Использование редиректов на другие страницы того же сайта не рекомендуется, так как каждая поисковая система по разному реагирует на такие перенаправления. Редирект на стороне клиента, особенно при помощи Javascript, может быть поводом для штрафных санкций со стороны поисковых систем.
Однако в определенных случаях редиректы могут быть полезны, например, при переезде сайта на другой адрес или неправильном определении зеркал сайта.

Сессии
Механизм сессий позволяет сохранять информацию о пользователе при переходе от одной страницы сайта к другой, чего не позволяет делать протокол HTTP. При работе с сессиями пользователю присваивается уникальный идентификатор, который затем отслеживается на стороне сервера. Идентификатор хранится у пользователя в Cookie или добавляется как параметр в адрес страницы. Так как роботы поисковых систем не принимают Cookies, идентификатор сессии добавляется в адрес страницы, при этом робот может найти большое количество копий одной и той же страницы с разными идентификаторами сессий. При этом увеличивается нагрузка на сервер, робот многократно индексирует одни страницы и оставляет без внимания другие, часто более важные.
Поисковая система Google до недавнего времени не индексировала страницы с параметром id, считавшемся признаком идентификатора сессии. В настоящее время такие страницы индексируются, но медленно и в небольшом количестве.

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

1. Не добавлять идентификатор сессии в адрес страницы, исправляется в настройках сервера. Минусом можно считать то, что пользователи с отключенными cookies не смогут полноценно работать с сайтом, правда, таких пользователей совсем немного.
2. В скриптах определять робота по IP или User-agent и не запускать для него механизм сессий. Минусом следует считать необходимость поддерживать список роботов в актуальном состоянии.

Использование клиентских скриптов (JavaScript, VBScript)
Использование на сайте скриптов, выполняющихся на стороне клиента (в браузере), не всегда представляет собой проблему. Однако нередки случаи, когда такие скрипты используются при построении элементов навигации на сайте (основное меню), проверке данных в формах, построении ссылок.
Роботы, в большинстве случаев, не выполняют код скриптов на JavaScript и VBScript или выполняют в ограниченном объеме.
Существует большое количество вариантов реализации различных выпадающих меню, чтобы избежать проблем при индексации сайта роботами поисковых систем, следует выбирать такие варианты, где в меню стоят обычные ссылки <a href> и робот может их обнаружить.
При разработке форм данные, введенные пользователями, следует дополнительно проверять на стороне сервера, наблюдались случаи, когда роботы некоторых поисковых систем пытались заполнять формы