How we score your site.
Full transparency. Every check, every weight, every data source — public. If you don't trust how a score is calculated, the score doesn't matter.
The headline 0-100 score
We run 70+ checks across 6 categories. Each check produces a 0-100 sub-score and is multiplied by a category weight. The final number is the weighted average rounded to the nearest integer.
When a check can't run (e.g., PSI rate-limited, or robots.txt not reachable), its weight drops out of the denominator entirely — we never penalise the score for our own inability to measure.
The 6 categories
Weights reflect importance for organic search in 2026. Mobile-first because India (and the world) is mobile-first.
Technical
weight 3,650 · 28% · 21 checksrobots.txt, sitemap.xml, canonical tags, HTTPS, mixed content, redirects, language declarations. The plumbing that makes Google's crawler trust your site at the protocol layer.
- Our HTML parser (cheerio)
- robots.txt + sitemap.xml HTTP probes
On-page
weight 4,200 · 33% · 23 checksTitle tag length + uniqueness, meta description, H1/H2 hierarchy, image alt text, internal links, word count, keyword density. The content-quality signals Google uses to match queries.
- Our HTML parser
- Lighthouse rendered-DOM (reconciles JS-rendered sites)
Schema
weight 1,000 · 8% · 6 checksJSON-LD presence, Open Graph + Twitter Cards, structured-data type coverage. Powers rich results in Google + better link previews on WhatsApp / LinkedIn / X.
- Our HTML parser
- og:image HEAD probe (SSRF-protected)
Mobile / India
weight 1,500 · 12% · 5 checksMobile viewport meta tag, tap target sizing, mobile-friendly font sizes, hreflang declarations for en-IN, Indian phone-number format detection. Mobile-first because India is mobile-first.
- Our HTML parser
- Lighthouse Mobile category (when PSI returns)
AEO (AI Search)
weight 1,950 · 15% · 6 checksllms.txt presence, AI crawler accessibility (GPTBot, ClaudeBot, PerplexityBot, Google-Extended), JS-rendered content detection, AI-friendly schema (FAQPage, HowTo, Article), E-E-A-T signals. Most tools ignore this entirely.
- llms.txt HTTP probe
- robots.txt for AI bots
- Our HTML parser
Performance
weight 140 (target 1,800) · 4% · 17 checksReal Core Web Vitals (LCP, INP, CLS, FCP, TTFB) from CrUX field data when available, Lighthouse lab data as fallback. Lighthouse Performance / SEO / Accessibility / Best-Practices scores. PSI is the slowest leg — runs in background after static checks.
- Google PageSpeed Insights API
- Chrome UX Report (CrUX) field data
- Lighthouse synthetic lab data (fallback)
Why mobile-first
We score the mobile view at 60% weight and desktop at 40% for PSI-derived metrics. Google indexes the mobile version of your site first as of 2018, and Indian internet traffic is ~78% mobile per Statcounter 2025. A site that scores 90 on desktop but 50 on mobile is failing for the majority of its users — our scoring punishes that imbalance.
Other tools (Lighthouse desktop reports, generic SEO checkers) often default to desktop. The result: false confidence.
What we deliberately don't do
- We don't inflate the score to make you happy. Other free tools routinely award 85+ to sites that fail half the checks because their business depends on giving you good-feeling numbers. Our scoring is honest — if your H1 is missing, that costs real points.
- We don't hide low-confidence data behind a paywall. Every check explains what it measured and how. If we can't measure something, we say so out loud, in the report.
- We don't fake AI scoring.AEO scoring comes from real, observable signals (llms.txt, robots.txt rules for GPTBot et al, schema types known to be cited by AI engines) — not a heuristic dressed up with the word "AI".
- We don't track you.No third-party analytics beyond Vercel's privacy-respecting page-view counter. No cookies for advertising. No selling your audit data.
Honest limits
Things this tool doesn't check (yet) — see the full list →
Run a real audit on your site
Every check we describe above runs on any URL you give it, in about 8 seconds. Then the slower Core Web Vitals data lands ~30 seconds later.
Run free audit