Analytics
docs
Dashboard

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.

Top Bar

Sticky controls: report count, URL search, Fetch Remaining and Refresh All buttons — always visible while scrolling the grid.

Report 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:

Mobile

Simulates a mid-range Android device on a 4G connection. Typically lower scores — the real-world baseline most users experience.

Desktop

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

  1. 1Open Google Cloud Console → IAM & Admin → Quotas.
  2. 2Filter by service: pagespeedonline.googleapis.com.
  3. 3Select "Queries per day" → click Edit Quotas.
  4. 4Submit a request with your expected daily volume. Google reviews and responds within 48 hours.
Open Quota Console

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 format
// Document ID pattern:
// analytics-lighthouse-{strategy}-{documentId}
// e.g.
// analytics-lighthouse-mobile-abc123
// analytics-lighthouse-desktop-abc123