What MetricSpot checks
90+ rules across eleven score modules. Scored, weighted, explained.
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