Индексы и индексирование: ликбез

Представители поисковых систем так часто утверждали, что «Контент – это король», что большинство нынешних сеошников понятия не имеет о компьютерных науках, лежащих в основе поиска, и занимаются только и исключительно контентом. Как при этом оценивается контент? – А примерно никак: чисто субъективно. В лучшем случае на сравнении со средними показателями по топам (количество знаков, вхождений заданных ключей, самые элитные используют ещё какую-нибудь «глубину и ширину»).

Робот-индексатор пытается разобраться, что за фигню ему принёс робот-краулер
Робот-индексатор пытается разобраться, что за фигню ему принёс робот-краулер

Беда в том, что в оценке страниц, сайтов и размещенного на них контента поисковые системы используют как минимум следующее:

  • Существующий набор статистически значимых данных. Чем популярнее тематика и общий запрос – тем больше данных, тем меньше необходимости в каких-то там расчётах;
  • Чем менее популярна тематика – тем меньше данных, тем больше ресурсов нужно затратить поисковой системе для оценки сайта, и тем выше риск ложных срабатываний.

Срабатываний чего? – Тут, похоже, представители ПС честны с аудиторией: они сами не знают, как всё это работает в точности. Более того: они склонны скрывать реальные данные и попросту привирать, чтобы помешать оптимизаторам.

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

Разберем базу информационного поиска (IR), касающуюся индексов и индексирования.

Индексы и индексирование

Не существует никакого единого «индекса». Индексов много, и они разные. Разные настолько, что даже сами поисковые системы сейчас не могут синхронизировать данные, содержащиеся в этих индексах.

Два базовых типа индексов – это:

  • Обратный индекс, представляющий собой просто список слов, ID и присвоенных этим словам «весов».
  • Документный индекс, в котором содержатся отдельные фрагменты документов или же страницы целиком. То, что называется «поисковым кэшем» – и есть содержимое последней проиндексированной версии документного индекса. Но поисковая система хранит и предыдущие копии, точно так, как любой веб-архив.
Индексы и индексирование: ликбез

Первичным можно считать документный индекс, содержащий скачанную версию определенной страницы сайта в какую-то дату. Никакой оценке и обработке на этой стадии документ ещё не подвергается и сохраняется «как есть», как было доступно роботу без рендеринга Javascript.

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

После этого документ проходит предварительную обработку: преобразовывается в список слов, известный также как «мешок слов» (BoW, или Bag-of-Words). На самом деле «Мешок слов» — это не просто список, а алгоритм, но здесь мы в это углубляться не станем. Содержимое документа на этой фазе нормализуется, формализуется, токенизируется и предстаёт в виде матрицы термины/документы.

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

Обратный индекс

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

Картинка взята со Stack Overflow
Картинка взята со Stack Overflow

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

  • Биграммный индекс. Индекс, состоящий только из униграмм (однословников) не может быть эффективным. Например, вы обращаетесь к поиску с запросом из двух и более слов – и получаете список документов, в которых одно слово из запроса – здесь, второе – там, и т.п. Ни о какой релевантности тут и речи быть не может. И вот тут и используется индекс, в котором содержатся документы с содержанием заданных слов близко друг к другу. Кроме того, ряд терминов представляют собой именно биграммы, их нельзя разделить на более мелкие элементы. Пример: «всемирная паутина». Не надо показывать по такому запросу пауков.
  • Индекс на основе фраз: для большего количества последовательностей слов. Он предназначен для многословных фраз, которые встречаются вместе, и индексирует последовательности из 3 и более слов. Такой индекс может лучше работать с контекстом и обеспечивать более точные результаты поиска. Задумывались, почему запрос в Гугл ограничивается 32 словами, а Вордстат не хранит запросы более 7 слов? – Примерно вот поэтому.
  • Позиционный индекс. Это специальный случай, который был добавлен к индексу для добавления позиций слов в индексе и для индексирования связанных запросов. Перефразируя: учитываются позиции и последовательность слов из запроса в документе. Позиционный индекс является расширением «мешка слов».
  • Зональный индекс собирает компоненты документа, относящиеся к специальным метаданным: автор, заголовок, тело, колонтитул, аннотация, ссылки и т.п. Данные такого рода поисковая система хранит в отдельных индексах, не вместе с другими данными. В том числе – и на отдельных серверах.

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

Важные моменты и базовые термины

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

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

Документ – это объект с уникальным идентификатором и списком полей, содержащих данные. У каждого поля есть имя и тип:

  • Текстовое поле – текстовая строка, в которой можно искать слово за словом.
  • HTML – строка, содержащая теги разметки HTML, поиск возможен только по тексту вне тегов.
  • Числовое поле – число с плавающей запятой
  • Атомарные данные. В теории баз данных это атрибуты, которые хранят единственное значение и не являются ни списком, ни множеством значений. Иными словами, это такие данные, разделение которых на составляющие приводит к потере их смысла с точки зрения решаемой задачи. Например, если атрибут «Цена» содержит значение 15, то попытка разделить его на 1 и 5 приведет к полной бессмыслице.

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

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

Токенизация строковых полей

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

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

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

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

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

Google не токенизирует HTML: разметка игнорируется. Именно с этим связан тот факт, что текстовая оптимизация с разбивкой документа на какие-то зоны не имеет смысла. С этим же моментом связано отсутствие какого-то стандарта разметки, типа страницы по запросу и т.п. В отличие от Яндекс, Google будет ранжировать ту страницу, которую сочтёт релевантной на базе оценки множества разноплановых метрик, а не соответствия какому-то стандарту.

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

Токенизация спецсимволов зависит от используемого языка: то, что годится для английского, не будет работать для русского, китайского или арабского. Эту тему стоит изучить более подробно хотя бы для того, чтобы лучше понимать правила формирования ЧПУ (которые на самом деле не человекопонятные, а машиночитаемые). Для примера: символы подчеркивания (_) и амперсанда (&) не разбивают слова, так что «мой_сайт» в URL машина учтёт, как «мойсайт». А такого слова, разумеется, нет.

Хранение индексов

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

  • Оперативная память (RAM)
  • Твердотельные накопители (SSD)
  • Жёсткие диски (HDD)

Для самого важного контента Google резервирует оперативную память. Это очень малый процент от всего индекса. Большая часть интернета до сих пор хранится на обычных жёстких дисках.

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

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

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

Резюме

Непонимание базовых принципов информационного поиска (IR) и структуры поисковой системы негативно влияет как на оценку реального статуса сайта в поиске, так и на стратегию его продвижения. Пример: сайт не находится по цитате. Это фильтр? – Нет, даже и близко. Речь может просто идти о том, что в индекс, содержащий эти самые цитаты, URL ещё не попал. И не факт, что попадёт, просто фильтр здесь вовсе ни при чём.

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

К слову: отсутствие кэшированной версии страницы вовсе не значит, что страничка сама по себе не в индексе. Тот же Мюллер говорил об этом ещё в 2017, задолго до массового перевода на Mobile-First и других нововведений.

Найдено – не значит просканировано. Просканировано – не значит проиндексировано. Проиндексировано – не значит ранжируется. К этому стоит добавить ещё одну часть: проиндексировано – не значит, что попало во все актуальные индексы и обработано в полном объёме.

А для интересующихся предложу два классических труда на эту тему:

3131
19 комментариев

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

2

Ага. Уровень "Я купил фотоаппарат - я теперь фотограф. У меня есть бормашина - я стоматолог".

5

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

1

@Сломалось почему стали появляться ошибки и вот такое?

Здравствуйте, пока что возможны трудности с доступом. Но это временная мера

3

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

2

Очень интересный материал, мощная теоретическая база, как для учебника