Яндекс.Метрика

    Песочница

    Проектирование алгоритмов поисковых систем — путь к успеху проектирования сайтов и оптимизации

    Вступление


    Самый простой способ разработки методик продвижения и развития сайта в конкретных ПС – это разработка собственной ПС.
    Я не говорю о реализации сложных алгоритмов, нам нужны абстрагированные решения. Можно просто представить упрощенную модель алгоритма и работать с ней. При этом важно постараться получить все сопутствующие параметры. Например, примерное время на реализацию, нагрузку на сервера и время работы алгоритмов. Измерив эти параметры, можно получить множество дополнительной информации и использовать ее в своих целях. Большинство начинающих вебмастеров и оптимизаторов исходят из понятий «я хочу». Я хочу, чтобы ПС давало большой вес всем ссылкам, я хочу, чтобы неуникальный контент хорошо индексировался и пр. Однако на деле все обстоит иначе, и многие считают это не правильным. В то же время совершенно не задумываются, каким был бы интернет, если бы все их пожелания работали, да еще и с учетом масштаба. Есть только один вариант борьбы — переход на сторону противника, в нашем случае на сторону ПС. Разрабатывая методики и алгоритмы противодействия накруткам, спаму и некачественным сайтам, можно не только найти правильную методологию развития ресурсов, но также воспользоваться найденными уязвимостями в местах, где действительно сложно найти алгоритм решения проблемы поисковыми системами.

    Начну с себя


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

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

    Таким образом, имеем следующую картину:

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

    Получаем первую метрику: количество дублей текста на момент индексации в виде константы.

    Но это лишь техническая сторона текста, кроме нее есть и тематика – это краткий тег, указывающий, о чем повествуется в тексте, поэтому назовем его тематическим тегом. Предположим ПС известно о 10 документах с тематическим тегом «уход за волосами». По сути это 10 одинаковых документов, однако, с технической стороны дублей из них всегда меньше 100%. Следовательно, ПС, аналогично количеству технических дублей из первой метрики, вычисляет и количество тематических дублей для нового документа по имеющейся основной базе.

    Из этого получаем вторую метрику: количество дублей тематического тега документа.

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

    Предположим, что ПС необходимо отранжировать 50 документов с описанным выше тегом «уход за волосами». Для этого построим алгоритм, исходя из найденных выше двух метрик.

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

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


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

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

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

    Итоги


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