При наблюдении за распределением поисковых запросов по страницам входа на сайты, можно заметить один странный факт - некоторые страницы не находятся в поиске по словам, которые на этих страницах размещены. То есть, на странице существует текст с ключевым словом, но это слово почему-то «не видно» поисковой системе.
После проведения более детального анализа были выявлены те слова, которые на страницах присутствуют, но поисковыми системами не учитываются. Проверка показала, что слова эти написаны с ошибкой, однако ошибкой не явной (когда, например, между слов пропущен пробел), а ошибкой, связанной с версткой страницы.
Так, конструкция вида Оптимизациясайтов приводит к тому, что страницу можно найти только по слову «оптимизациясайтов», и нельзя найти по фразе «оптимизация сайтов».
Для сайтов со сложной версткой, страницы которых содержат много блоков, проблема может быть достаточно серьезной. Судя по количеству найденных в поиске результатов по запросам вида «продажаквартир», «продажаавто» и т.д., подобная «склейка» слов является проблемой для большого количества сайтов.
В связи с этим было решено провести эксперимент и определить, какие HTML-теги с какими разделителями приводят к «склеиванию» рядом стоящих слов, а в каких случаях поисковые системы разделяют слова.
Цель эксперимента:
Определить последовательности HTML-разметки, которые затрудняют или делают невозможной правильную индексацию текста документа.
Проблематика:
Текст является ключевой составляющей для возможности поиска той или иной страницы в интернете, а наличие ошибок в тексте существенно затрудняет индексацию. И если с явными ошибками все понятно, и ПС научились их исправлять и учитывать при выдаче, то неявные ошибки, к каковыми и относится «склеивание» могут доставить кучу неприятностей.
«Склеивание» слов может быть связанно с их ошибочным написанием, с пропущенным пробелом между словами или между знаком препинания и следующим за ним словом, а также с ошибкой в разметке страницы. Как видно, примеров «склеенных» слов много:
Ошибки подобного типа можно разделить на две группы – естественные (опечатки) и системные (вызванные техническими особенностями разметки текста).
Мы обратили внимание, что одна часть тегов разметки однозначно разделяет слова фразы для поисковой системы, а другая часть не разделяет. Это знание некоторые используют для сокрытия от автоматических систем фильтрации слов-маячков – так называемая обфускация кода.
Какие же именно HTML-теги приводят к склеиванию слов? Логическим дополнением к эксперименту будет проверка последовательностей ( . , ? ! : ; n t & nbsp;) с разметкой, которые также приводят к склейке слов.
Для проведения эксперимента были созданы тестовые страницы.
Фразы:
Были взяты наиболее частотные биграммы из Национального корпуса русского языка.
Теги разметки:
, , , , , , , , , ,
,
, , , , , , , , , , , , , , ,
, , , , , ,
, , , , , , , , ,
, , , , , , , ,
Знаки разделители:
"!", "?", ",", ".", ":", ";", "n", "t", " "
Последовательности тегов
слово1[разделитель/пропуск пробела]слово2слово1[разделитель/пропуск пробела]слово2
Проверочные запросы
Yandex
Google
На начальном этапе использовались проверочные запросы без уточнения. Результаты наблюдений по ним были отнесены к не корректны, т.к. поисковые системы показывают результат в случаях частичного совпадения с искомым запросом.
Было принято решение использовать уточняющую формулировку в проверочных запросах к поисковым системам.
Yandex
Google
Выбранные для исследования теги относятся к следующим группам:
Разделители можно группировать следующим образом:
Блочные элементы:
, , , , , , , , , ,
,
, , ,
Ошибка в разметке текста блочными элементами скрывает от поисковой системы фразу, взятую в кавычки. Нет результатов ни с пропуском пробела, ни со знаками препинания, ни с символами переноса строки, табуляция, неразрывный пробел.
При этом поисковые системы находят каждое отдельное слово фразы. Таким образом, можно сделать вывод о том, что блочные элементы делят слова, разделяя сам текст на блоки (пассажи). Каждое отдельное слово попадает в соседние блоки, поэтому они не находятся по строгим запросам, но видны поисковой машине по обычному запросу без кавычек.
HTML5:
, , , , , , , ,
Все ошибки в тегах HTML5 для Google делают фразу в кавычках невидимой. Поисковая система не показала результата ни с одним вариантом размещения.
Yandex, в основном, относится к тегам HTML5 также, как и к блочным, за исключением и
Пропуск пробела:
Yandex находит «слово1слово2», и не находит «слово1[пробел]слово2»
слово1слово2
слово1слово2
слово1слово2
слово1слово2
Знаки препинания:
Yandex находит «слово1слово2», и при этом находит последовательность «слово1[знак препинания]слово2»
слово1[знак препинания]слово2
слово1[знак препинания]слово2
слово1[знак препинания]слово2
слово1[знак препинания]слово2
Специальные разделители:
Yandex НЕ находит «слово1слово2», и находит «слово1[пробел]слово2» .
слово1[разделитель]слово2
слово1[разделитель]слово2
слово1[разделитель]слово2слово1[разделитель]слово2
Строчные элементы:
, , , , , , , ,
, , , , , , , , ,
, , , , , , , ,
Наибольшее количество различных вариантов индексации встречается именно на строчных элементах. Строчные элементы чаще всего используются для стилевого оформления текста, и именно они требуют повышенного внимания.
Стоит сразу отметить, что к тегам , Google относится аналогично блочным. В силу особенностей назначения этих тегов, такое отношение можно считать оправданным.
Пропуск пробела:
Yandex:
склеивает слова, находит «слово1слово2» и не находит «слово1[пробел]слово2», за исключением тега BR. Тег BR однозначно делит слова, Yandex находит «слово1[пробел]слово2» и не находит «слово1слово2».
Google:
Ошибки в разметке тегами - , , , , , , , , , , , , – однозначно разделяют слова, Google находит «слово1[пробел]слово2» и не находит «слово1слово2»
Ошибки в разметке тегами - , , , , , , , , , , – приводят к склейке слов, Google находит «слово1слово2» и не находит «слово1[пробел]слово2».
Блочные элементы:
Эксперимент показал, что проблемы склейки слов на блочных элементах не существует, т.к. страницы находятся по нестрогим запросам.
HTML 5:
Необходимо использовать разделители для тегов и , для предотвращения склейки слов. После знаков препинания в обязательном порядке должен быть пробел.
Строчные элементы:
Необходимо использовать разделители для предотвращения склейки слов. Неразрывный пробел для Yandex не является однозначным разделителем. После знаков препинания должен быть пробел.
Разделители:
Пробел, перенос строки, табуляция,
Примечание:
После знаков препинания обязательно должен быть пробел. Большую значимость имеет пробел после точки, разделяющей предложения, если он пропущен, то для поисковой системы в пассаж войдут два предложения как одно.
Ошибка в HTML коде может быть ложкой дегтя в бочке меда.
Для нахождения описанных выше ошибок в строчных элементах HTML-разметки страниц была создана специальная программа, скачать которую можно здесь.
Автор: Карпович Сергей, Деловой Мир Онлайн
Комментарии