Skip to content

Site Audit

AI visibility has a floor set by your own site. If GPTBot can’t fetch your homepage, if your content only exists after JavaScript runs, or if you have no pages that answer real questions, no prompt strategy will move the score. The Site Audit measures that floor.

It has two halves, run together and merged into one ranked fix list.

Half one Structural GEO checks Crawler access, indexability, meta tags, headings, structured data, and whether your content is readable without JavaScript.
Half two Lighthouse Performance, Accessibility, Best Practices and SEO from PageSpeed Insights. Their mean is the SEO Score in your Final Score.

Structural checks

Grouped by the question they answer.

Can engines reach it

CheckWhat passing looks like
robots.txt · AI crawler accessPresent and not blocking GPTBot, ClaudeBot, PerplexityBot, Google-Extended
Meta robots · indexabilityNo noindex on the homepage
Sitemapsitemap.xml found, via robots.txt or the default path
llms.txtOptional — an emerging standard listing your AI-readable content
Readable without JavaScriptSubstantial content present in the raw HTML

The JavaScript check is the one that surprises people most. GPTBot, ClaudeBot and PerplexityBot don’t execute JavaScript. A client-rendered single-page app can look completely empty to them while looking perfect in a browser. Server-side rendering or prerendering is the fix.

Can engines understand it

CheckWhat passing looks like
Page titlePresent, roughly 30–60 characters, states brand and what you do
Meta descriptionPresent, roughly 120–160 characters
Canonical URLSelf-referencing, unless pointing elsewhere is intentional
Open Graph & Twitter Cardog:title, og:description, og:image present — AI chat UIs use them for citation previews
Language & hreflanglang declared; hreflang alternates for multi-language sites
H1 headingExactly one
Image alt text80%+ coverage
FaviconDeclared — some chat interfaces show it beside citations of your site
Homepage structured dataOrganization and WebSite JSON-LD, so engines can identify you as an entity
Blog & article schemaA content section exists, and posts carry Article/BlogPosting JSON-LD with headline, author and publish date

The content-section check deserves its own note. AI engines cite pages that answer questions. A site with no articles addressing what customers actually ask gives them almost nothing to cite you for — which shows up as a low mention rate no amount of technical tuning will fix.

Lighthouse

Run against your homepage through Google PageSpeed Insights, usually 15–30 seconds:

CategoryMeasuresAffects
PerformanceLoad and interactivity — LCP, total blocking time, layout shiftBounce rate, conversions, search ranking
AccessibilityContrast, labels, keyboard navigationAudience reach, WCAG/ADA compliance
Best PracticesHTTPS, console errors, safe dependencies, image sizingTrust, security, maintainability
SEOCrawlability, meta tags, mobile-friendlinessOrganic traffic and discoverability
SEO Score = mean(Performance, Accessibility, Best Practices, SEO) This is the 20% term in your Final Score. Categories PageSpeed didn't return are left out of the mean rather than counted as zero.

Scores are banded as Good, Needs work or Poor on the panel, and each carries an AI-generated reading of what that specific score means for this site — not a generic definition of the metric.

Priority fixes

Structural failures and Lighthouse recommendations are merged into one list ranked by severity:

SeverityTypical member
CriticalAI crawlers blocked, homepage noindex, content invisible without JavaScript
HighNo sitemap, no structured data, no content section
MediumMissing meta description, multiple H1s, weak alt coverage
LowMissing favicon, absent llms.txt

Structural checks can reach Critical; Lighthouse recommendations top out at High, since a slow page is a real problem but not a blocking one. Each item carries a What to do line, so the list works as a handover to whoever owns the site.

When the audit can’t run

If the homepage can’t be fetched, the affected checks are skipped and named rather than marked as failures:

SituationWhat you’ll see
Behind bot protection”requires a real browser” — the site returns a challenge to non-browser clients
Timed outThe request exceeded 20 seconds
HTTP error / DNS failureThe status code or connection error, verbatim

Bot protection is worth investigating rather than ignoring: whatever blocks the audit is likely blocking AI crawlers too, which is itself the finding.

If Lighthouse produces no data, the SEO term is dropped from the Final Score entirely rather than counted as zero — a missing measurement is not a failing grade. See Final Score.

Cadence

Structural checks change only when you change the site, so re-run after a deploy that touches rendering, routing, robots or templates. Lighthouse fluctuates run to run; treat a single-run swing as noise and the trend as signal.

See these numbers for your own brand The free plan probes every engine we support — no card required.

Start free