Only 2.6% of the most visited websites have fully valid HTML
Key findings What the numbers say Valid HTML is the exception, not the rule. Nine sites in ten among the most visited on the web violate the standard on their home page, and 2.6% come back completely clean. Browsers are so good at error recovery that nothing forces anyone to fix this, which is exactly why it accumulates. The distribution is brutally skewed. The median site has 12 errors, the mean 37.8, and the worst 2,209. Most sites have a handful of mistakes repeated a few times; a minority have one template bug repeated across every component on the page. If you are auditing a site, the count matters far less than the number of distinct rules broken. That is why our scores are computed per rule, not per occurrence. The top failures are structural, not typos. The single most common finding is
element is not permitted as content under
(59.5% of sites). Nobody writes that by hand. It is what happens when components are composed by a framework that does not know which element it is being dropped into. It is a nesting problem created at build time, not in an editor. Accessibility failures are near-universal. The findings that the Accessibility Checker keeps ( heading levels, unlabelled inputs, links with no text ) each appear on more than a third of sites. With the European Accessibility Act applicable since June 2025, that is a compliance surface, not a style preference. CSS breaks in one place, not everywhere. 65.1% of sites have a CSS error but the median count is 1, and the most common one by far is Invalid value for `X` property. A stylesheet with a broken declaration still renders; the browser drops the line and moves on. That silence is the reason these survive in production for years. The 25 most common HTML findings Ranked by how many distinct sites emit the message, not by raw occurrences. One message repeated 4,000 times on a single site is still one site. The 15 most common CSS findings Every stylesheet a page links is validated separately, so a line number always refers to its own file. How we measured it We took the Tranco top 5,000 from the Tranco list , a research ranking that averages several popularity lists to resist manipulation, and requested the home page of each domain over HTTPS in August 2026. Each page went through the same public endpoints this site runs for its users: HTML through html-validate on its standard preset, CSS through csstree-validator with lightningcss adjudicating modern syntax. Driving the real API rather than the engines means every false-positive filter we ship applied here too, so these counts are what a user of the tool actually sees. Severity is not a style choice. We count as an error only what violates the written HTML standard. Opinions that are still valid HTML, such as an inline style or a missing type on a button, are counted separately as best practiceand are labelled as such in the tables above. Many published “error” statistics conflate the two, which roughly triples the headline. Messages are grouped into families by masking their variable parts, so Unknown property `colr` and Unknown property `bakground` count as one problem. The exact wording shown in each row is the most frequent variant. 2,345 of the 5,000 domains produced no measurement and are excluded from every percentage on this page. A large share of the top of the list is infrastructure: CDN and DNS hostnames that were never meant to serve a page. The reasons: 1,479Could not reach the URL. Check that it is valid and accessib 433Failed to fetch: … Forbidden 248Response too large (max NKB) 81Failed to fetch: … Not Found 21No HTML content provided And we ran it on ourselves. Every page of this site, all 102 of them including the one you are reading, validates at zero errors and zero warnings against the engine above. Writing this study is what made us check; it found four problems we then fixed. Publishing a number you have not applied to your own site is not research, it is marketing. What this study cannot tell you Home pages only. One page per domain, and the page a company polishes most. Checkout flows, dashboards and CMS-generated article pages are almost certainly worse, and nothing here measures them. Popular sites only. The Tranco top 5,000 is large teams and mature stacks. It is not a sample of the web, and it is not a sample of the sites most developers work on. HTML and CSS only. No JSON, no XML, no robots.txt. Those are things people paste into a validator, not things a home page emits, so a crawl cannot see them at all. Our engines’ judgement. Any validator encodes decisions about what to report. Ours are documented and deliberately conservative: we drop findings we cannot trust rather than pad a count. But a different tool would produce a different ranking. That is a reason to compare, not to average. A snapshot. Measured August 11, 2026. Sites change; this page states its date for that reason. And an open gap. 132 of the 220 families have no fix guide on this site yet, the largest being
is missing required "src" attribute at 41.2% of sites. We write them in the order this ranking gives. Every error we measured, with a fix Percentage of the 2,655 sites tested that hit each one. HTML 61.7%incorrect nesting 54.7%redundant script type 49.6%button missing type 48.4%native element instead of role 46.4%heading level skip 43.0%missing form label 29.9%invalid attribute value 28.2%redundant aria role 23.4%duplicate id 19.3%deprecated attribute 19.2%missing alt attribute 16.0%unclosed tag 9.7%missing lang attribute 7.9%empty heading 6.3%deprecated element 2.3%missing title 2.2%missing doctype CSS 51.6%invalid property value 16.4%unknown property 7.2%unclosed bracket 6.0%media query syntax Accessibility 46.4%skipped heading level 43.0%missing form labels 41.3%missing aria label 37.7%empty link text 22.2%empty button text 20.6%missing alt text 13.4%missing button type 7.9%empty heading 0.8%missing table headers Citing this study Free to quote, chart or republish with a link back. Suggested wording: ValidateHTML, “HTML & CSS Error Statistics: We Validated the Top 5,000 Websites” (2026). Validation of 2,655 home pages from the Tranco top 5,000. validatehtml.com/html-error-statistics Questions about the method, or want a cut of the data we did not publish? Ask us. Where does your site sit? Same validators, same rules, on your URL. Free, no signup, results in seconds.