How MetaTagAuditor works
One page in, one report out. Here is exactly what happens in between, so you can decide how much of the output belongs in a client deliverable.
The fetch
- 1. The URL is normalised and checked. Only
http://andhttps://addresses are accepted, and private-network hosts (loopback, link-local, RFC1918 ranges) are refused so the crawler cannot be pointed at internal infrastructure. - 2. The page is fetched server-side with a 12-second timeout, a 2MB response cap, redirects followed, and a
MetaTagAuditor/1.0user agent so site owners can identify the request in their logs. - 3. The HTML is parsed with Cheerio. No browser is launched and no JavaScript is executed, which is what keeps an audit fast and cheap — and is also the tool's main limitation.
- 4. Each check runs against the parsed document and returns a status, the value found, the problem in one sentence, and replacement markup.
The score
Every check has a priority: 1 counts triple, 2 counts double, 3 counts single. A pass earns the full weight, a warning earns half, a critical earns none. The score is earned weight over total weight, rounded to a whole number. It describes the meta tags on one page. It is not a ranking forecast, a traffic estimate, or a guarantee of any outcome.
The 18 checks
html lang
Warning when the <html> element carries no lang attribute.
charset
Critical when absent, warning when declared as anything other than UTF-8.
viewport
Critical when absent, warning when it does not set width=device-width.
title
Critical when missing or empty; warning under 30 or over 60 characters, or when duplicated.
description
Critical when missing; warning under 70 or over 160 characters.
robots
Critical when the page declares noindex; otherwise a pass.
canonical
Warning when absent or relative; critical when more than one canonical is declared.
og:title
Warning when absent — share cards fall back to the page title.
og:description
Warning when absent.
og:image
Critical when absent; warning when the URL is relative rather than absolute.
og:url
Warning when absent.
og:type
Warning when absent.
twitter:card
Warning when absent — without it X will not use the large-image layout.
twitter:title
Warning only when og:title is also absent.
twitter:image
Warning only when og:image is also absent.
favicon
Warning when no icon, shortcut icon or apple-touch-icon link is in the head.
h1
Critical when the page has no H1; warning when it has more than one.
img alt
Warning when some images lack an alt attribute; critical when most of them do.
What it does not do
- It audits a single page. It does not crawl a site, read a sitemap, or check for broken links.
- It does not run JavaScript, so tags injected client-side after load are invisible to it.
- It does not fetch or render the Open Graph image, so it cannot tell you whether that image exists.
- It does not judge whether your title and description are good — only whether they are present and a workable length.
- It has no accounts, so history lives in your browser rather than in an account.