Findings · 2026-09-08 · By VSNARY | Emmanuel Orta
Unquoted HTML attributes: why we said a viewport was missing
A report scored one of our sites 0 out of 100 on mobile while its viewport tag sat in the page. The attributes were unquoted, which is valid HTML. What changed, and how to check yours.
HTML5 allows attribute values without quotes, such as name=viewport, and minifiers strip quotes to save bytes. CrawlCheck expected quoted values, so on one of our own minified sites it reported no viewport, no canonical and no meta description, and scored mobile 0 out of 100. All three tags were present. Reports now read attributes with or without quotes and in any order, and the five sites that already worked read the same afterwards. If a tool says a tag is missing, view source and look for an unquoted version first.
On 8 September a CrawlCheck report told one of our own sites that its viewport meta tag was missing. It scored the mobile section 0 out of 100 and reported no canonical and a meta description of zero characters. All three tags were in the page. This note says what was wrong, what changed, and how to check your own site.
What was actually in the page? #
The tags, copied out of the delivered HTML:
<meta content="width=device-width,initial-scale=1.0" name=viewport><link href=https://emmanuelorta.com/ rel=canonical>
The attribute values carry no quotes. That is valid HTML5: a value with no spaces, quotes, equals signs or angle brackets does not need them, and every browser reads it correctly. Minifiers strip those quotes because they are free bytes on every page load. Our reader expected quoted values, found nothing, and reported nothing as absent.
Which sites were affected? #
Same day, same checks. The only difference was whether a minifier had touched the markup.
| Site | Unquoted rel= | Unquoted name= | Mobile section before the fix |
|---|---|---|---|
| emmanuelorta.com | 64 | 11 | 0 / 100 |
| crawlcheck.io | 0 | 0 | 100 / 100 |
| credentialrecord.com | 0 | 1 | 100 / 100 |
| tree-d.example | 0 | 1 | 100 / 100 |
| terrariumstation.com | 0 | 0 | 100 / 100 |
| fencing-b.example | 0 | 0 | 100 / 100 |
One site served unquoted attributes and scored zero; the five with quoted attributes scored one hundred. That is not a distribution. It was a switch, and the switch was ours.
What changed? #
Reports now read attribute values with or without quotes, and in any order: the same page also showed a zero-length description because the description tag put content= before name=, which HTML allows. After the fix the page read its viewport, canonical and a 302-character description, and the mobile section went from 0 to 100. The five sites that already worked read the same before and after. The first attempt at a fix was itself wrong, and it was caught by running it against the real page before release rather than by a test. When a page's head is readable but appears to have neither a viewport nor a canonical, a report now treats that as a likely reading problem and does not grade it as a site defect.
The wider lesson for us is the one in our audit that labelled one page and measured another: two readings that share the same blind spot agree perfectly, so agreement alone proves nothing. A detector also has to stay silent where nothing is wrong, the lesson of the 403 rate we nearly published.
How do you check your own site? #
View source on your homepage and find the viewport tag. Look at whether the attribute is quoted, name="viewport", or not, name=viewport. If it is unquoted and an audit tool reports the tag as missing, the tag is not the problem: the tool is. Any tool that reads HTML by pattern rather than with a real parser tends to assume quoted values in a fixed order, and ordinary minification breaks both, so the sites most likely to be misread are the ones that optimised their delivery.
Live, as you read this: the corpus now holds 469,001 domains across 5,611 scans. The figures in this piece were measured on the date above; this line is not.
The main product
Found this on your own site? We fix it for $100.
Scan free to see where you stand. The fix is one site, every finding implemented and re-measured, with a sealed before and after.
Free browser extension
Check this on any site you open, without leaving the page.
CrawlCheck for Chrome grades every site you visit A–F and shows, from your own browser, what search engines and AI assistants are actually served. Free, no account.
Questions this post answers
Are unquoted HTML attribute values valid?
Yes. In HTML5 a value with no spaces, quotes, equals signs or angle brackets needs no quotes, and every browser reads it correctly.
Why would an audit tool report a viewport tag as missing when it is there?
Usually because the tool reads HTML by pattern and expects quoted values, or attributes in a fixed order. Minified pages break both assumptions.
Does attribute order matter in HTML?
No. name= may come before or after content= in a meta tag. A tool that requires one order will misread valid pages.
How do I check whether my site is affected?
View the page source and look at the viewport, canonical and description tags. If the attribute values are unquoted and a tool reports the tags missing, the tool is misreading the page.
Related findings
Comments
Comments are read before they appear. Nothing is published automatically, and no account is needed.
Writing about this? Facts, live figures and marks — every number on that page is dated and traceable to a scan.