Skip to main content

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:

StrategyWhen to use it
MobileThe default most teams care about. Google ranks on mobile.
DesktopB2B SaaS, internal tools, desktop-first experiences.
BothRecommended 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:

  1. Calls the Webflow sites.pages.list endpoint for the site.
  2. Filters to published pages only (drafts and unpublished are skipped).
  3. Resolves CMS template pages — a page like /blog/:slug gets expanded to every published CMS item under it, so you see real, crawlable URLs in the results table.
  4. Deduplicates by URL.
CMS-heavy sites

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.

Watch trends, not single scans

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