Проверка валидности 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
Если посмотреть в коде самого сайта и найти этот элемент, видно, что одиночный тег <source> прописан как парный — это не верно.
Соответственно, нужно убрать из кода закрывающий тег </source>. Аналогично этой ошибке могут встречаться теги </meta> </input> </noscript>. Эту ошибку нужно исправлять.
- 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.)
Здесь не верно прописана вложенность тегов. В <ul> должны быть только <li>. В данном примере эти элементы вообще не нужны.
Аналогично могут быть еще такие ошибки:
- 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 не должно быть в <head>. Эту ошибку нужно исправлять.
- 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. Нужно удалить теги <h1></h1> или поместить между ними заголовок. Ошибка критичная.
- Error: End tag br
Тег br одиночный, а сделан как будто закрывающий парный. Нужно убрать / из тега.
- Error: Named character reference was not terminated by a semicolon. (Or & should have been escaped as &.)
Это спецсимволы HTML, правильно нужно писать © или &copy. Лучше эту ошибку исправить.
- Fatal Error: Cannot recover after last error. Any further errors will be ignored
Это серьезная ошибка:
После </html> ничего вообще не должно быть, так как это последний закрывающий тег страницы. Нужно удалять все, что после него или переносить выше.
- 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
<a></a> — это парный тег, а здесь он не закрыт, соответственно, нужно закрыть. Ошибку исправлять.
- Error: Start tag a seen but an element of the same type was already open
Где-то раньше уже был открыт тег <a> и не закрыт, откуда идет следующая ошибка.
- Error: End tag a violates nesting rules
Здесь отсутствие закрывающего тега </a> нарушает правила вложенности, откуда идет уже фатальная ошибка.
- Fatal Error: Cannot recover after last error. Any further errors will be ignored
Это частный случай, так конечно нужно смотреть индивидуально.
- Warning: The bdi element is not supported in all browsers. Please be sure to test, and consider using a polyfill
Элемент bdi не поддерживается во всех браузерах, лучше использовать стили CSS, если нужно изменить направления вывода текста. Это не критичное предупреждение.
- Error: A document must not include both a meta element with an http-equiv attribute whose value is content-type, and a meta element with a charset attribute
Здесь 2 раза указана кодировка:
Нужно убрать <meta charset=»UTF-8″ /> в начале. Ошибку лучше исправить.
- Error: Bad value callto:+7 (473) 263-22-06 for attribute href on element a: Illegal character in scheme data: space is not allowed
Здесь запрещены пробелы для атрибута href, нужно писать так — callto:74732632206. Ошибку лучше исправить, но не критично.
- Error: CSS: max-width: Too many values or values are not recognized
И аналогичная ошибка:
- Error: CSS: max-height: Too many values or values are not recognized
В данных случаях для max-width: и max-height: не поддерживается свойство auto. Должно быть конкретное значение в px, % и других единицах измерения для CSS. В целом, эти ошибки не критичные.
- Error: The for attribute of the label element must refer to a non-hidden form control
Атрибут label должен относиться к фрагменту id с идентификатором «control-label». То есть нужно в код формы вставить кусок id=»control-label». Тоже ошибка не критичная.
- Error: Legacy encoding windows-1251 used. Documents must use UTF-8
Кодировка windows-1251 уже устарела, сейчас везде используется utf-8. По хорошему нужно делать сайт изначально на utf-8, иначе он или отдельные страницы могут отображаться кракозябрами. Но это не критичная ошибка. Если у вас с сайтом все ок, то можно оставить, как есть.
Вот еще похожая ошибка:
- Error: Bad value text/html; charset=windows-1251 for attribute content on element meta: charset= must be followed by utf-8
Для атрибута content кодировка должна быть utf-8. Смотрите сами, хотите исправлять это или нет, не критично.
Заключение
После того, как сделана полная проверка, я составляю файл с грубыми ошибками и передаю его моим программистам или технической поддержке клиента. Кстати, почитайте интересную историю, как я искал себе программиста.
Итак, теперь вы знаете, как проверить валидацию сайта с помощью онлайн сервиса W3C HTML Validator, но как я сказал валидность кода далеко не самый важный фактор ранжирования, скорее всего после исправления ошибок вы не заметите существенной разницы в позициях или трафике сайта. Но я считаю, что все равно нужно привести сайт в порядок, и надеюсь, моя статья вам в этом помогла.
0
0
голоса
Рейтинг статьи
-
24.04.2016 01:27
Хорошо, спасибо за советы. Попробуем.
Также есть такая ошибка: Stray end tag head. С чем она может быть связана?
- 0
-
24.04.2016 23:44
- 0
-
25.04.2016 02:38
Есть еще такая ошибка: Cannot recover after last error. Any further errors will be ignored. Как ее исправить?
- 0
-
25.04.2016 14:16
Гуру
- Репутация: 104
- Webmoney BL:
?
Сообщение от smowin
Ну все-таки валидность кода я думаю имеет какое-то значение при ранжировании, хоть и минимальное. Ведь валидный код помагает ПС правильно оценить сайт с технической точки зрения.
Ога. Проверьте на валидность Яндекс или Гугл.
- 0
-
25.04.2016 15:13
Гуру
- Репутация: 384
- Webmoney BL:
?
kuzmi4, как все любят приводить поисковики в пример))
Дело в том что есть ошибки, которые просто необходимы для нормальной работы проекта, но такие ошибки зачастую никак не вредят ни сайту, ни семантике.
А есть ошибки по глупости, которые просто необходимо убирать. На примере ТС, в head вписан лишний тег, да поисковик тупо сайт может не индексировать из-за такой мелочи. Альты не прописаны, думаю вы не будете возражать что и они могут помочь в продвижении. И дублирование ссылки вот такой конструкцией<a href=»ссылка»><a href=»ссылка»>и тут анкор</a></a> поисковикам вообще не понравится.
Поэтому важно следить за валидностью хотя бы чтобы не навредить в продвижении. Да сама валидность мало чем влияет на продвижение, но вот ошибки могут тупо тащить сайт в самый низ.- 0
-
25.04.2016 16:34
Гуру
- Репутация: 104
- Webmoney BL:
?
Сообщение от 3s777
kuzmi4, как все любят приводить поисковики в пример))
А что не любить то? Это ж наши БОГИ.
Сам стараюсь сделать код максимально валидным (если возможно и есть время). Зачем? Хочу что сайт выглядел более-менее одинаково во всех (многих) браузерах.
Все.
Я не говорю про адские ошибки, которые мешают отображению сайта и препятствуют сканированию ботами ПС.
—
ПС. Наличие/отсутствие альтернативного текста к валидации не относиться. Главное что бы у изображения присутствовал атрибут alt (даже пустой)- 0
Подскажите как исправить данную ошибку?
Error: Stray end tag head.From line 29, column 310; to line 29, column 316xt/css’ /></head><body
Да, ей там не место, все <div> должны находиться строго между <body> и </body>.
Большое спасибо, буду разбираться!
Дайте ссылку на проблемную страницу.
https://opticworld.com.ua/
там три ошибки выдаёт
Error: Stray end tag head.
From line 29, column 310; to line 29, column 316
xt/css’ /></head><body
Error: Start tag body seen but an element of the same type was already open.
From line 29, column 317; to line 29, column 355
/></head><body id=»index» class=»index lang_ru»> <span
Fatal Error: Cannot recover after last error. Any further errors will be ignored.
From line 29, column 317; to line 29, column 355
/></head><body id=»index» class=»index lang_ru»> <span
Хм, а Вас не смущает, что внутри <head></head> стоит <div>?
я в этом не разбираюсь, не могу сказать правильно это или нет, возможно ошибка в шаблоне
Ну, а как удалите, то будем Вам счастье — ещё 13 ошибок и пяток предупреждений по <body>
Ну тогда мокните фэйсом вашего программиста, который разбирается. Это косяк.
Благодарю, но сайтом занимаюсь сам, делаю как могу, изучаю по ходу проблем.
Вы имеете в виду <div class=»go-up» title=»Вверх» id=’ToTop’>⇧</div><div class=»go-down» title=»Вниз» id=’OnBottom’>⇩</div> эта часть проблемная?








































?
?