Lighthouse Dashboard
The Lighthouse tab shows PageSpeed Insights scores for every page of your site — grouped by URL, with mobile and desktop results side by side.
Sticky controls: report count, URL search, Fetch Remaining and Refresh All buttons — always visible while scrolling the grid.
One card per URL — mobile and desktop scores shown side by side with four score pills each and a per-card Run button.
Score Columns
Each report card shows four columns per strategy:
Performance
Core Web Vitals score — LCP, FID, CLS combined.
Accessibility
Color contrast, ARIA labels, keyboard nav.
Best Practices
HTTPS, modern APIs, security headers.
SEO
Meta tags, robots, structured data.
Mobile & Desktop Strategies
Every URL is audited twice — once with a simulated mobile device throttle and once with desktop conditions. Scores are stored and displayed independently:
Simulates a mid-range Android device on a 4G connection. Typically lower scores — the real-world baseline most users experience.
No network throttle, full CPU. Scores are usually higher. Use as a ceiling to identify opportunities on mobile.
Dashboard Actions
Fetch Remaining
Queries all published documents of the configured types, resolves their URLs, and enqueues mobile + desktop audits for any URL not yet in the database.
Refresh All
Re-runs all previously stored reports — useful after a deployment to see whether scores improved.
Run (per card)
Re-runs mobile and desktop audits for a single URL without touching other reports.
Job Queue
Audits run sequentially in a client-side queue. While running, a status strip appears above the grid showing the last 8 jobs:
queuedJob is waiting to start.runningPageSpeed API call in progress.doneReport saved to Sanity dataset.errorAPI error — message shown inline.Quota & Rate Limits
The PageSpeed Insights API has a default limit of 25,000 queries per day per Google Cloud project. This plugin makes no internal caching — every button press hits the live API.
2 calls per URL
Each audit runs once for mobile and once for desktop — so 48 URLs = 96 API calls per full refresh.
Resets midnight PT
The quota window is calendar-day Pacific Time, not rolling 24 hours. If you hit the limit at 11 PM, you only wait ~1 hour.
Plugin is on-demand only
Nothing runs automatically. Quota is only consumed when you click Run, Fetch Remaining, or Refresh All.
Shared per Cloud project
If other services in the same GCP project also call pagespeedonline, their usage counts toward the same ceiling.
How to increase the limit
- 1Open Google Cloud Console → IAM & Admin → Quotas.
- 2Filter by service: pagespeedonline.googleapis.com.
- 3Select "Queries per day" → click Edit Quotas.
- 4Submit a request with your expected daily volume. Google reviews and responds within 48 hours.
Report Persistence
Each completed audit is stored as an analytics.lighthouseReport document in your Sanity dataset. Re-running an audit for the same URL + strategy uses createOrReplace — so you always see the latest score.
// Document ID pattern:
// analytics-lighthouse-{strategy}-{documentId}
// e.g.
// analytics-lighthouse-mobile-abc123
// analytics-lighthouse-desktop-abc123