# Share an Unlighthouse Report — Site-Wide Lighthouse Scores on a Link

Canonical: https://commareports.com/share-unlighthouse-report
Published: 2026-09-01

> Unlighthouse scans every route and builds a static report. Publish it to Comma so the whole site's scores live at one URL, with threads on individual pages and a revision per scan.

# Share an Unlighthouse report

A single Lighthouse score is a fact about one URL, and every performance
conversation immediately outgrows it. The homepage is 94. The pages
people actually land on from search are 61, and nobody knows that,
because auditing them one at a time is nobody's job.

Unlighthouse crawls the site and audits every route. The result is the
report worth arguing over — and it is a static directory on whatever
machine ran the scan.

## Publish it

```bash
npx unlighthouse-ci --site "$SITE" --build-static

curl -fsS -X PATCH \
  "https://commareports.com/api/v1/reports/$COMMA_REPORT_ID" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile html .unlighthouse/index.html \
        --arg title "Site audit — $SITE — $(date +%F)" \
        '{title: $title, html: $html}')"
```

Dragging the whole `.unlighthouse/` directory into
[the app](https://commareports.com/) is usually better here — the report
is a small app, and uploading the directory brings the JS, CSS and
per-route data along with references rewritten to the uploaded copies.
Publishing `index.html` alone gives you a shell with no data in it.

## What the URL changes

- **Per-page threads.** "This route is slow because of the embedded map,
  tracked in WEB-204" pinned to the row for that route. See
  [commenting on HTML](/comment-on-html).
- **Scan-over-scan movement.** Revision per scan at one URL — the only
  honest way to claim performance work is landing. See
  [revisions and diffs](/share-html-report).
- **Marketing and SEO can read it.** No Node, no CI login.
- **Scheduled scans.** A [routine](/docs/routines) re-scans weekly, so a
  third-party tag that regresses LCP is caught without a deploy — see
  [scheduled HTML reports](/features/routines/scheduled-html-reports).

## Limits

- **Entry HTML: 5 MB.** Assets: 25 MB per file, **250 MB and 500 files
  total** — a crawl of a few hundred routes with full Lighthouse payloads
  per route can pass 500 files. Narrow the crawl with `--include` for the
  published report.
- **Scripts run, sandboxed**: `allow-scripts`, no `allow-same-origin`.
- **60 requests/minute per token.**

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited
revision history.

**[Create your first report →](https://commareports.com/)**

### Related

- [Lighthouse reports](/share-lighthouse-report) — the single-page version
- [Sitespeed.io](/share-sitespeed-report) · [Accessibility reports](/share-accessibility-report)
- [Weekly digests](/features/routines/weekly-analytics-digest) · [Publish from CI](/docs/ci)
