doctype.missing
The document does not start with <!DOCTYPE html>.
What to change
Start the document with <!DOCTYPE html> to avoid quirks-mode rendering.
A finding of this rule on a page carries the exact edits for that page: the markup it quotes, and what to write instead.
When it runs
Runs on every SEO audit: of a page, a crawl, a build directory or HTML. Info is a best practice: worth doing, rarely urgent, and --no-info leaves it out. Each finding takes 1 point off the page's score.
The severity here is the rule's usual one: a finding can be raised or lowered when the page gives a reason.
Run it, or skip it
Check a page for this rule alone, after a fix for instance:
npx @rivi-software/agentic-seo-check audit https://example.com --rule doctype.missing
Or from an assistant, with the MCP tool seo_audit_page:
{
"url": "https://example.com",
"rules": [
"doctype.missing"
]
}
To leave it out of an audit, pass --disable doctype.missing on the command, or disableRules: ["doctype.missing"] to a tool.
More in The document
All 12 rules- Warning
html.lang-invalidThe <html lang> value is not a valid BCP 47 language tag. - Warning
viewport.missingNo <meta name="viewport"> is present, so the page is not mobile-friendly. - Info
viewport.not-scalableThe viewport disables user zoom (user-scalable=no or maximum-scale=1). - Info
charset.missingNo character encoding is declared, in the HTML or in the Content-Type header. - Info
document.html-too-largeThe HTML document is larger than 1.5 MB. - Error
head.closed-earlyAn element that does not belong in <head> (an <img>, <iframe>, <div>, stray text) ends it early, so search engines read the metadata after it as part of <body> and ignore it. - Warning
head.metadata-in-bodyMetadata that search engines read only in <head> (title, meta description, viewport, canonical, hreflang) is written in <body> (warning). Metadata a framework streams into a hidden part of <body> and moves into <head> with JavaScript, as Next.js does for an async generateMetadata, is info. Robots meta tags are not reported: Google honours them in <body> too. - Info
charset.lateThe character encoding is declared after the first 1024 bytes, where the HTML spec requires it, and the Content-Type header does not declare it.