Как работают современные поисковые системы

Как работают современные поисковые системы

В конце 1960-х США боялись, что в случае ядерной войны централизованные системы связи будут уничтожены. Поэтому учёные из DARPA (Агентство передовых оборонных исследований) придумали сеть, которая не имела единого центра — даже если часть узлов выйдет из строя, остальные смогут продолжить работу.

Так в 1969 году появилась ARPANET — первая сеть, которая связала четыре компьютера между собой. По сути, это был интернет в зачатке: компьютеры обменивались данными по весьма примитивному протоколу NCP, который в дальнейшем трансформировался в более продвинутый TCP/IP.

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

В 1983 году ARPANET перешла на протокол TCP/IP, и у каждого компьютера в сети появился свой персональный IP-адрес, и это стало официальным днём рождения Интернета. Компьютерная сеть стала разрастаться

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

Создатель современного интернета Тим Бернерс-Ли

Тогда появляется имя, которое изменило всё — Тим Бернерс-Ли.
В 1989 году он придумал концепцию современного глобального интернета World Wide Web (WWW) — систему гиперссылок и веб-страниц, которые можно просматривать через браузер.

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

И вот тут интернет взорвался. Появились первые сайты, а за ними следом и поисковые системы. Сайтов стало так много, что поисковые системы были жизненно необходимы. Одни из самых первых поисковых систем это были американская Yahoo и Российский Rambler, позже им на смену пришли Google и Яндекс. Существуют и другие поисковые системы, но Google захватил мировой рынок более чем на 80%, а поисковая система Яндекс считается самой технологичной в мире.

Давайте разберем, как именно работают поисковые системы.

На самом деле это очень интересно. В какой-то степени это напоминает холодную войну. Поиск в Google и Яндекс фундаментально устроен одинакого, но примерно после 2010 года, они стали абсолютно разными за счет внедрения собственных алгоритмов ранжирования.

Но как же всё-таки устроена работа поисковой системы?

Поисковые системы состоят из 5-и отдельных программных компонентов:

  1. Cистема выдачи результатов – извлекает результаты поиска из базы данных.
  2. Паук (он же Spider) – это программа, которая скачивает веб-страницы. Она работает точно так же как Ваш браузер, когда вы соединяетесь с веб-сайтом и загружаете страницу. То же действие (скачивание) вы можете наблюдать, когда просматриваете некоторую страницу, выбирая команду “Просмотр HTML-кода” или нажимаете комбинацию клавиш CTRL+U в своём браузере.
  3. Краулер (или странствующий паук) – программа, которая автоматически проходит по всем ссылкам, найденным на странице. Краулер выделяет все ссылки присутствующие на страницы. Его задача – определить, куда дальше должен идти паук, основываясь на ссылках или исходя из заранее заданного списка адресов, который принято называть “Картой сайта”. Краулер, следуя по найденным ссылкам, осуществляет поиск новых документов, еще неизвестных поисковой системе.
  4. Индексатор (Indexer) разбирает страницу на различные её части и анализирует их. Элементы типа заголовков страниц, заголовков, ссылок, теста, структурных элементов, и других частей, которые вычленяются и анализируются.
  5. База данных (Database) – хранилище всех данных которые поисковая система скачивает и анализирует. Она часто требует огромных ресурсов.

Неверно считать, что поисковые машины сразу ищут сайт, как только Вы ввели ключевое слово в запросе. Поисковик не просматривает весь интернет в поисках нужного запроса. Он может искать только в пределах собственной базы данных (то есть в пределах индекса). Количество и новизна данных определяется тем, как часто эта база данных обновляется. Такое обновление базы данных в SEO’шных кругах принято называть апдейтом.

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

Например, предположим, что индексатор зашел на сайт новостного агентства Интерфакс и вычитывает новость про разработку сайтов. Затем он переходит на сайт маркетинговой компании и читает статью про разработку сайтов. И тот и тот текс он разбирает на отдельные слова, к примеру в первом случае слово “заказать” он встретил только 3 раза, во втором случае 7 раз. Далее фразу “разработку сайта” в первом случае 2 раз, а во втором 6.

А теперь представим, что пользователь стал вбивать в поисковую строку ключевую фразу “заказать разработку сайта”. Поисковик сначала обращается к своей базе, ищет по своему внутреннему каталогу все возможные совпадения, в итоге находит страницу от Интерфакса и страницу от веб-студии и входе нехитрого математического сравнения принимает решение в ТОП-1 выдачи показать сначала страницу от веб-студии, так как она более релевантна, и уже в ТОП-2 выдать страницу от Интерфакса. По мнению поисковика, релевантность рассчитывается из количества совпадений слов. На странице веб-студии было больше совпадений по словам, значит она должна быть более полезной для пользователя.

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

Затем в интернет в 2000-м году произошел бум доткомов, и все вдруг захотели вывести свой бизнес в интернет и начать там торговать. Интернет-аудитория росла, бизнес массово перебирался из оффлайна в онлайн и началась жесткая конкуренция. А там где есть конкуренция – есть деньги. Появились специальные люди, которые за деньги оказывали услуги продвижения сайта на поиске, речь конечно о первых SEO-специалистах. Люди, которые изучали работу поисковых систем, высматривали их закономерности и слабые места в логике алгоритмов, которые эксплуатировали и делали так, чтобы их клиенты занимали первые строчки на поиске по необходимым ключевым словам.

Например. Какая-то веб-студия занимает первое место в выдаче по запросу “заказать разработку сайта”. Хм… а давайте посчитаем количество слов на его странице, а на своей сделаем всё тоже самое, но количество вхождений ключевого запроса сделаем в разы больше. И это действительно работало. Давайте теперь разберемся с терминологией.

Как мы уже знаем, поисковая система построена на базе 5 программных компонентов, работа которых может улучшаться с внедрением особых алгоритмов, всё это в совокупности можно назвать как «Поисковый движок» (Search Engine). Люди, которые знают как работает поисковый движок, приводят сайт в оптимальный вид, то есть осуществляют оптимизацию сайта в соответствии с тем как работает поисковый движок.

И этих людей называют как SEO-специалисты (Search Engine Optimization). SEO-специалисты занимаются оптимизацией сайтов, они не занимаются оптимизацией поисковых систем. Оптимизацией поисковой системы занимается инженерная группа, которая работает в штате компании, которой принадлежит та или иная поисковая система. Это важно понимать и разделять.

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

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

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

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

Кстати HTML — это и есть тот самый язык гипертекстовой разметки. Языком программирования его конечно называть было бы неправильно. Почему он язык гипертекстовой разметки? Потому что интернет представлен в виде текста и ссылок, а кликабельная ссылка является гипертекстом, потому что при клике на нее пользователь снова попадает на текст, но уже на другой. Ну и получается так, что язык выстроен вокруг текста и ссылок, вернее вокруг его разметки, красивого и удобного его оформления для пользователя. Этот язык придумал уже известный нам ранее Тим Бернерс-Ли.

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

Кстати предшественником HTML был язык SGML, собственно Тим Бернерс-Ли именно оттуда взял многие элементы, которые и по сегодняшний день наследуются. 

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

По этому, даже если где-то есть синтаксические ошибки, индексатор все равно поймет, что сверстано на странице.

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

Да, именно для робота, а не для человека. Потому как на заре SEO-оптимизации, SEO’шники оптимизировали сайты исключительно в угоду робота, а не пользователя. И это было очень логично, какой смысл делать сайт для людей если он не будет ранжироваться высоко? А если он будет ранжироваться высоко, то может быть на сайт всё же зайдет целевой пользователь и может быть что-то купит. Такая концепция в умах оптимизаторов жила реально долго, ровно до того момента пока поисковая выдача не стала персонализированной, но до этого мы еще дойдем, а пока давайте вернемся к индексатору, который развивался не только по логике своей эволюции, но и из-за SEO-специалистов, которые уже активно практиковали манипуляции поисковой выдачи.

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

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

SEO’шники в этот момент смекнули и стали создавать огромное количество сайтов для ссылок. Инженеры поисковой системы поняли, что этого недостаточно, что надо вносить какие-то коррективы в алгоритм. Теперь они ввели такое понятие как авторитет внешних ссылок. Это значит, что на сайты, которые ссылаются на продвигаемый сайт, на них тоже должны ссылаться другие сайты, чтобы определить конечный авторитет продвигаемого сайта.

SEO’шники глядя на такое, стали своими сайтами ссылаться не только на продвигаемый сайт, но и стали массово ссылаться между своими сайтами.

Инженеры поиска, это увидели, и снова внесли коррективы в алгоритм. Теперь считается, что если у сайта много исходящих ссылок, то это плохой сайт, низкокачественный и вообще относится к категории как спамный, его еще называют как линкферма или линкопомойка. Такое новшество удорожило работу SEO’шников, ведь теперь пришлось создавать больше сайтов и больше тратить на их содержание. Эта бесконечная гонка продолжается и по сегодняшний день к ней мы еще вернемся, но тут я должен отметить. Что не смотря на то, что поисковые системы борясь с хитростями SEO’шников становились только лучше, качество поиска улучшается с каждым днем благодаря именно SEO-специалистам и это неоспоримый факт. Да и бюджет на продвижение тоже увеличивается — это факт, так как с усложнением алгоритмов, продвигать сайты становится труднее, да тут еще и дикая конкуренция между сайтами, в общем бюджеты на продвижение растут как на дрожжах.

Я совсем забыл про индексатор, о котором мы говорили ранее. Ну так вот, когда он разбивает на блоки страницу, для большего понимания о чем в ней пойдет речь, он обращает внимание на блок Head, внутри которого есть мета-теги, такие как Title, Description и Keywords.

Это очень старые теги языка HTML, именно на них в первую очередь обращает внимание поисковик, когда начинает читать страницу.

Тег Title он же «Заголовок» является самым важным. Он даёт понимание пользователям и поисковикам о чем дальше пойдёт речь на странице. Как правило, длина заголовка не превышает 60 знаков.

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

Мета-тег Description является кратким описанием страницы, его длина не превышает 120 знаков. Этот мета-тег так же предполагается для поискового робота и человека. Поисковая выдача на основе Title и Description формирует сниппет и представляет пользователю страницу выдачи ТОП-10. Обратите внимание, на слайде, я подсветил, где у нас показано отображение Title, а где Description.

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

Поле для Description, SEO’шники уже заполняют без яркого вхождения ключевых слов. И уже прописывают его в сторону маркетинговой привлекательности, пытаясь добавить туда призывы к действию или персональные выгоды для пользователя. Но это поле не оставляют пустым. Что я не могу сказать про поле мета-тега Keywords.

Мета-тег Keywords на сегодня считается устаревшим, потому как поисковые системы Яндекс и  Google от него отказались, а если быть точным, то не берут этот тег во внимание. Примечательно, что в этой ситуации SEO-специалисты разделились на 2 лагеря. Одни считают, что уже нет никакого смысла заполнять это поле и оставляют его пустым, ведь поисковые системы его больше не учитывают. Другие наоборот, продолжают его заполнять по всем правилам, как ранее. Потому что считают, что это временное явление, и данный мета-тег в скором времени будет снова учитываться, а если так произойдет, то не придется в срочном порядке заполнять эти пустые поля по всему сайту.

Добавлю, что многие популярные расширения для известных CMS оставили поле Keywords для заполнения. Потому как есть и другие, менее популярные или региональные поисковые системы, которые по-прежнему учитывают этот тег.

Доподленно неизвестно, продолжают ли Яндекс и Google читать сам текст в поле Keywords или это поле полностью не берется во внимание.

Роман Бондарь

Более 15 лет работаю с сайтами, SEO и веб-проектами. Параллельно всегда занимался безопасностью сайтов и цифровых активов, понимая, как легко потерять доход из-за ошибок, уязвимостей и неправильных решений. Пишу о деньгах, интернете и рисках так, как они выглядят в реальности — без теории, обещаний и иллюзий.