Performance Monitoring
Site Health scans every published page on every Webflow site you connect, then rolls the results into a single Health score you can track over time.
What a scan captures
For every page, in the selected strategy (mobile, desktop, or both), you get:
- Performance, SEO, Accessibility, and Best Practices scores (0-100)
- Full Core Web Vitals — LCP, CLS, INP, FCP, TTFB, TBT, Speed Index, TTI
- Real-user data (CrUX) when Chrome has enough traffic on the page
- Top 5 performance opportunities with estimated savings
- Every failing accessibility audit
- Third-party script breakdown
- Detected frameworks / stack packs
Strategy selection
When you trigger a scan you pick one of:
| Strategy | When to use it |
|---|---|
| Mobile | The default most teams care about. Google ranks on mobile. |
| Desktop | B2B SaaS, internal tools, desktop-first experiences. |
| Both | Recommended for client reports. Doubles scan time, doubles insight. |
How pages get discovered
On every scan, Site Health refreshes your site map from the Webflow API:
- Calls the Webflow
sites.pages.listendpoint for the site. - Filters to published pages only (drafts and unpublished are skipped).
- Resolves CMS template pages — a page like
/blog/:sluggets expanded to every published CMS item under it, so you see real, crawlable URLs in the results table. - Deduplicates by URL.
A 500-item blog takes longer to scan. Use performance budgets on hot landing pages if full-site scans get noisy.
Rate limiting
Site Health is a good citizen with upstream APIs:
- PageSpeed Insights: capped at 3 requests/second site-wide via an in-process limiter. Each page under "Both" counts as two calls.
- Webflow API: capped at 50 requests/minute.
- User scans: 5 scans per user per hour to stop accidental loops.
- Worker concurrency: 3 parallel scans across your whole account at once.
Scans are deduplicated — trigger one while another is queued or running and you'll get a SCAN_ALREADY_ACTIVE response instead of a duplicate.
How the Health score is computed
The Health score you see on the dashboard is an average of the four Lighthouse scores across every page and every strategy in the scan:
Health = average(performance, seo, accessibility, bestPractices) across all results
Color bands follow standard Lighthouse conventions: green ≥ 90, yellow ≥ 50, red < 50.
PSI scores jitter 5-10 points run-to-run. A single dip isn't a bug. A regression alert means something real shifted.
What's next
- Want Site Health to scan automatically? See Scheduled Scans.
- Want an email when scores drop? See Alert Rules.
- Want to fail CI builds when a budget is blown? See Performance Budgets.