Why the end of the head matters
The HTML Standard tells browsers to close the <head> at the first element that does not belong there and start the body. Google’s documentation lists title, meta, link, script, style, base, noscript and template as valid in the head and says that once it finds an invalid element such as an <img> or <iframe>, it assumes the head has ended and stops reading further head elements.
Canonical and hreflang links are read only in the head; Google ignores a canonical in the body. Robots meta tags are different: Google says it respects them in the body too, but other crawlers may not, so keep them in the head.
In the page source the tags look as if they are in the head. The browser’s Elements panel, or this tool, shows where the parser really put them. Tracking pixels, iframes and page-builder markup at the top of the page are the usual cause.
How this tool works, step by step
Read robots.txt and fetch the page
The checker reads robots.txt for DeepSpider, requests the page with DeepSpider’s own user agent and follows up to five redirects.
Find the real end of the head
It follows the HTML parser’s rules for the start of the document, the same scan a full DeepSpider audit uses, and records the element or text that ends the head.
Place every SEO tag
Each canonical, hreflang, meta robots, title, description, viewport and charset tag is marked as in the head, after an early head end, or in the body. Comments and script contents are skipped.
Read the encoding
It compares the HTTP Content-Type charset, the meta charset and its position, and the byte order mark, and looks for garbled UTF-8 text in UTF-8 pages.
Apply the audit’s checks
It runs the same checks as a full audit: head ends early, canonical or hreflang outside the head, character encoding, quirks mode, multiple titles and garbled characters.
How to read the report
Read as intended
The tag is inside the head the parser builds.
After the head ended early
An element or text earlier in the head closed it. Google may ignore the tags after that point.
In the body
Canonical and hreflang there are ignored by Google. Google still reads robots meta in the body, other crawlers may not.
Declared clearly?
No declaration, a meta charset after 1024 bytes, or a header and page that disagree can make browsers show the wrong characters.
How to fix the common mistakes
Place tracking pixels (<img>, <iframe>) right after <body>, or move canonical, hreflang and robots tags above them.
Make sure the template prints </head> before <body> and that plugins do not print head tags after it.
Put <meta charset="utf-8"> as the first element in the head and send Content-Type: text/html; charset=utf-8.
When the HTTP header and the meta charset disagree, browsers follow the header.
Without it, or with an old DOCTYPE, browsers render the page in quirks mode.
Two <title> elements usually mean an SEO plugin and a theme both print one. Switch one off.
Frequently asked questions
Is a robots meta tag in the body ignored?
Not by Google: its documentation says Google respects robots meta tags in the body. Other crawlers may not read them there, and a tag after an early head end may be ignored, so keep it in the head.
Why does a <noscript> or <script> in the head not end it?
Both are valid head elements. What ends the head is an element such as <img>, <iframe>, <div> or <span>, or visible text.
What are garbled characters?
UTF-8 text decoded with the wrong encoding, such as é instead of é or ’ instead of ’. Usually the text was saved twice with different encodings, or the server and page declare different encodings. Like a full audit, the tool reports garbled text only on pages read as UTF-8 and only when it appears at least twice.
Does this replace an HTML validator?
No. It checks the head and encoding problems that affect SEO tags and text display, not every validation error.
Is the check free and private?
Yes. There is no signup or email gate and no public report page. Repeat checks of the same URL within ten minutes reuse the previous result.
Where to check the underlying guidance
Google Search Central: Use valid HTML to specify page metadata and robots meta tag specifications. WHATWG HTML Standard: the “in head” insertion mode. W3C: Declaring character encodings in HTML. Practitioner guides: Screaming Frog, how to debug invalid HTML elements in the head; Yoast, rel=canonical: the ultimate guide.