🦀 ClawHub
Astro Project Analyzer
by @charlie-morrison
Analyze and optimize Astro projects — audit configuration, performance, SEO, accessibility, content collections, and integration setup.
TERMINAL
clawhub install astro-project-analyzer📖 About This Skill
name: astro-project-analyzer description: Analyze and optimize Astro projects — audit configuration, performance, SEO, accessibility, content collections, and integration setup. metadata: tags: ["astro", "web", "performance", "seo", "frontend"]
Astro Project Analyzer
Analyze Astro projects for configuration quality, performance optimization, SEO compliance, accessibility, and best practices. Use when setting up new Astro sites, auditing existing ones, migrating from other frameworks, or optimizing build performance.
Usage
"Analyze this Astro project for issues"
"Optimize my Astro site's performance"
"Check my Astro config for best practices"
"Audit content collections for consistency"
"Help migrate my Next.js site to Astro"
How It Works
1. Project Discovery
Scan the Astro project structure:
# Detect Astro version and config
cat astro.config.mjs 2>/dev/null || cat astro.config.ts 2>/dev/null
cat package.json | python3 -c "import json,sys; d=json.load(sys.stdin); print('Astro:', d.get('dependencies',{}).get('astro', d.get('devDependencies',{}).get('astro','not found')))"Map project structure
find src -type f | head -50
ls src/pages/ src/layouts/ src/components/ src/content/ 2>/dev/null
2. Configuration Audit
Check astro.config.mjs for:
@astrojs/image or built-in astro:assets?3. Performance Analysis
client:load, client:idle, client:visible, client:media, client:only component? WebP/AVIF?@fontsource or optimized font strategy?4. Content Collections
If using content collections (src/content/):
5. SEO & Accessibility
6. Routing & Pages
7. Deployment Readiness
Output
## Astro Project AnalysisVersion: Astro 5.2.1 | Mode: hybrid | Adapter: @astrojs/vercel
🔴 Issues (3)
1. Missing component — 8 pages use raw ![]()
tags
→ Import from 'astro:assets' for automatic optimization
2. client:load on footer newsletter form — should be client:visible
→ Form is below fold, no need to hydrate on page load
3. No sitemap integration — search engines can't discover pages
→ Add @astrojs/sitemap to integrations🟡 Improvements (5)
4. Content collection "blog" has no schema validation
→ Add Zod schema in src/content/config.ts
5. Global CSS file is 12KB — 40% unused on most pages
→ Convert to scoped styles or use CSS purging
[...]🟢 Good Practices
View Transitions enabled for smooth navigation
Proper island architecture — only 3 interactive components
Images in WebP format with fallbacks
Font loaded via @fontsource (no external requests) Performance Score
Estimated Lighthouse: 92/100 (after fixes: 97/100)
Total client JS: 23KB (good for hybrid site)
Build time: ~8s for 47 pages
💡 Examples
"Analyze this Astro project for issues"
"Optimize my Astro site's performance"
"Check my Astro config for best practices"
"Audit content collections for consistency"
"Help migrate my Next.js site to Astro"