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. 1. The URL is normalised and checked. Only http:// and https:// addresses are accepted, and private-network hosts (loopback, link-local, RFC1918 ranges) are refused so the crawler cannot be pointed at internal infrastructure.
  2. 2. The page is fetched server-side with a 12-second timeout, a 2MB response cap, redirects followed, and a MetaTagAuditor/1.0 user agent so site owners can identify the request in their logs.
  3. 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. 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.

← Back to the auditor