Браузеры прощают довольно много ошибок в HTML — незакрытый тег, вложенность не по правилам, дублирующийся id — страница в большинстве случаев всё равно отобразится. Именно поэтому валидность разметки легко списать со счетов как формальность, которая никому не мешает.
На практике невалидный код — источник тех самых загадочных багов, когда в одном браузере всё выглядит нормально, а в другом стили съезжают без видимой причины. Разные браузеры по-разному "чинят" некорректную разметку, и результат такого исправления не всегда предсказуем.
Валидный HTML также предсказуемее ведёт себя со скринридерами и поисковыми роботами — они опираются на чёткую структуру документа, и любое нарушение вложенности тегов может сбить логику обхода страницы.
Проверить код на соответствие стандарту можно бесплатно, не устанавливая ничего дополнительно — достаточно вставить адрес страницы или сам код в официальный валидатор. Он покажет не только ошибки, но и предупреждения о спорных местах, которые стоит пересмотреть.
Официальный инструмент для проверки разметки — W3C Markup Validation Service, им пользуются и новички, и опытные вёрстальщики при финальной проверке страницы перед публикацией.
Чаще всего валидатор находит одни и те же типы ошибок: незакрытый тег, повторяющийся на странице id, вложенность блочного элемента внутрь строчного там, где это не разрешено спецификацией. Ни одна из этих ошибок не сломает страницу мгновенно, но каждая понемногу увеличивает шанс, что однажды в новом браузере вёрстка поведёт себя не так, как ожидалось.
Полезно проверять код не только в самом конце проекта, а время от времени по ходу работы — тогда ошибки находятся сразу после появления, пока ещё понятно, в каком месте и почему они возникли, а не спустя недели среди сотен строк готовой разметки.