/lighthouse-quick — Performance Quick Check
Static code analysis of the most common performance issues.
Not real Lighthouse — checks patterns in code that affect Core Web Vitals.
Check Catalog
LCP (Largest Contentful Paint)
| # |
Check |
What to look for |
| 1 |
Hero image optimized? |
<img> in above-the-fold: loading="eager", fetchpriority="high" |
| 2 |
Preload for critical assets? |
<link rel="preload"> for hero image, critical fonts |
| 3 |
Server response time? |
No blocking redirects, no chain loading |
| 4 |
Modern image formats? |
WebP/AVIF instead of PNG/JPG (Astro: <Image> component) |
CLS (Cumulative Layout Shift)
| # |
Check |
What to look for |
| 5 |
Images with width/height? |
All <img> need explicit dimensions |
| 6 |
Font display? |
font-display: swap or optional |
| 7 |
Dynamic content? |
Ads, embeds, lazy content without placeholders |
| 8 |
CSS animations? |
transform instead of top/left/width/height |
INP (Interaction to Next Paint)
| # |
Check |
What to look for |
| 9 |
Heavy event handlers? |
click/input handlers with >50ms work |
| 10 |
Main thread blocking? |
Synchronous loops, DOM manipulation in batches |
| 11 |
Debouncing? |
Input/scroll handlers without debounce/throttle |
Assets & Bundle
| # |
Check |
What to look for |
| 12 |
JS bundle size? |
Single bundles >200KB (uncompressed) |
| 13 |
Tree shaking? |
Barrel imports (import * from), unused dependencies |
| 14 |
CSS unused? |
Large CSS files without PurgeCSS/Tailwind |
| 15 |
Lazy loading? |
Below-the-fold images without loading="lazy" |
| 16 |
Compression? |
Gzip/Brotli in server config or build |
Fonts
| # |
Check |
What to look for |
| 17 |
Self-hosted? |
No Google Fonts CDN links (GDPR!) |
| 18 |
Subset? |
Font files >100KB? -> Recommend subsetting |
| 19 |
Formats? |
WOFF2 as primary format |
| 20 |
Preload? |
Critical fonts via <link rel="preload"> |
| 21 |
FOUT with view transitions? |
Font flash during ClientRouter navigation (Astro) |
View Transitions / ClientRouter
| # |
Check |
What to look for |
| 22 |
FOUT during navigation? |
Font flash with ClientRouter SPA navigation (Astro 5.18+/6 beta.16 fixed, check older versions) |
| 23 |
fetchpriority on hero? |
<Image fetchpriority="high"> for LCP-critical images (Astro 6 beta.16+) |
Procedure
- Find layout/base template -> analyze
<head>
- Search components/pages for
<img>, <script>, font references
- Check build config (vite.config, astro.config, etc.)
- Output findings with severity (HIGH/MEDIUM/LOW)
- Fix suggestions per finding
Output Format
Performance Quick Check — {Project}
====================================
[HIGH] LCP: Hero image without fetchpriority="high"
-> <img src="hero.jpg" fetchpriority="high" loading="eager">
[HIGH] FONTS: Google Fonts via CDN (GDPR violation)
-> Use self-hosted fonts
[MED] CLS: 3 images without width/height
-> Set explicit dimensions
[LOW] ASSETS: 2 below-fold images without lazy loading
-> Add loading="lazy"
Result: 4 findings (2 HIGH, 1 MED, 1 LOW)
Structured Output (Optional)
When called in the context of /polish or /audit, additionally write/extend .micro-check-results.json:
{
"lighthouseQuick": {
"date": "YYYY-MM-DD",
"checks": [
{ "id": "PERF-Q01", "name": "hero-fetchpriority", "status": "ok|missing", "severity": "HIGH" },
{ "id": "PERF-Q02", "name": "preload-critical", "status": "ok|missing", "severity": "MEDIUM" },
{ "id": "PERF-Q03", "name": "image-formats", "status": "ok|outdated", "severity": "MEDIUM" },
{ "id": "PERF-Q04", "name": "img-dimensions", "status": "ok|missing", "severity": "HIGH" },
{ "id": "PERF-Q05", "name": "font-display", "status": "ok|missing", "severity": "MEDIUM" },
{ "id": "PERF-Q06", "name": "font-self-hosted", "status": "ok|cdn", "severity": "HIGH" },
{ "id": "PERF-Q07", "name": "lazy-loading", "status": "ok|missing", "severity": "LOW" },
{ "id": "PERF-Q08", "name": "js-bundle-size", "status": "ok|too-large", "severity": "MEDIUM" }
],
"summary": { "ok": 6, "issues": 2 }
}
}
Rule: Only write when explicitly in the context of a parent skill. For standalone calls, text output only.
Rules
- Read-only — does not modify files except optional .micro-check-results.json
- Not real Lighthouse — purely static code analysis
- GDPR check (fonts) is always included
- For Astro: recommend
<Image> component instead of <img>
Upstream Reference
Real Lighthouse is at version 13.1.0 (minor update from 13.0.3). This is a minor release with potential scoring refinements — no major audit category changes expected. If users ask about Lighthouse score discrepancies, consider whether they upgraded between runs.
As of: 2026-04-09
1---2name: lighthouse-quick3description: Core Web Vitals performance check (LCP, CLS, INP). Use when: "lighthouse", "pagespeed", "performance", "core web vitals", "speed".4---56<!-- AI-QUICK-REF7## /lighthouse-quick — Quick Reference8- **Micro-skill** — Code-based performance check, no browser tool9- **Checks:** LCP, CLS, INP, images, fonts, JS bundle, CSS10- **Output:** Findings with severity + fix suggestions11- **Not real Lighthouse** — Static code analysis of performance patterns12- **Recommended:** Before launch, after major UI changes13-->1415# /lighthouse-quick — Performance Quick Check1617Static code analysis of the most common performance issues.18Not real Lighthouse — checks patterns in code that affect Core Web Vitals.1920## Check Catalog2122### LCP (Largest Contentful Paint)2324| # | Check | What to look for |25|---|-------|-----------------|26| 1 | Hero image optimized? | `<img>` in above-the-fold: `loading="eager"`, `fetchpriority="high"` |27| 2 | Preload for critical assets? | `<link rel="preload">` for hero image, critical fonts |28| 3 | Server response time? | No blocking redirects, no chain loading |29| 4 | Modern image formats? | WebP/AVIF instead of PNG/JPG (Astro: `<Image>` component) |3031### CLS (Cumulative Layout Shift)3233| # | Check | What to look for |34|---|-------|-----------------|35| 5 | Images with width/height? | All `<img>` need explicit dimensions |36| 6 | Font display? | `font-display: swap` or `optional` |37| 7 | Dynamic content? | Ads, embeds, lazy content without placeholders |38| 8 | CSS animations? | `transform` instead of `top/left/width/height` |3940### INP (Interaction to Next Paint)4142| # | Check | What to look for |43|---|-------|-----------------|44| 9 | Heavy event handlers? | `click`/`input` handlers with >50ms work |45| 10 | Main thread blocking? | Synchronous loops, DOM manipulation in batches |46| 11 | Debouncing? | Input/scroll handlers without debounce/throttle |4748### Assets & Bundle4950| # | Check | What to look for |51|---|-------|-----------------|52| 12 | JS bundle size? | Single bundles >200KB (uncompressed) |53| 13 | Tree shaking? | Barrel imports (`import * from`), unused dependencies |54| 14 | CSS unused? | Large CSS files without PurgeCSS/Tailwind |55| 15 | Lazy loading? | Below-the-fold images without `loading="lazy"` |56| 16 | Compression? | Gzip/Brotli in server config or build |5758### Fonts5960| # | Check | What to look for |61|---|-------|-----------------|62| 17 | Self-hosted? | No Google Fonts CDN links (GDPR!) |63| 18 | Subset? | Font files >100KB? -> Recommend subsetting |64| 19 | Formats? | WOFF2 as primary format |65| 20 | Preload? | Critical fonts via `<link rel="preload">` |66| 21 | FOUT with view transitions? | Font flash during ClientRouter navigation (Astro) |6768### View Transitions / ClientRouter6970| # | Check | What to look for |71|---|-------|-----------------|72| 22 | FOUT during navigation? | Font flash with ClientRouter SPA navigation (Astro 5.18+/6 beta.16 fixed, check older versions) |73| 23 | fetchpriority on hero? | `<Image fetchpriority="high">` for LCP-critical images (Astro 6 beta.16+) |7475## Procedure76771. Find layout/base template -> analyze `<head>`782. Search components/pages for `<img>`, `<script>`, font references793. Check build config (vite.config, astro.config, etc.)804. Output findings with severity (HIGH/MEDIUM/LOW)815. Fix suggestions per finding8283## Output Format8485```86Performance Quick Check — {Project}87====================================8889[HIGH] LCP: Hero image without fetchpriority="high"90 -> <img src="hero.jpg" fetchpriority="high" loading="eager">9192[HIGH] FONTS: Google Fonts via CDN (GDPR violation)93 -> Use self-hosted fonts9495[MED] CLS: 3 images without width/height96 -> Set explicit dimensions9798[LOW] ASSETS: 2 below-fold images without lazy loading99 -> Add loading="lazy"100101Result: 4 findings (2 HIGH, 1 MED, 1 LOW)102```103104## Structured Output (Optional)105106When called in the context of `/polish` or `/audit`, additionally write/extend `.micro-check-results.json`:107108```json109{110 "lighthouseQuick": {111 "date": "YYYY-MM-DD",112 "checks": [113 { "id": "PERF-Q01", "name": "hero-fetchpriority", "status": "ok|missing", "severity": "HIGH" },114 { "id": "PERF-Q02", "name": "preload-critical", "status": "ok|missing", "severity": "MEDIUM" },115 { "id": "PERF-Q03", "name": "image-formats", "status": "ok|outdated", "severity": "MEDIUM" },116 { "id": "PERF-Q04", "name": "img-dimensions", "status": "ok|missing", "severity": "HIGH" },117 { "id": "PERF-Q05", "name": "font-display", "status": "ok|missing", "severity": "MEDIUM" },118 { "id": "PERF-Q06", "name": "font-self-hosted", "status": "ok|cdn", "severity": "HIGH" },119 { "id": "PERF-Q07", "name": "lazy-loading", "status": "ok|missing", "severity": "LOW" },120 { "id": "PERF-Q08", "name": "js-bundle-size", "status": "ok|too-large", "severity": "MEDIUM" }121 ],122 "summary": { "ok": 6, "issues": 2 }123 }124}125```126127**Rule:** Only write when explicitly in the context of a parent skill. For standalone calls, text output only.128129## Rules130131- Read-only — does not modify files except optional .micro-check-results.json132- Not real Lighthouse — purely static code analysis133- GDPR check (fonts) is always included134- For Astro: recommend `<Image>` component instead of `<img>`135136## Upstream Reference137138Real Lighthouse is at version **13.1.0** (minor update from 13.0.3). This is a minor release with potential scoring refinements — no major audit category changes expected. If users ask about Lighthouse score discrepancies, consider whether they upgraded between runs.139140As of: 2026-04-09