Поисковые системы отдают предпочтение сайтам с валидным кодом, а насколько они сами валидны?
Нет комментариевПоисковые системы относятся более лояльно к веб-ресурсам с валидной версткой, а насколько они сами валидны? Насколько точно поисковики придерживаются спецификаций консорциума W3C. Посмотрим, что ответит online-валидатор на урлы главных страниц поисковых сервисов.
Результат валидации поисковой системы Яндекс
Для примера, проверим индексную страницу Яндекса (yandex.ru). Итак, идем на validator.w3.org закладка Validate by URI. Указываем адрес документа и вот результат:

38 ошибок разметки и 8 предупреждений. Также узнаем, что Яндекс использует UTF-8 кодировку и индексная страница объявлена как документ удовлетворяющий стандарту HTML 4.01 Transitional. Transitional - означает переходный тип документа, он не является строгим и позволяет использовать в документе HTML-инструкции, касающиеся внешнего вида, хотя в стогом соответствии стандарту HTML 4.01 эти инструкции запрещены. Для начала ограничимся рассмотрением ошибок, а ворнинги (предупреждения) пропустим.
При более тщательном просмотре выдачи валидатора, замечаем, что в основном, это ошибки связанные с присутствием в коде закрывающих тэгов без наличия открывающих. К примеру,
…=”javascript:void(0)”>Закрыть</a></div>’:”")+’<div class=”b-suggest-nah”>Включ…
Странно, это серьёзная ошибка верстки и их в данном случае более 30. Неужели Яндекс допустил такую серьёзную ошибку валидации? Что-то здесь не так. Находим заграбенный валидатором кусок ошибочного по его мнению кода, в исходнике, и действительно, обнаруживаем что весь код содержащий ошибки опубликован внутри одного массивного тега <script type="text/javascript"></script> и является частью javascript. Возникает закономерный вопрос, зачем HTML-валидатор копается в коде JAVASCRIPT, если он должен проверять HTML? Непонятно. Но это ещё не всё, оказывается, после изучения строковых данных в javascript содержащих теги, что имеются и открывающие и закрывающие теги. Следовательно, валидатор облажался и бракуем часть результата проверки, и не учитываем подобные ошибки.
Продолжаем. Чтобы завершить проверку валидности HTML-разметки требуется исключить из проверки javascript-код, который несправедливо облаял валидатор. Вместо указания URL страницы, копируем исходный HTML-код в текстовый редактор (блокнот), вырезаем javascript-код, и после этого копируем оставшийся html-текст в форму ONLINE-валидатора, на закладке Validate by Direct Input. Этой веб-формой удобно пользоваться, если проект над которым вы работаете ещё не опубликован в сети Интернет, и находится на вашем локальном веб-сервере. Итак, после очистки html повторяем валидацию и в результате получаем 10 Errors, 12 warning(s). Уже близко к соблюдению стандарта!
Разберем оставшиеся ошибки:
Прежде всего обращаем внимание на первую HTML-директиву !DOCTYPE. Индексная страница Яндекса объявлена как документ удовлетворяющий стандарту HTML 4.01, DOCTYPE Transitional. Transitional - означает переходный тип документа, он не является строгим и позволяет использовать в документе HTML-инструкции содержащие устаревшие теги в целях совместимости со старыми версиями HTML.
- Ошибка использования невалидного атрибута
Line 2, Column 33922: there is no attribute “AUTOCOMPLETE”
…input name=text id=”text”autocomplete=”off”><div id=”hsuggest”class=”b-suggest…Атрибут AUTOCOMPLETE не определен в спецификациях HTML 4.01, XHTML 1.1 и в более ранних версиях, следовательно, его использование в документе стандарта HTML 4.01 Transitional является невалидным, и корректным было бы использование документа HTML5.
- Ещё одна ошибка использования невалидного атрибута
Line 2, Column 45810: required attribute “TYPE” not specified
…dth=”1″ height=”1″ border=”0″/><script>ya_fc_external(’07_2′,’07′,’01′);</scri…Здесь вместо голого тега <script>, должен использоваться тег с обязательным атрибутом type, например, <script type=”text/javascript”>.
- Ошибка отсутствия атрибута ALT
Line 2, Column 45940: required attribute “ALT” not specified
…on:absolute;”src=”//kiks.yandex.ru/fu”/></noscript><div id=”bannerJS”style=”di…В этой ошибке обязательный для изображения атрибут alt не прописан.
- Валидатор снова оплашал
Line 2, Column 48731: general entity “msg” not defined and no default entity
…port.yandex.ru/passport?mode=register&msg=mail&retpath=http://mail.yandex.ru/p…А здесь валидатор вообще учудил - из-за амперсанда в составе URL он принял GET-параметр за ссылку-мнемонику. И таких погрешностей при проверке большинство. Их мы не учитываем.
Итак, от спецификации своего документа на главной странице Яндекс отступил 4 раза. Неплохо. Яндекс - красава!
На очереди младший брат Яндекса - сайт ya.ru
Проверяем ya.ru, и он тоже, при его скромном объёме кода оказался невалидным:

А ошибки такие:
-
Line 1, Column 3750: ID “TEXT” already defined
Это значит что атрибут ID в коде веб-страницы встречается несколько раз, хотя на то он и идентификатор, чтобы быть уникальным. Спецификацию это нарушает, но отображению документа в браузере никак не мешает.
-
Line 1, Column 3820: value of attribute “TYPE” cannot be “SEARCH”; must be one of “TEXT”, “PASSWORD”, “CHECKBOX”, “RADIO”, “SUBMIT”, “RESET”, “FILE”, “HIDDEN”, “IMAGE”, “BUTTON”<input type=”search”>
Значение SEARCH атрибута TYPE тега INPUT соответствует спецификации HTML5, которая на момент публикации этой статьи находилась в стадии разработки, но не соответствует версии 4.0.1.
Осталось проверить на валидность качество html-верстки сайта ARTOX media, нашего куратора в мире СЕО, но следует это делать только после того как завершим seo курсы Artox media, мало ли это им не понравится : ) .