Статьи > Аналитика
Gambler / 2005.09.13

О борьбе с поисковиками

В экономику поисковиков я вдаваться не будут, т.к. с точки зрения экономики кто угодно может делать что угодно, пока он не получит за это по зубам (в финансовом плане, разумеется). В должностную философию - ту, которая объясняет, почему кто-то должен делать что-то – тоже не полезу, ибо мало кто интересуется своими долгами, если может их не платить. Это техническая статья, и она не о том, что надо, а о том, что можно и как именно можно.

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

Реальность

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

Проблемы

Пункт первый: русский язык – это вам не английский. В нем много синонимов и нередко встречаются позаимствованные слова. Администрации Яндекса, Рамблера и Апорта это игнорируют и, по-видимому, всерьез считают, что юзеры должны всегда вводить запросы типа «(статья | ревью | обзор | review) игра (sacred | “князь тьмы”)», когда ищут статью по Sacred’у. Разумеется, подобными ужасами никто и никогда не пользуется. И получают пользователи только огрызки всей доступной информации, содержащие точную фразировку запроса. А вебмастер, чтобы его сайт находился, должен каким-то образом запихнуть на каждую страничку все синонимы всех слов гипотетических запросов, по которым эту страничку могут искать. О как! Делать вебмастеру больше нечего.

Пункт второй: ИЦ врет. Для тех кто не знает, ИЦ – это индекс цитируемости, то есть то, сколько ссылок в сети есть на какую-то страничку. Почти все современные поисковики смотрят на этот параметр, но… что оно дает? Если страницу видели десять тысяч человек, десяток из них обязательно оставит где-нибудь ссылки. Это не зависит от содержания. В конце концов, нередко люди линкуют нечто плохое, дабы показать, что оно плохое. А вот на непопулярную страницу ссылаться не будет никто, просто потому что она непопулярна. Статистика. Это во-первых. А ведь нужно учитывать и то, что популярность портит сайты. И что поднимать посещаемость посещаемых сайтов – это немного так нелогично. И что на ag.ru или exler.ru я и без поисковиков зайду, если надо будет.

Пункт третий: одни и те же слова могут обозначать в тексте разные вещи. Поисковые машины для того, чтобы это учесть, уделяют больше внимания заголовкам, ссылкам, title’y и жирному шрифту. Но это далеко не самое лучшее решение. Опять вебмастерам добавляют работы – ключевые слова надо каким-то образом распихивать по «выгодным» местечкам. А сделать это, не уродуя сайта и оставляя в нем некую оригинальность довольно сложно. Особенно если вы используете готовую CMS, которая делает все по-своему.

Пункт четвертый: если я пишу обзор The Fall: Last Days of Gaia, то это не значит, что там будет двадцать раз повторено это название и десять – само слово «игра». Это было бы признаком плохого стиля. Но поисковики так не считают, и им повторение ключевой фразы очень даже нравится. Нет, поймите меня правильно: в общем и целом этот фактор определения релевантности логичен, но подходит он не для всех типов веб-страничек.

Решения

Это было растянутое вступление. А теперь пойдут колонны своевольных мыслей.

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

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

Конечно, кое-как можно фильтровать контекст поиска и при помощи стандартных методов, но по-хорошему этим обязан заниматься поисковик, а не человек. Последний, на мой взгляд, вообще не должен прилагать каких-то усилий при составлении запроса. Взять хотя бы те же синонимы. Вебсайту ничего не стоит автоматически «расширять» поисковые фразы, например заменять «ревью Warcraft 3» на «(ревью|обзор|review) (Warcraft|Варкрафт) (3|III|три)». Это сэкономит время и пользователя, которому не надо будет печатать длинного запроса, и вебмастера, который сможет называть вещи на своем сайте как ему хочется, не подстраиваясь под наиболее популярные запросы. Эффективность поисковика возрастет в разы. Самая большая трудность с «расширением» запросов – это необходимость постоянного обучения машины новым и новым группам синонимов. Но ничего невыполнимого здесь нет. Синонимы можно черпать из тех же самых запросов или, если это кажется слишком неудобным, можно без обиняков просить пользователей указать заменители какого-то слова. То есть, скажем, кто-то ввел «Варкрафт», а поисковик, выдав результаты, говрит: «за варкрафт нынче считаются варкрафт и warcraft; если этого вам не достаточно, впечатайте-ка список дополнительных ассоциаций вот сюда». Если пара десятков человек при этом указывают одно и то же слово, оно начинает ассоциироваться с остальными словами группы.

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

Левила наносят ответный удар

Итак, я сказал, что поисковик должен:
1)Анализировать содержимое веб-страниц, а не просто запоминать их.
2)Анализировать запросы, а не просто сравнивать их с сохраненной информацией о веб-страницах.
3)Анализировать поведение пользователя при поиске.

С пунктом два никаких проблем быть не должно, пункт три требует лишь элементарной защиты от любителей крутой раскрутки, а вот первый постулат в списке имеет довольно сомнительную ценность. Понимаете, в данный момент, рабочих семантических анализаторов сейчас просто не существует. А из реально используемых поисковиками методов определения релевантности даже самые хитрые дают довольно… узколобые результаты. Допустим, для примера, что статья в среднем – это действительно шесть-десять килобайт. Но что тогда делать с маленькими статьями, которые очень похожи на большие новости и записи в ЖЖ? Если ничего не делать, как не делают администрации современных поисковиков, обязательно появится «левило» (неправильное правило; ударение на первом слоге) вебдизайна. Мол, «чтобы ваш сайт находили, надо то-то делать так-то». А какого, спрашивается, черта я должен подгонять размер своих материалов под нужды поискового бота?

Дилемма сложная.

Кроме того, поисковик может рассматривать не отдельные странички, а их совокупность. Если article1.html, article2.html и article34.html – это нормального размера статьи, логично предположить что article*.html – это адрес абстрактной статьи на моем сайте. Поняв это однажды, бот может сделать заметку у себя в базе данных и не ковыряться больше с распознаванием. При этом даже если конкретная article6.html мала размером, поисковик по-прежнему будет знать, что это статья, а не какое-нибудь сообщение конференции.

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

Тут возникает проблема: что делать с маленькими статьями, которые очень похожи на большие новости и записи в ЖЖ? Администрации поисковиков на такого рода вещи обычно закрывают глаза, и в результате появляются всякие «левила» (неправильные правила) вебдизайна. В нашем случае левило выглядело бы следующим образом: «новость должна быть не больше такого-то размера, статья – не меньше такого-то». Ну, смею вам сообщить, мы пришли к той самой проблеме, о которой я говорил в начале этого текста. Какого, спрашивается, черта я должен подгонять размер своих статей под нужды поискового бота? Проблема идеологическая, но решается чисто техническим методом: поисковик может рассматривать не отдельные странички, а их совокупность. Если article1.html, article2.html и article34.html – это нормального размера статьи, логично предположить что article*.html – это адрес абстрактной статьи на моем сайте. Поняв это однажды, бот может сделать заметку у себя в базе данных и не ковыряться больше с распознаванием. При этом даже если article6.html мала размером, поисковик по-прежнему будет знать, что это статья, а не какое-нибудь сообщение конференции. Логично?

Неа, не логично. Потому что URL страницы не имеет реального отношения к ее содержимому или юзеру. Его можно запросто «подделать» для повышения посещаемости - например, именовать все материалы по схеме article*.html, регулярно публикуя крупные (например, сборник новостей за весь месяц) тексты, чтобы остальная мелочь тоже индексировалась как статьи.

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

Долой релевантность?

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

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

Не стоит забывать и о феномене Википедии (если кто не знаком - wikipedia.org). Представьте себе сайт с той же технологической основой – кто угодно может редактировать что угодно - но посвященный исключительно поиску. Мне кажется, такой ресурс был бы намного полезнее и динамичнее существующих каталогов, и мог бы наравне конкурировать с поисковыми машинами. Хм, я могу поспорить даже, что где-то нечто подобное уже есть, но прозябает в безвестности.

Выводы

Выводы из написанного выше мне делать трудно из-за причин, изложенных в самом начале текста. Эта статья – просто полет мысли без места назначения, и заканчиваю я ее не потому, что пришел к какому-то важному заключению, а оттого что устал писать и сбился с мысли. Я не думал о поиске с точки зрения коммерческого сервиса, и прекрасно понимаю, что даже если мои предположения верны, а идеи действенны, то ничего это не изменит. Гугль продолжит приносить миллионы своим создателям, потому что он уже раскручен. А гениальные поисковики, сделанные на основе новаторских алгоритмов, будет прозябать в безвестности ввиду малых баз данных и хилого железа. Я так же знаю, что всякие Яндексы с Рамблерами будут продолжать диктовать форму и содержание сайтов. Это суть посредников – они выживают только если могут в какой-то степени манипулировать и поставщиками услуг, и клиентами. Да к тому же это уже разрослось не в меру, окостенело, стало «большим бизнесом».

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


Комментарии

АвторКомментарий
Akven
2005-09-15 15:31:41
Занятно. Мне понравилось. Но почему у тебя в "Левила наносят ответный удар" идёт повторение текста?
Asstet
2005-09-15 20:17:38
Читая статью, я в своем комментарии думал написать именно то, что упомянуто в главе Выводы. Интересный артикл.
Grav
2005-09-18 07:20:57
Я тоже обратил внимание, но подумал, что это, наверное, фича, а не баг :)
Gambler
2005-09-18 07:39:57
Какого именно текста?
Grav
2005-09-18 09:34:04
"Если article1.html, article2.html и article34.html – это нормального размера статьи, логично предположить что article*.html – это адрес абстрактной статьи на моем сайте. Поняв это однажды, бот может сделать заметку у себя в базе данных и не ковыряться больше с распознаванием. При этом даже если article6.html мала размером, поисковик по-прежнему будет знать, что это статья, а не какое-нибудь сообщение конференции." - встречается дважды.
Gambler
2005-09-25 04:02:20
http://blog.searchenginewatch.com/blog/050923-132042

Ага!!! Муа-ха-ха!