What MetricSpot checks

90+ rules across eleven score modules. Scored, weighted, explained.

See plan limits and prices Documentation

Technical SEO

  • ✓HTTPS enforcement and HSTS
  • ✓Canonical URL correctness across the site
  • ✓robots.txt validity, conflict detection, AI-crawler allow/deny
  • ✓sitemap.xml: index + child sitemaps, lastmod accuracy, submission
  • ✓404 page presence and behavior
  • ✓Mobile-friendly viewport, touch targets, font sizing
  • ✓Hreflang tag completeness for multilingual sites
  • ✓Structured data (JSON-LD): coverage and validity

Website speed

  • ✓Lighthouse performance score (lab)
  • ✓Lab Largest Contentful Paint (LCP), target < 2.5s
  • ✓Lab Cumulative Layout Shift (CLS), target < 0.1
  • ✓Field LCP from the Chrome UX Report, 75th percentile of real Chrome users
  • ✓Field Interaction to Next Paint (INP), target < 200ms
  • ✓Field Cumulative Layout Shift, real-user 75th percentile
  • ✓Field Time to First Byte (TTFB), real-user 75th percentile
  • ✓Server response time on first byte
  • ✓Phone and desktop form factors when CrUX has data for the origin

On-page

  • ✓Title tag length, keyword presence, brand suffix
  • ✓Meta description length and CTA quality
  • ✓H1 uniqueness and presence
  • ✓Heading hierarchy (no skipped levels)
  • ✓Image alt-text completeness
  • ✓Internal vs external link ratio
  • ✓Word count vs intent type
  • ✓Page language declaration

Organic traffic

  • ✓Google Analytics 4 + Search Console linked per URL: one OAuth grant, then explicit GA4 property and GSC site pick for each audited URL
  • ✓Per-rule findings with severity pills and recommendations across sessions trend, search visibility, striking-distance queries, CTR underperformance, long-term opportunities, query churn, indexing coverage, and sitemap health
  • ✓Organic sessions over the last 28 days vs prior 28 days, with signed delta
  • ✓Top 5 landing pages by organic sessions
  • ✓Search Console: clicks, impressions, CTR and average position (last 28 days)
  • ✓Top 10 queries by clicks
  • ✓28-day daily sparklines: sessions, clicks, impressions
  • ✓Audience donuts: traffic by country, language and device, plus Search by device
  • ✓Quick Wins insights: striking-distance queries (position 11–20), low-CTR opportunities, and query churn vs prior 28 days
  • ✓Indexing health: sitemap submission status, pages earning impressions, and URL Inspection coverage for the audited page
  • ✓Pro-only CSV data export - queries, pages and landing pages over the 28-day window, packaged as a single .zip

AI-readability

  • ✓JSON-LD schema coverage (Article, Product, FAQ, HowTo)
  • ✓FAQ schema for question-format headings
  • ✓llms.txt presence and completeness
  • ✓Quotable answer-first content blocks
  • ✓Citation density (links to primary sources)
  • ✓Semantic HTML usage (article, section, header, nav)
  • ✓Last-updated dates on content

Content quality

  • ✓E-E-A-T signals: author bios, credentials, experience evidence
  • ✓Search intent classification per page
  • ✓Content depth vs top-ranking competitors
  • ✓Internal linking topology and orphan detection
  • ✓Anchor text variety
  • ✓Comparison/listicle/guide formats per intent
  • ✓Trust pages: about, contact, privacy, terms
  • ✓URL slug hygiene and CTR-friendly titles

Social networks

  • ✓Open Graph core tags (title, description, image, type)
  • ✓Open Graph image present and reachable
  • ✓Twitter Card type set to summary or summary_large_image
  • ✓Profile link detection across Facebook, X, Instagram, LinkedIn, YouTube, TikTok, GitHub, Mastodon, Bluesky, Threads
  • ✓Profile diversity across multiple platforms
  • ✓Organization JSON-LD sameAs cross-checked against profile links
  • ✓apple-touch-icon for iOS bookmarks
  • ✓theme-color for mobile browser chrome
  • ✓Web manifest for PWA installability

Accessibility

  • ✓Lighthouse accessibility score from PageSpeed Insights
  • ✓WCAG audit failure categories surfaced
  • ✓HTML lang attribute set on the document
  • ✓Image alt-text quality (rejects filename as alt)
  • ✓Landmark regions (main, nav, header, footer)
  • ✓Form labels (label / for / aria-label / aria-labelledby)
  • ✓Link text descriptiveness (no "click here")
  • ✓Tabindex hygiene (no positive tabindex)

Privacy and cookies

  • ✓Privacy policy link detection in multiple languages
  • ✓Third-party tracker count across ~25 known hosts
  • ✓Cookie consent banner detection
  • ✓Browser fingerprinting library detection
  • ✓Cookie security flags (Secure, HttpOnly, SameSite)
  • ✓Referrer-Policy response header

Tech stack

  • ✓CMS detection (WordPress, Shopify, Wix, Webflow, Drupal, etc.)
  • ✓Framework detection (Next.js, Astro, React, Vue, etc.)
  • ✓Analytics platform (GA4, Plausible, Fathom, Hotjar, etc.)
  • ✓Ad network presence
  • ✓Payment processor (Stripe, PayPal, Klarna, etc.)
  • ✓E-commerce platform (WooCommerce, Magento, BigCommerce)
  • ✓CDN provider (Cloudflare, Fastly, Vercel, etc.)
  • ✓Whether any web analytics is installed at all

Readability

  • ✓Flesch-Kincaid grade level
  • ✓Average sentence length
  • ✓Long-sentence ratio (>25 words)
  • ✓Passive-voice ratio
  • ✓Paragraph length
  • ✓Thin-content detection (<120 words)

WordPress fixes (only on WordPress sites)

  • ✓WordPress version disclosure in the generator meta
  • ✓SEO plugin detection (Yoast, Rank Math, All in One SEO, SEOPress)
  • ✓Multiple SEO plugins fighting over titles, canonicals and schema
  • ✓Page-cache plugin or cache header (WP Rocket, W3 Total Cache, LiteSpeed)
  • ✓Native image lazy-loading coverage
  • ✓Default emoji script bloat (`wp-emoji-release.min.js`)
  • ✓Legacy `jquery-migrate.min.js` shim
  • ✓`xmlrpc.php` exposure (bruteforce and amplification target)
  • ✓`/wp-json/wp/v2/users` username enumeration
  • ✓Active theme detected from `wp-content/themes/` asset URLs

WooCommerce fixes (only on WooCommerce stores)

  • ✓Product JSON-LD present on product pages
  • ✓Product schema completeness: name, image, offers.price, offers.priceCurrency, offers.availability
  • ✓AggregateRating or Review schema for star-rating rich snippets
  • ✓BreadcrumbList schema for breadcrumb rich snippets
  • ✓`/cart/` blocked from Google's index (noindex)
  • ✓`/checkout/` blocked from Google's index (noindex)
  • ✓`/my-account/` blocked from Google's index (noindex)
  • ✓Product-gallery lazy-load with the LCP image kept eager
  • ✓Product images served from a CDN or media subdomain (not origin PHP)
  • ✓FAQPage schema on product pages for FAQ rich snippets
  • ✓Product Recommendation Quiz detection

Shopify fixes (only on Shopify stores)

  • ✓Product JSON-LD present on the audited product page
  • ✓Product schema completeness with 2026 Google fields: name, image, full offers (price/priceCurrency/availability), brand, gtin13 or mpn, sku
  • ✓AggregateRating or Review schema on product pages for star-rating rich snippets
  • ✓Filtered collection URL canonicalizes to the unfiltered collection (no duplicate-content leakage)
  • ✓/search?q=... blocked from Google's index (noindex)
  • ✓Active Shopify theme detection
  • ✓Blocking app scripts in <head> from non-Shopify hosts (3-5 minor, >5 major)
  • ✓LCP image size: CDN ?width= matches the rendered width (no oversized hero images)
  • ✓ItemList or CollectionPage schema on collection pages
  • ✓FAQPage schema on product pages for FAQ rich snippets
  • ✓Product Recommendation Quiz detection

Astro fixes (only on Astro sites)

  • ✓Sitemap detected via /sitemap-index.xml, /sitemap.xml, or a robots.txt Sitemap directive
  • ✓Astro <Image> component adoption (width + height attributes on <img> tags)
  • ✓LCP image served as WebP or AVIF
  • ✓Below-the-fold images use loading="lazy"
  • ✓Astro View Transitions detection
  • ✓View Transitions × analytics bridge (astro:page-load event hook when GA4 / Plausible / Fathom is loaded once in <head>)
  • ✓client:load island distribution (more than 3 triggers a recommendation)
  • ✓<link rel="canonical"> on every page
  • ✓Open Graph completeness: og:title, og:description, og:image, og:url
  • ✓robots.txt presence
  • ✓llms.txt presence (informational)
  • ✓Zero-JS baseline: sum of same-origin <script> bundle bytes (<50 KB passes, 50-200 KB minor, >200 KB major)

FAQ

What does MetricSpot check?
Around 90 rules across eleven modules: technical SEO, website speed (lab + Chrome UX Report), on-page, organic traffic (Google Analytics 4 + Search Console), AI-readability, content quality, social networks, accessibility, privacy and cookies, tech stack, and readability.
How is the score calculated?
A weighted blend across all modules. Each module is severity-weighted internally (info/minor/major/critical = 1/2/4/8), and the modules are then combined into a single 0-100 score. Failing a critical rule moves the needle more than failing an informational one.
Can I run a full audit on the free plan?
Yes. The free plan includes 3 full audits per month with every module. PDF reports on the free plan carry MetricSpot branding.
Does MetricSpot work for non-English sites?
Yes. The audit engine is language-agnostic; PDF reports render in six languages: English, Spanish, German, French, Italian, and Portuguese.

Stop writing SEO reports by hand.

Run an audit, brand the PDF, send to your client. In five minutes.

Start your first audit