Skip to content
Metaspry

Docs

Audit rules

Every rule Metaspry checks, what it means, and how it's scored.

The audit score is 0-100, weighted by rule severity. Required rules carry the most weight, recommended rules less, best-practice rules least. Pending rules (image-dimensions) count as half-credit until resolved.

Required (10 pts each)

Page title

Verifies a <title> tag exists and is non-empty.

Meta description

Verifies meta[name="description"] exists.

Open Graph title

Verifies meta[property="og:title"] exists.

Open Graph description

Verifies meta[property="og:description"] exists.

Open Graph image

Verifies meta[property="og:image"] exists. The dimension check is a separate best-practice rule.

Indexable

Fails if meta[name="robots"] or meta[name="googlebot"] contains noindex or none.

Open Graph URL

og:url should anchor the canonical share URL.

Open Graph type

og:type (e.g. website, article).

Twitter card type

twitter:card controls the Twitter preview layout.

Canonical URL

<link rel="canonical"> prevents duplicate-content issues.

Article OG metadata

When og:type=article, also checks article:author, article:published_time, article:section.

hreflang self-reference

When <link rel="alternate" hreflang> exists, one should reference this page.

Best-practice (3 pts each)

Title length

30-60 characters (configurable in extension Settings).

Description length

70-160 characters.

og:description length

50-200 characters.

og:image is absolute URL

Must be http:// or https://, not relative.

og:image dimensions (async)

Loads the image, reads naturalWidth x naturalHeight. >=1200x630 passes; >=600x315 warns; below fails.

No duplicate meta tags

Warns if any key (lowercased) appears more than once.

JSON-LD parses cleanly

Parses every <script type="application/ld+json">. Fails if any block throws.

How the score is computed

earned   = sum(weight x status_credit) across all rules
possible = sum(weight) across all rules
score    = round((earned / possible) x 100)

Pass = full weight. Warn = half weight. Pending = half weight (until resolved). Fail = zero.

Color bands

  • 80+ - success (emerald)
  • 50-79 - warning (amber)
  • <50 - danger (rose)