Herramienta CLI para análisis SEO en sitios estáticos.
npm install seopilot> Una herramienta CLI ligera para detectar errores SEO en sitios web estáticos de forma automática, simple y efectiva.
---
SEOpilot es un analizador SEO para sitios generados con frameworks como React, Astro, Vue, Next.js (modo export), Vite, entre otros. Escanea archivos HTML y te reporta errores comunes de SEO como:
- Múltiples etiquetas
- Falta de o
- Imágenes sin atributo alt
- Falta de lang en la etiqueta
Ideal para proyectos estáticos y flujos de CI/CD donde el SEO importa desde el principio.
---
- ✅ Fácil de usar: npx seopilot
- ✅ Soporte para --verbose, --json, --limit, --fail-on-error
- ✅ Análisis automático de Core Web Vitals con Lighthouse (LCP, FID, CLS, TBT, FCP, score)
- ✅ Recomendaciones automáticas según resultados de Lighthouse
- ✅ Funciona en cualquier framework moderno
- ✅ Puede integrarse en CI (GitHub Actions, etc.)
- ✅ Salida clara y útil para humanos o máquinas
---
SEOpilot ejecuta automáticamente Lighthouse sobre cualquier URL pública que le pases como argumento. Obtendrás métricas de Core Web Vitals y recomendaciones automáticas para mejorar el rendimiento y la experiencia de usuario.
``bash`
npx seopilot https://www.tusitio.com
`
🚦 Ejecutando Lighthouse para https://www.tusitio.com...
┌───────────────────────────────┐
│ Core Web Vitals: │
│ lcp: '2.1 s', │
│ fid: '30 ms', │
│ cls: '0.01', │
│ tbt: '120 ms', │
│ fcp: '1.1 s', │
│ score: 0.98 │
└───────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 🔎 Recomendaciones Lighthouse:┃
┃ ✅ ¡Excelente! Tus métricas ┃
┃ Core Web Vitals están dentro ┃
┃ de los valores recomendados. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
`
Si alguna métrica está fuera de los valores recomendados, SEOpilot te dará sugerencias claras para mejorar tu sitio.
---
---
`bash`
npx seopilot
`bash`
npm i -D seopilot
Luego, en tu package.json:
`json`
"scripts": {
"seo": "seopilot"
}
---
``
📦 tu-proyecto/
├─ dist/ ← carpeta de salida (HTMLs generados)
├─ src/
├─ .github/workflows/ ← integración con CI
└─ ...
---
`bash`
npx seopilot
---
`bash`
npx seopilot --path src/testing
---
`bash`
npx seopilot --verbose
---
`bash`
npx seopilot --json
---
`bash`
npx seopilot --fail-on-error
---
`bash`
npx seopilot --limit 20
---
`bash`
npx seopilot --path src/testing --verbose --limit 10 --fail-on-error
---
`
📊 Resumen de errores:
❌ Imagen sin alt: hero.jpg — 2 ocurrencias
❌ Falta — 1 ocurrencias
`
``
📄 dist/index.html
❌ Imagen sin alt: hero.jpg
❌ Falta
`json`
{
"totalFilesScanned": 5,
"errors": [
{
"file": "dist/index.html",
"messages": ["Falta
}
],
"summary": {
"Falta
"Imagen sin alt: hero.jpg": 2
}
}
---
`yaml
name: SEO Check
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
seo:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Build project
run: npm run build
- name: Run SEOpilot
run: npx seopilot --fail-on-error
`
---
Colocá estos archivos en una carpeta src/testing/ y corré:
`bash`
npx seopilot --path src/testing --verbose
`html`
Hola mundo

`html`
Falta título
`html`
Uno
Dos
---
- [x] Soporte CLI completo
- [x] Modo JSON
- [x] CI con GitHub Actions
- [ ] Configuración por archivo seopilot.config.ts
- [ ] Reglas personalizadas
- [ ] Modo web/interfaz gráfica
- [ ] Autocorrección básica (opcional)
---
¡Son bienvenidas! Puedes:
- Abrir issues
- Sugerir nuevas reglas SEO
- Proponer mejoras de UX
- Enviar PRs
---
Creado por @estanisalpre — para que ningún proyecto se quede sin SEO por descuido.
---
MIT — Usá, modificá, compartí. Pero no pongas