$npx -y skills add AgriciDaniel/claude-seo --skill seo-unlighthouseMulti-page Lighthouse audit via the MIT-licensed Unlighthouse CLI. Free-tier alternative to running PageSpeed against every URL on a site, no API quota burn, runs locally.
| 1 | # seo-unlighthouse |
| 2 | |
| 3 | Run Lighthouse against every URL on a site (up to a configurable cap) |
| 4 | and aggregate the results. Useful when: |
| 5 | |
| 6 | - PageSpeed Insights' free quota (25k QPD) isn't enough for a large site. |
| 7 | - You want offline / local CWV measurement (CI integration, restricted environments). |
| 8 | - You need a quick site-wide regression check after a deploy. |
| 9 | |
| 10 | ## Prerequisites |
| 11 | |
| 12 | - Run `extensions/unlighthouse/install.sh` (no API key needed). |
| 13 | - Node 18+ on `$PATH`. |
| 14 | |
| 15 | ## Routing |
| 16 | |
| 17 | | Command | Effect | |
| 18 | |---|---| |
| 19 | | `/seo unlighthouse <url>` | Mobile audit, up to 200 routes, JSON+HTML report in a temp dir | |
| 20 | | `/seo unlighthouse <url> --device desktop` | Desktop form factor | |
| 21 | | `/seo unlighthouse <url> --max-routes 50 --output-dir ./reports` | Cap + persist | |
| 22 | |
| 23 | All flags forward to `scripts/unlighthouse_run.py` which handles |
| 24 | url_safety pre-flight and subprocess timeout management. |
| 25 | |
| 26 | ## Output handling |
| 27 | |
| 28 | The wrapper reads `ci-result.json` from the Unlighthouse output dir and |
| 29 | returns it parsed. Aggregate fields: |
| 30 | |
| 31 | - `score.performance` (median across audited routes) |
| 32 | - `score.accessibility`, `score.bestPractices`, `score.seo` |
| 33 | - Per-route breakdown is available in `<output_dir>/ci-result.json` |
| 34 | |
| 35 | ## Cross-skill delegation |
| 36 | |
| 37 | - For single-URL field data (CrUX), use `seo-google psi` / `seo-google crux`. |
| 38 | - For LCP subpart decomposition on slow pages, use the |
| 39 | `scripts/lcp_subparts.py` workflow (Phase C). |