From one URL to every page, scored
Sitemap and robots aware, rendered in a real browser. See how every page is discovered, audited and scored.
We don't just scan your homepage
Sitemap and robots aware, rendered with a real browser. We discover every internal link, build your site graph, and audit each page we find.
The crawl, step by step
What happens between pressing Analyze and reading your report.
Find the pages
The crawl starts from your homepage and the list of pages your site publishes.
- Reads robots.txt for Sitemap entries
- Falls back to /sitemap.xml and seeds the queue from it
- Always scans the homepage first
Follow the links
Links are followed breadth-first, one depth level at a time, until your plan's page budget is spent.
- Free plan: up to 3 links deep and 10 pages
- Duplicate URLs merged — fragments, trailing slashes and default ports removed
- Stays on your site; www and the bare domain count as one
- Skips files: PDFs, images, CSS, JS, fonts, feeds and office documents
Render like a browser
Each page loads in headless Chromium, so JavaScript apps are seen the way visitors see them.
- Waits for SSR and SPA hydration (React, Vue, Angular)
- Screenshots at 1280×800, 768×1024 and 390×844
- Records JS exceptions, console errors and failed requests
- Several pages rendered in parallel
Audit every page
Seven audit categories run on each rendered page.
- Performance, SEO, security, accessibility, functional, content and infrastructure
- DNS and TLS checks run once per host, not once per page
- Every issue carries a severity and a suggested fix
Roll it up
Page results are combined into site-wide scores, stats and a link graph.
- Category and health scores averaged across pages
- Every internal and external link stored as a graph edge
- Internal links to pages returning 4xx/5xx marked broken
Deliver the report
Results stream in while the crawl runs and stay on your account afterwards.
- Live progress over Server-Sent Events
- PDF report and per-page CSV export
- Comparison with your previous crawl of the same site
- An email when the crawl finishes
Site-wide stats from every crawl
Calculated once the last page has been audited.
- Pages crawled
- Pages fetched and audited
- Pages discovered
- Unique URLs found, including any beyond your budget
- Broken links
- Internal links to 4xx/5xx pages
- Internal links
- Links between your own pages
- External links
- Links pointing off-site
- Images without alt
- Summed across all pages
- Avg. render time
- Mean time to load a page, in ms
- Max depth
- Deepest link level reached
Live progress events
Your report page follows the crawl through these events as they happen.
SCAN_STARTEDThe crawl has begunPAGE_DISCOVEREDA new URL joined the queuePAGE_SCANNEDA page finished its audits, with its scoreISSUE_FOUNDA new problem was detectedSCAN_COMPLETEDScores and stats are finalSCAN_FAILEDThe crawl stopped with an error
How your health score is built
Every number traces back to individual checks. Here is the arithmetic.
Page score
Each page gets a 0–100 score per category. Its page score is the average of those.
page = avg(category audits)Category score
Each category is averaged across every page crawled, so one weak template stands out.
category = avg(all pages)Health score
The headline number is the average of the category scores.
health = avg(categories)Deductions, not guesswork
Checks start at 100 and subtract fixed points for each problem, so the same issue always costs the same. Scores are colour-coded:
- 90–100
- Good
- 50–89
- Needs work
- 0–49
- Poor
Responsive score weights
The layout audit scores each device render, averages across devices, then weights the result:
- Layout integrity30%
- Mobile usability20%
- Touch targets10%
- Navigation10%
- Overflow10%
- Visual consistency10%
- Layout stability (CLS)10%
The thresholds behind every score
No black box. These are the exact limits the audits use and what each one costs.
Performance deductions
Each page starts at 100. Crossing a threshold costs points; the larger ones also raise an issue.
| Measure | Threshold → cost |
|---|---|
| Server response time |
|
| HTML document size |
|
| Resource requests |
|
| Render-blocking resources |
|
| gzip / brotli | Not compressed−8 ptsWarning |
Security deductions
Points removed from a page's security score for each missing protection.
- Served over HTTPS−40Critical
- Strict-Transport-Security−15Critical
- Content-Security-Policy−12Warning
- Clickjacking protection−8Warning
- X-Content-Type-Options−6Warning
- Referrer-Policy−4Info
- Permissions-Policy−4Info
Characters — the recommended range
Characters — the recommended range
Words of visible text below which a page is flagged
Share of words above which stuffing is flagged
Minimum tap size on phones and tablets
CLS is good up to 0.1 and poor above 0.25
Days left that trigger a notice, then a warning
Anything older is flagged critical
Ship a faster, safer, higher-ranking website
Run your first full-site audit in under a minute. Free account, sign up in seconds.