Валидность кода – что это, и как ее проверить? Нужна ли HTML-валидация?! Что такое валидность кода

Проверка валидности HTML кода сайта обязательно входит в мой . Но не нужно переоценивать значимость ошибок валидации на SEO продвижение — она очень мала. По любой тематике в ТОП будут сайты с большим количеством таких ошибок и прекрасно себе живут.

НО! Отсутствие технических ошибок на сайте является фактором ранжирования, и поэтому пренебрегать такой возможностью не стоит. Лучше исправить, хуже точно не будет. Поисковики увидят ваши старания и дадут маленький плюсик в карму.

Как проверить сайт на валидность HTML кода

Проверяется валидация кода сайта с помощью онлайн сервиса W3C HTML Validator . Если есть ошибки, то сервис выдает вам список. Сейчас я разберу самые распространенные типы ошибок, которые я встречал на сайтах.

  • Error: Duplicate ID min_value_62222

И за этой ошибкой такое предупреждение.

  • Warning: The first occurrence of ID min_value_62222 was here

Это значит, что дублируется стилевой идентификатор ID, который по правилам валидности html должен быть уникальным. Вместо ID для повторяющихся объектов можно использовать CLASS.

Исправлять это желательно, но не очень критично. Если очень много таких ошибок, то лучше исправить.

Аналогично могут быть еще такие варианты:

  • Error: Duplicate ID placeWorkTimes
  • Error: Duplicate ID callbackCss-css
  • Error: Duplicate ID Capa_1

Следующее очень распространенное предупреждение.

  • Warning: The type attribute is unnecessary for JavaScript resources

Это очень частая ошибка при проверке валидации сайта. По правилам HTML5 атрибут type для тега script не нужен, это устаревший элемент.

Аналогично такое предупреждение для стилей:

  • Warning: The type attribute for the style element is not needed and should be omitted

Исправлять эти предупреждения желательно, но не критично. При большом количестве лучше исправить.

  • Warning: Consider avoiding viewport values that prevent users from resizing documents

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

Я считаю это предупреждение очень нежелательным, для пользователя неудобно, это минус к поведенческим. Устраняется удалением этих элементов — maximum-scale=1.0 и user-scalable=no.

  • Error: The itemprop attribute was specified, but the element is not a property of any item

Это микроразметка, атрибут itemprop должен находиться внутри элемента с itemscope. Я считаю эту ошибку не критичной и можно оставлять как есть.

  • Warning: Documents should not use about:legacy-compat, except if generated by legacy systems that can’t output the standard doctype

Строка about:legacy-compat нужна только для html-генераторов. Здесь нужно просто сделать но ошибка совсем не критичная.

  • Error: Stray end tag source

Если посмотреть в коде самого сайта и найти этот элемент, видно, что одиночный тег прописан как парный — это не верно.

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

  • Error: An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images

Все картинки должны иметь атрибут alt, я считаю эту ошибку критичной, ее нужно исправлять.

  • Error: Element ol not allowed as child of element ul in this context. (Suppressing further errors from this subtree.)

Здесь не верно прописана вложенность тегов. В

    должны быть только
  • . В данном примере эти элементы вообще не нужны.

    Аналогично могут быть еще такие ошибки:

    • Element h2 not allowed as child of element ul in this context.
    • Element a not allowed as child of element ul in this context.
    • Element noindex not allowed as child of element li in this context.
    • Element div not allowed as child of element ul in this context.

    Это все нужно исправлять.

    • Error: Attribute http-equiv not allowed on element meta at this point

    Атрибут http-equiv не предназначен для элемента meta, нужно убрать его или заменить.

    Аналогичные ошибки:

    • Error: Attribute n2-lightbox not allowed on element a at this point.
    • Error: Attribute asyncsrc not allowed on element script at this point.
    • Error: Attribute price not allowed on element option at this point.
    • Error: Attribute hashstring not allowed on element span at this point.

    Здесь также нужно или убрать атрибуты n2-lightbox, asyncsrc, price, hashstring или заменить их на другие варианты.

    • Error: Bad start tag in img in head

    Или вот так:

    • Error: Bad start tag in div in head

    Тегов img и div не должно быть в . Эту ошибку нужно исправлять.

    • Error: CSS: Parse Error

    В данном случае здесь не должно быть точки с запятой после скобки в стилях.

    Ну такая ошибка, мелочь, но не приятно) Смотрите сами, нужно убирать это или нет, на продвижение сайта никакой совершенно роли не окажет.

    • Warning: The charset attribute on the script element is obsolete

    В скриптах уже не нужно прописывать кодировку, это устаревший элемент. Предупреждение не критичное, на ваше усмотрение.

    • Error: Element script must not have attribute charset unless attribute src is also specified

    В этой ошибке нужно убрать из скрипта атрибут charset=»uft-8″, так как он показывает кодировку вне скрипта. Я считаю, эту ошибку нужно исправлять.

    • Warning: Empty heading

    Здесь пустой заголовок h1. Нужно удалить теги

    или поместить между ними заголовок. Ошибка критичная.

    • Error: End tag br

    Тег br одиночный, а сделан как будто закрывающий парный. Нужно убрать / из тега.

    • Error: Named character reference was not terminated by a semicolon. (Or & should have been escaped as &.)

    Это спецсимволы HTML, правильно нужно писать или ©. Лучше эту ошибку исправить.

    • Fatal Error: Cannot recover after last error. Any further errors will be ignored

    Это серьезная ошибка:

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

    • Error: CSS: right: only 0 can be a unit. You must put a unit after your number

    Нужно значение в px написать:

    Вот аналогичная ошибка:

    • Error: CSS: margin-top: only 0 can be a unit. You must put a unit after your number
    • Error: Unclosed element a

    Здравствуйте, дорогие друзья! Рад видеть вас на моём блоге! Сегодня речь пойдет про валидность HTML на сайте в целом и его отдельных страницах. Валидность — это соответствие кода определённым стандартам. Над разработкой веб-стандартов работает Консорциум World Wide Web (W3C) — это международное сообщество, в котором состоят организации, штатные сотрудники и общественность.

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

    На официальном сайте W3C предоставлены очень полезные онлайн-инструменты для вебмастеров, одним из них является валидатор — это бесплатный сервис, позволяющий проверить приверженность сайта современным веб-стандартам.

    К сожалению, сервис полностью на английском языке, но если вы чуточку разбираетесь в разработке и вёрстке, то непременно поймёте его суть и посыл 😉

    Итак, на главной странице расположены три вкладки:

    1. Validate by URI — проверка указанного URL-адреса;
    2. Validate by File Upload — проверка загруженного файла;
    3. Validate by Direct Input — проверка путем прямого ввода исходного кода.

    Для запуска анализатора нужно переключиться на требуемую вкладку, в качестве примера я буду рассматривать проверку по URL-адресу. Под ссылкой More Options скрываются дополнительные опции, нажмите на нее, чтобы получит доступ к настройкам:

    • Character Encoding — кодировка символов. WordPress использует UTF-8, но можно оставить стандартное значение «Detect automatically» для автоматического определения кодировки.
    • Document Type — тип документа (HTML, XHTML, SVG и др.). Поставьте флажок Only if missing, если тип документа не задан на странице и его нужно задать вручную для проверки.
    • List Messages Sequentially — выводить ошибки и предупреждения последовательным списком;
    • Group Error Messages by Type — группировать ошибки и предупреждения по типу;
    • Show Source — показать исходный код;
    • Show Outline — показать структуру документа;
    • Clean up Markup with HTML Tidy — очистка разметки с помощью HTML-Tidy;
    • Validate error pages — проверять страницы с ошибками, например, с 404 ошибкой;
    • Verbose Output — подробный вывод. Если честно, я не заметил разницы при включении этой опции, если знаете за что она отвечает — поделитесь в комментариях, буду очень признателен.

    Когда все настройки выставлены, нажимайте кнопку Check для старта HTML валидатора. Если документ не имеет ошибок, появится надпись:

    Document checking completed. No errors or warnings to show.

    В переводе на русский язык это означает: «Проверка документа завершена. Ошибки или предупреждения не найдены». Отлично!

    В том случае, если документ не пройдёт проверку, увидим простую надпись об её завершении:

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

    На скриншоте ниже представлен фрагмент проверки главной страницы Яндекса. Странно это видеть, даже не ожидал, ведь Яндекс сам принимает участие в разработке стандартов W3C… Ну да ладно, соблюдать абсолютно все стандарты действительно сложно, тем более для такого крупного портала.

    В начале своего пути Блог Свободного Вебмастера содержал очень много ошибок и предупреждений. По мере изучения мне удалось снизить их количество, а со временем и вовсе избавиться. Впредь буду придерживаться стандартов W3C, хотя некоторые плагины добавляют ложку дёгтя в бочку мёда… Время покажет!

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

    До сих пор мы рассматривали отдельные фрагменты кода HTML. Но HTML-документ (или веб-страница, что означает то же самое) требует определённой структуры для того, чтобы стать валидным .

    Почему мы заботимся о валидации HTML-документа?

    • Правильность : валидный документ корректно отображается в браузере.
    • Отладка : некорректный код HTML может вызвать ошибки, сложные для выявления.
    • Поддержка : валидный документ легче обновлять позже, даже кому-то другому.

    Доктайп

    Первой информацией которую мы пишем, является тип HTML-документа - доктайп .

    Подумайте о доктайпе как о версии автомобиля на протяжении многих лет: Ford Fiesta, купленный в 1986 году, был Fiesta 2. Если вы покупаете его сегодня, то это Fiesta 7.

    Раньше сосуществовало несколько версий HTML (XHTML и HTML 4.01 были конкурирующими стандартами). В настоящее время нормой является HTML5 .

    Чтобы сообщить браузеру, что HTML-документ представляет собой HTML5, просто начните свой документ со следующей строки:

    Вот и всё. Просто установите и забудьте об этом.

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

    Элемент

    Помимо строки с доктайпом, весь ваш HTML-документ должен располагаться внутри элемента :

    технически является предком всех элементов HTML.

    Как атрибуты несут дополнительную информацию для элемента HTML, так и элемент несёт дополнительную информацию для всей веб-страницы.

    Например, заголовок страницы (отображается на вкладке) находится в :

    Мой сказочный блог

    Следующие элементы HTML могут появляться в и только в :