Как работают поисковые системы — сниппет, алгоритм обратного поиска, индексация страниц и особенности работы Яндекса

8 Июль, 2010

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Занимаясь SEO или, иначе говоря, поисковой оптимизацией, как на профессиональном уровне (продвигая за деньги коммерческие проекты), так и на любительском уровне (самостоятельная раскрутка сайта описанная мною тут), вы обязательно столкнетесь с тем, что необходимо знать принципы работы поисковиков в России и интернете в целом для того, чтобы успешно оптимизировать под них свой или чужой сайт.

Врага, как говорится, надо знать в лицо, хотя, конечно же, они (для рунета это Яндекс и лидер мирового поиска Google.ru, про которого мы говорили здесь) для нас вовсе не враги, а скорее партнеры, ибо их доля трафика является в большинстве случаев превалирующей и основной. Есть, конечно же, исключения, но они только подтверждают данное правило.

Что такое сниппет и принципы работы поисковиков


Но тут сначала нужно будет разобраться, а что такое сниппет, для чего он нужен и почему его содержимое так важно для оптимизатора? В результатах поиска располагается сразу под ссылкой на найденный документ (текст которой берется из метатега TITLE, о важности которого я здесь уже писал):

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

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

Но есть вероятность, что именно содержимое тега Description иногда может быть использовано (особенно в Google) в качестве сниппета. Конечно же, это еще будет зависеть и от того поискового запроса, в выдаче которого он показывается.

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

Поэтому не ленимся и заполняем содержимое тега Description для каждой статьи. В WordPress это можно сделать, если вы используете описанный тут плагин All in One SEO Pack (а его использовать я вам настоятельно рекомендую).

Если вы фанат Джумлы, то можете воспользоваться этим материалом — Настройка мета-данных в Joomla (мета-теги DESCRIPTION, KEYWORDS, TITLE и ROBOTS).

Но сниппет нельзя получить из обратного индекса, т.к. там хранится информация только об использованных на странице словах и их положении в тексте. Вот именно для создания сниппетов одного и того же документа в разных поисковых выдачах (по разным запросам) наши любимые Яндекс и Гугл, кроме обратного индекса (нужного непосредственно для ведения поиска — о нем читайте ниже), сохраняют еще и прямой индекс, т.е. копию веб-страницы.

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

Т.о. получается, что поисковики хранят в своей базе и прямой, и обратный индекс веб-страницы. Кстати, на формирование сниппетов можно косвенно влиять, оптимизируя текст веб-станицы таким образом, чтобы алгоритм выбирал в качестве оного именно тот фрагмент текста, который вы задумали. Но об этом поговорим уже в другой статье рубрики Продвижение сайтов (SEO и SMO)

Как работают поисковые системы в общих чертах

Суть оптимизации заключается в том, чтобы «помочь» алгоритмам поисковиков поднять страницы тех сайтов, которые вы продвигаете, на максимально высокую позицию в выдаче по тем или иным запросам.

Слово «помочь» в предыдущем предложении я взял в кавычки, т.к. своими оптимизаторскими действия мы не совсем помогаем, а зачастую и вовсе мешаем алгоритму сделать полностью релевантную запросу выдачу (о загадочных словах релевантность, ранжирование и прочих можно почитать здесь).

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

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

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

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

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

Во-вторых, стоит остановиться на алгоритмах (способах) поиска информации в собранной базе документов.

Алгоритмы прямых и обратных индексов


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

Поэтому для эффективной работы с большими объемами данных был разработан алгоритм обратных (инвертированных) индексов. И, что примечательно, именно он используется всеми крупными поисковыми системами в мире. Поэтому на нем мы остановимся подробнее и рассмотрим принципы его работы.

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

Слова в таких списках (индекс-файлах) располагаются в алфавитном порядке и рядом с каждым из них указаны в виде координат те места в вебстранице, где это слово встречается. Кроме позиции в документе для каждого слова приводятся еще и другие параметры, определяющие его значение.

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

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

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

Математическая модель используемая для ранжирования

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

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

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

Поисковая система должна не только предоставить список всех веб-страниц, на которых встречаются слова из запроса. Она должна предоставить этот список в такой форме, когда в самом начале будут находиться наиболее соответствующие запросу пользователя документы (осуществить сортировку по релевантности). Эта задача не тривиальна и по умолчанию не может быть выполнена идеально.

Кстати, неидеальностью любой математической модели и пользуются оптимизаторы, влияя теми или иными способами на ранжирование документов в выдаче (в пользу продвигаемого ими сайта, естественно). Матмодель, используемая всеми поисковиками, относится к классу векторных. В ней используется такое понятие, как вес документа по отношению к заданному пользователем запросу.

В базовой векторной модели вес документа по заданному запросу высчитывается исходя из двух основных параметров: частоты, с которой в нем встречается данное слово (TF — term frequency) и тем, насколько редко это слово встречается во всех других страницах коллекции (IDF — inverse document frequency).

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

Естественно, что различные поисковики, кроме параметров TF и IDF, используют множество различных коэффициентов для расчета веса, но суть остается прежней: вес страницы будет тем больше, чем чаще слово из поискового запроса встречается в ней (до определенных пределов, после которых документ может быть признан спамом) и чем реже встречается это слово во всех остальных документах проиндексированных этой системой.

Оценка качества работы формулы асессорами

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

Для этих целей используются специально обученные люди — асессоры, которые просматривают выдачу (конкретно той поисковой системы, которая их наняла) по различным запросам и оценивают качество работы текущей формулы.

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

Основными критериями в оценке качества работы формулы являются:

  1. Точность выдачи поисковой системы — процент релевантных документов (соответствующих запросу). Чем меньше не относящихся к теме запроса вебстраниц (например, дорвеев) будет присутствовать, тем лучше
  2. Полнота поисковой выдачи — процентное отношение соответствующих заданному запросу (релевантных) вебстраниц к общему числу релевантных документов, имеющихся во всей коллекции. Т.е. получается так, что во всей базе документов, которые известны поиску вебстраниц соответствующих заданному запросу будет больше, чем показано в поисковой выдаче. В этом случае можно говорить о неполноте выдаче. Возможно, что часть релевантных страниц попала под фильтр и была, например, принята за дорвеи или же еще какой-нибудь шлак.
  3. Актуальность выдачи — степень соответствия реальной вебстраницы на сайте в интернете тому, что о нем написано в результатах поиска. Например, документ может уже не существовать или быть сильно измененным, но при этом в выдаче по заданному запросу он будет присутствовать, несмотря на его физическое отсутствие по указанному адресу или же на его текущее не соответствие данному запросу. Актуальность выдачи зависит от частоты сканирования поисковыми роботами документов из своей коллекции.

Как Яндекс и Гугл собирают свою коллекцию


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

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

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

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

Есть ряд особенностей, связанных с индексацией документов в сети (напомню, что мы уже обсуждали здесь запрет индексации через robots txt).

Первой особенностью можно считать то, что кроме обратного индекса, который создается из оригинального документа скачанного из сети, поисковая система сохраняет еще и его копию, иначе говоря, поисковики хранят еще и прямой индекс. Зачем это нужно? Я уже упоминал чуть ранее, что это нужно для составления различных сниппетов в зависимости от введенного запроса.

Сколько страниц одного сайта Яндекс показывает в выдаче и индексирует

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

Это было одно из основополагающих правил Яндекса. Если даже на одном сайте найдется сотня релевантных заданному запросу страниц, в выдаче будет присутствовать только один (самый релевантный).

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

Однако, спешу поправиться, ибо когда дописал эту статью узнал новость, что оказывается Яндекс стал допускать отображение в выдаче второго документа с того же ресурса, в качестве исключения, если эта страница окажется «очень хороша и уместна» (иначе говоря сильно релевантна запросу).

Что примечательно, эти дополнительные результаты с того же самого сайта тоже нумеруются, следовательно, из-за этого из топа выпадут некоторые ресурсы, занимающие более низкие позиции. Вот пример новой выдачи Яндекса:

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

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

Для проектов с доменным именем второго уровня, например, KTONANOVENKOGO.RU, максимальное количество страниц, которое может быть проиндексировано зеркалом рунета, находится в диапазоне от ста до ста пятидесяти тысяч (конкретное число зависит от отношения к данному проекту).

Для ресурсов с доменным именем третьего уровня — от десяти до тридцати тысяч страниц (документов).

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

Поддомены для домена второго уровня могут выглядеть так: JOOMLA.KTONANOVENKOGO.RU. Количество поддоменов для второго уровня, которое может проиндексировать Яндекс, составляет где-то чуть более 200 (иногда вроде бы и до тысячи), поэтому таким нехитрым способом вы сможете загнать в индекс зеркала рунета несколько миллионов вебстраниц.

Как Яндекс относится к сайтам в не русскоязычных доменных зонах

В связи с тем, что Яндекс до недавнего времени искал только по русскоязычной части интернета, то и индексировал он в основном русскоязычные проекты.

Поэтому, если вы создаете сайт не в доменных зонах, которые он по умолчанию относит к русскоязычным (RU, SU и UA), то ждать быстрой индексации не стоит, т.к. он, скорее всего, его найдет не ранее чем через месяц. Но уже последующая индексация будет происходить с той же частотой, что и в русскоязычных доменных зонах.

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

Логика работы поисковых систем по переиндексации страниц сводится примерно к следующему:

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

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

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

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

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Еще:

Рубрики :Учимся нравиться Яндексу и Google

Комментарии и отзывы

Kaerdan

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

А в некоторых местах, мне кажется, вы сами можете себя поправить.

Все равно спс за статью.

Bogdan

Я очень извиняюсь за вопрос не по теме, но каким хостингом вы пользуетесь??? Если не трудно, дайтЕ название или ссылку и какой тариф!=) Спасибо.

Виктор

Браво! Как всегда, все в тему и по полочкам.

bescom

Хочу немного добавить и поправить:

1. поисковые системы индексируют документы прямой видимости, которые может увидеть любой пользователь интернета — не всегда так. Некоторые CMS из коробки содержат пользователей — ботов поисковиков. А простому посетителю без регистрации на таких сайтах доступ может быть ограничен. Пример — форум PhpBB.

2. Обращаю ваше внимание на такую особенность работы поисковой системы Яндекс, как наличие в поисковой выдаче по заданному запросу всего лишь одного документа с каждого сайта. Такого, чтобы в поисковой выдаче присутствовали на разных позициях два документа с одного и того же сайта быть не могло до недавнего времени. Это было одно из основополагающих правил Яндекса — Яндекс просто тупо отстает от Гугля, причем не только в правильности работы поисковых механизмов, но и в понимании ситуации, что и демонстрировала эта его поза — «не буду показывать две страницы». Хоть и не в этом соль, однако правда дороже.

Bogdan

Дмитрий: Спасибо за ответ!

Bogdan

Дмитрий: Ааааа и еще вопрос, ааа хостинг и какой тариф, или сервер у вас выделенный???

Dkflbvbh

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

Sl1ng3R

Спасибо. Давно хотел узнать поподробнее как все же эта «выдача» работает )

Алексей

Благодарю за данную статью.Очень интересно было читать и вконце было ясно как же работает поисковик 🙂

Reklaman

Фотка порадовала — математическая модель черного ящика, этакого чемоданчика с непонятным содержимым.

Александр

bescom и Дмитрий!

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

Денис

По мне так просто все сказано как надо,может что то и не учтено но,изложено грамотно,убрал в закладки,буду изучать!

Марина

Здравствуйте! Вопрос об индексации livejournal.com в Яндексе. Любой блог в жж является поддоменом жж. Получается, 200 страниц + максимум 150 000 для домена второго уровня. В сумме — 150 200 страниц для жж?

Если я веду блог на этой платформе, то мне лучше переехать на свой домен для лучшей индексации? Или все равно?

Владимир_М

Я тоже взял в Закладки и тоже буду изучать 🙂 Спасибо.

А вот вопрос. У меня туча статей за несколько лет. DESCRIPTION не заполнял никогда. Нужно ли, имеет ли смысл заняться этим? Заполнением тега у старых статей?

Марина

Хочу задать вопрос по плагинам.Я-начинающий сайтостроитель. Делаю сайт для агентства недвижимости. Никак не получается выйти по ссылке сразу на галерею фото(сначала открывается страница,где расположена галерея да и рубрика тогда присутствует). Сейчас стоит плагин Lightbox Gallery.Пример:сайт foto1.naidu-kvartitu.com.Сейчас на странице ДОМА и ДАЧИ по ссылке видна галерея ,но в рубрике, а мне хотелось уйти просто в галерею фото. Может быть надо использовать какой-то другой плагин ? Подскажите,пожалуйста.

Lina

Дмитрий, добрый день! Внезапно возникла проблема со сниппетом. CMS — WORDPRESS, установлен плагин All in One SEO, в строке description следующее: «Уроки вождения для начинающих. Подготовка к экзаменам в ГИБДД. Упражнения на площадке. Практика вождения в городе. Правила дорожного движения.» А в сниппете появляется текст последнего поста. Помогите, пожалуйста! Никак не могу найти ошибку!

Спасибо!

PS. Извините, забыла сам сайт: vodimlegko.com

Инна

Кто-нибудь знает где расположены мета теги в CMS Drupal? как там редактировать мета данные?

Дмитрий

Статья хорошая, за нее большое спасибо.

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

13.10.2013 18.10

Подписаться не комментируя