Introducción: Por Qué Automatizar SEO con CI/CD
Automatizar tareas SEO reduce errores humanos, acelera revisiones y permite reaccionar rápidamente ante problemas (errores 404 masivos, cambios de meta, caídas de Core Web Vitals). GitHub Actions, combinado con APIs (Search Console, Pagespeed Insights) y scripts, permite integrar controles SEO dentro de tu flujo de desarrollo y despliegue.
Casos de Uso Comunes para Automatización SEO
- Chequeo automático de metadatos (title, meta description) en PRs
- Generación y validación de sitemap.xml en cada push
- Tests automáticos de Core Web Vitals con PageSpeed Insights API
- Extracción periódica de datos de Google Search Console por script
- Alertas por email/Slack cuando crecen errores 4xx/5xx o cambian métricas críticas
Ejemplo: Workflow de GitHub Actions para Validación SEO en Pull Requests
Este workflow corre en cada PR y valida que las nuevas páginas tengan `title`, `meta description`, `og:image` y schema básico. Si falla, comenta en el PR con instrucciones.
name: SEO PR Validation
on:
pull_request:
paths:
- 'src/pages/**'
- 'src/content/**'
jobs:
validate-seo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install deps
run: npm ci
- name: Run SEO lint script
run: node scripts/seo-lint.js
El script `seo-lint.js` debe recorrer los nuevos archivos añadidos en el PR y validar los metadatos. Si detecta problemas, puede salir con código distinto a 0 para fallar el job y/o usar la API de GitHub para comentar en el PR. Esta práctica previene que contenido sin SEO básico llegue a producción.
Ejemplo de Script en Node: seo-lint.js (conceptual)
const fs = require('fs');
const glob = require('glob');
const files = glob.sync('src/pages/**/*.astro');
let errors = [];
files.forEach(f => {
const content = fs.readFileSync(f, 'utf8');
if (!/\<title\>/.test(content)) errors.push(`${f} missing <title>`);
if (!/meta name="description"/.test(content)) errors.push(`${f} missing meta description`);
});
if (errors.length) {
console.error('SEO Lint failed:\n', errors.join('\n'));
process.exit(1);
}
console.log('SEO Lint passed');
Automatizar PageSpeed Insights y Alertas de CWV
Usa la API de PageSpeed Insights en un workflow programado (cron) para obtener Core Web Vitals de tus páginas más críticas. Compara los resultados con un umbral (por ejemplo, LCP < 2.5s, INP < 200ms). Si una página empeora, crea un issue automáticamente o envía una alerta a Slack.
uses: fjogeleit/http-request-action@v1
with:
url: 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://tusitio.com/&key=${{ secrets.PSI_API_KEY }}'
Exportar Datos de Google Search Console Regularmente
Configura un job programado que use la API de Search Console para bajar consultas y páginas; almacena los CSV en el repo (o en un bucket). Esto permite generar reportes automáticos y detectar keywords de oportunidad de forma continua.
Consideraciones de Seguridad y Secretos
Almacena API keys y credenciales en GitHub Secrets. Limita permisos del token de servicio y usa cuentas de servicio con alcance mínimo. Evita volcar secretos en logs y controla quién puede modificar workflows en la organización.
Conclusión y Buenas Prácticas
- Automatiza checks en PRs para evitar regressions SEO
- Programa auditorías periódicas (CWV, sitemaps, estado 4xx)
- Centraliza reportes en dashboards y crea alertas accionables
- Mantén seguridad en el manejo de secretos y permisos
- Itera: comienza con checks básicos y añade automatizaciones de mayor valor
Integrar SEO en tu pipeline CI/CD transforma la manera en la que desarrollas contenido: deja de ser una tarea posterior y se convierte en parte del flujo normal de trabajo. Con workflows bien diseñados, tus equipos pueden entregar contenido y cambios técnicos con confianza y rapidez, mientras mantienen los estándares SEO.