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.
Recommended (5 pts each)
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)