Multi-Page Performance Audit

SEO unlighthouse

by AgriciDaniel · MIT license · ★ 17,394 on GitHub · updated Sep 11

SEO unlighthouse cover

Multi-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.

---
name: seo-unlighthouse
description: Multi-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.
metadata:
  version: "2.3.1"
compatibility: "Requires Node 18+ and the unlighthouse npm package. Run extensions/unlighthouse/install.sh to pre-warm."
---

# seo-unlighthouse

Run Lighthouse against every URL on a site (up to a configurable cap)
and aggregate the results. Useful when:

- PageSpeed Insights' free quota (25k QPD) isn't enough for a large site.
- You want offline / local CWV measurement (CI integration, restricted environments).
- You need a quick site-wide regression check after a deploy.

## Prerequisites

Overview

Run Lighthouse against every URL on a site (up to a configurable cap) and aggregate the results. Useful when:

What you get

  • route_count: number of routes actually audited
  • aggregate_scores: median score per Lighthouse category across all audited
  • routes: the per-route breakdown (also on disk at <output_dir>/ci-result.json)

The SKILL.md below is the copy AgentAlley read and checked. The repo has changed it since; the other files are from commit e77e783.

Manual install (npx, ZIP)
Claude Codenpx skills add AgriciDaniel/claude-seo --skill seo-unlighthouse -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/AgriciDaniel/claude-seo/tar.gz/e77e783e38ee \ | tar -xz -C ~/.claude/skills --strip-components=4 claude-seo-e77e783e38ee/extensions/unlighthouse/skills/seo-unlighthouse
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/470cc820990d26a88a0c/seo-unlighthouse.zip" -OutFile "$env:TEMP\seo-unlighthouse.zip"; Expand-Archive "$env:TEMP\seo-unlighthouse.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md2.4 KB
Read the files here
AgriciDaniel/e77e7831 file
SKILL.md
Show the full text57 lines
seo-unlighthouse/SKILL.md57 lines · 2.4 KB

seo-unlighthouse

Run Lighthouse against every URL on a site (up to a configurable cap) and aggregate the results. Useful when:

  • PageSpeed Insights' free quota (25k QPD) isn't enough for a large site.
  • You want offline / local CWV measurement (CI integration, restricted environments).
  • You need a quick site-wide regression check after a deploy.

Prerequisites

  • Run extensions/unlighthouse/install.sh (no API key needed).
  • Node 18+ on $PATH.

Routing

Command Effect
/seo unlighthouse <url> Mobile audit, up to 200 routes, JSON+HTML report in a temp dir
/seo unlighthouse <url> --device desktop Desktop form factor
/seo unlighthouse <url> --max-routes 50 --output-dir ./reports Cap + persist

All flags forward through "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run unlighthouse_run.py, which handles url_safety pre-flight and subprocess timeout management.

Output handling

The wrapper reads ci-result.json from the Unlighthouse output dir, normalizes it (the default jsonSimple reporter writes a flat JSON array of per-route results; a tolerant fallback also accepts the jsonExpanded object shape), and returns:

  • route_count: number of routes actually audited
  • aggregate_scores: median score per Lighthouse category across all audited routes (performance, accessibility, best-practices, seo)
  • routes: the per-route breakdown (also on disk at <output_dir>/ci-result.json)

Route cap and per-page timeout are set via a generated unlighthouse.config.mjs passed with --config-file (the only CLI-documented way to set scanner.maxRoutes; unlighthouse-ci has no --max-routes flag). Use --page-timeout <seconds> to change the per-page Lighthouse task timeout (default 60s); this is separate from the overall --timeout subprocess guard (default 600s).

Cross-skill delegation

  • For single-URL field data (CrUX), use seo-google psi / seo-google crux.
  • For LCP subpart decomposition on slow pages, use the "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run lcp_subparts.py workflow (Phase C).
1---
2name: seo-unlighthouse
3description: Multi-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.
4metadata:
5 version: "2.3.1"
6compatibility: "Requires Node 18+ and the unlighthouse npm package. Run extensions/unlighthouse/install.sh to pre-warm."
7---
8 
9# seo-unlighthouse
10 
11Run Lighthouse against every URL on a site (up to a configurable cap)
12and aggregate the results. Useful when:
13 
14- PageSpeed Insights' free quota (25k QPD) isn't enough for a large site.
15- You want offline / local CWV measurement (CI integration, restricted environments).
16- You need a quick site-wide regression check after a deploy.
17 
18## Prerequisites
19 
20- Run `extensions/unlighthouse/install.sh` (no API key needed).
21- Node 18+ on `$PATH`.
22 
23## Routing
24 
25| Command | Effect |
26|---|---|
27| `/seo unlighthouse <url>` | Mobile audit, up to 200 routes, JSON+HTML report in a temp dir |
28| `/seo unlighthouse <url> --device desktop` | Desktop form factor |
29| `/seo unlighthouse <url> --max-routes 50 --output-dir ./reports` | Cap + persist |
30 
31All flags forward through `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run unlighthouse_run.py`, which handles
32url_safety pre-flight and subprocess timeout management.
33 
34## Output handling
35 
36The wrapper reads `ci-result.json` from the Unlighthouse output dir, normalizes
37it (the default `jsonSimple` reporter writes a flat JSON array of per-route
38results; a tolerant fallback also accepts the `jsonExpanded` object shape),
39and returns:
40 
41- `route_count`: number of routes actually audited
42- `aggregate_scores`: median score per Lighthouse category across all audited
43 routes (`performance`, `accessibility`, `best-practices`, `seo`)
44- `routes`: the per-route breakdown (also on disk at `<output_dir>/ci-result.json`)
45 
46Route cap and per-page timeout are set via a generated `unlighthouse.config.mjs`
47passed with `--config-file` (the only CLI-documented way to set `scanner.maxRoutes`;
48unlighthouse-ci has no `--max-routes` flag). Use `--page-timeout <seconds>` to
49change the per-page Lighthouse task timeout (default 60s); this is separate
50from the overall `--timeout` subprocess guard (default 600s).
51 
52## Cross-skill delegation
53 
54- For single-URL field data (CrUX), use `seo-google psi` / `seo-google crux`.
55- For LCP subpart decomposition on slow pages, use the
56 `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run lcp_subparts.py` workflow (Phase C).
57 
View all files on GitHub →

Details

Updated
Sep 11, 2026
License
MIT
Stars on the repo
★ 17,394
Checked
Source
AgriciDaniel/claude-seo ↗
Creator
AgriciDaniel · 129 listings
View creator

Similar skills

See all →
SkillAgent Browsing AuditorAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillCMS Configuration Helpernowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillBacklink Comparison ToolRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillWeb Vitals Auditoraddyosmani/web-quality-skills · by addyosmaniOptimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts".★ 2.8k GitHub starsSkillSEO Publishing Looptsingyuai/growth-lab · by tsingyuaiRun an SEO page observation-action-review loop with persistent Memory by coordinating demand research, page creation, adversarial review, image generation, IndexNow submission, and performance review. Use when taking an SEO page from opportunity discovery through publication, measurement, iteration, or continuing a previous SEO loop from Memory.★ 2k GitHub stars

More from AgriciDaniel

SkillAgent Browsing AuditorAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillAI Search OptimizationAgriciDaniel/claude-seo · by AgriciDanielOptimize content for AI Overviews (formerly SGE), ChatGPT web search, Perplexity, and other AI-powered search experiences. Generative Engine Optimization (GEO) analysis including brand mention signals, AI crawler accessibility, llms.txt compliance, passage-level citability scoring, and platform-specific optimization. Use when user says "AI Overviews", "SGE", GEO", "AI search", "LLM optimization", "Perplexity", "AI citations", ChatGPT search", or "AI visibility".★ 17.4k GitHub starsSkillBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillAmazon Ads AuditorAgriciDaniel/claude-ads · by AgriciDanielYou share your Amazon advertising numbers and goals; you get back a plain-language review of what's draining your budget and what to change first.★ 9.5k GitHub starsSkillApple Search Ads AuditorAgriciDaniel/claude-ads · by AgriciDanielPaste what you're spending on Apple Search Ads and your recent numbers; get back a plain review of what's wasting money and what to fix first.★ 9.5k GitHub starsSkillAttribution AuditorAgriciDaniel/claude-ads · by AgriciDanielPaste the sales and spend numbers each ad platform claims, and get back a plain explanation of why they disagree and which figure to trust.★ 9.5k GitHub stars