
Auditoría web 360: De 5 CLIs a prompts para tu agente IA
Audita tu web cruzando 5 CLIs con IA: genera diagnósticos de seguridad, rendimiento, SEO y GEO, más un prompt listo para ejecutar en Cursor o Claude Code.
Ejecutas una auditoría tradicional en tu sitio web, obtienes un puntaje en rojo junto a cincuenta advertencias genéricas sobre “reducir el impacto de scripts de terceros” o “mejorar la estructura del DOM”, y te quedas exactamente igual que al inicio: sin saber qué archivo modificar ni por dónde empezar. La gran mayoría de herramientas del mercado arrojan diagnósticos pasivos que nadie lee, ignorando por completo la forma en que los desarrolladores construimos software hoy en día: en pareja con agentes de inteligencia artificial en nuestro editor de código.
Por qué los auditores web tradicionales quedaron obsoletos
El ecosistema web contemporáneo evolucionó en dos frentes que las herramientas de hace cinco años no contemplan:
- La búsqueda migró al modelo AEO / GEO: Los usuarios ya no solo buscan en Google con palabras clave aisladas; ahora consultan a motores generativos como Perplexity, SearchGPT o Claude. Si tu web carece de optimización para motores de respuestas (AEO) y motores generativos (GEO) —como endpoints
/llms.txt, datos estructurados Schema.org ricos en JSON-LD y un ratio texto/HTML limpio— tu contenido es invisible para los modelos que sintetizan la web. - Los parches técnicos los resuelven agentes: Cuando un ingeniero identifica problemas en cabeceras de seguridad, accesibilidad o Core Web Vitals, no busca tutoriales paso a paso; abre Cursor, Claude Code, Windsurf o Antigravity y le pide al agente que corrija el archivo. Lo que realmente se necesita no es un PDF de ochenta páginas, sino un prompt técnico estructurado y contextualizado que el modelo pueda ejecutar sin perderse.
Para cerrar esta brecha, desarrollé un analizador web completo y gratuito disponible directamente en la web de mi empresa: chamba.pro/webaudit.
No se trata de un SaaS independiente ni de un proyecto aislado con un dominio separado; es una herramienta integrada dentro del sitio oficial de CHAMBA.PRO concebida bajo una premisa clara: Engineering as Marketing.
La estrategia: Engineering as Marketing y autoridad real
En lugar de gastar presupuestos en publicidad tradicional de pago para promocionar servicios de consultoría y automatización, decidí apostar por una de las estrategias de adquisición orgánica más efectivas: crear herramientas públicas de valor genuino alojadas en nuestro propio dominio.
Esta estrategia cumple tres objetivos estratégicos clave:
- Generación de autoridad técnica: Cuando un fundador, CTO o desarrollador utiliza la herramienta y ve un informe exhaustivo en segundos, experimenta de inmediato la calidad de ingeniería y el estándar de trabajo de CHAMBA.PRO.
- Atracción de tráfico orgánico y backlinks: Las herramientas útiles se comparten de forma natural en comunidades, foros técnicos y redes sociales, fortaleciendo el posicionamiento SEO del dominio principal sin necesidad de comprar enlaces artificiales.
- Conversión natural de clientes: Quienes auditan su web y descubren cuellos de botella complejos en seguridad, rendimiento o arquitectura encuentran inmediatamente la opción de contactarnos para implementar la solución a nivel empresarial.
En lugar de reinventar la rueda intentando escribir un escáner desde cero, diseñé una arquitectura que aprovecha el poder de las mejores herramientas de código abierto consolidadas de la industria:
- Orquestación en paralelo: El backend ejecuta cinco motores y utilidades CLI especializadas (crawlers de rastreo profundo como Squirrel, evaluadores de cabeceras HTTP de seguridad, analizadores de rendimiento de red y verificadores de accesibilidad WCAG).
- Cruce de datos y normalización: Se procesan y desglosan los hallazgos en cuatro cuadrantes de análisis:
- Seguridad: Políticas de Content Security Policy (CSP), HSTS, protección contra clickjacking y certificados SSL.
- Rendimiento: Métricas de Core Web Vitals (LCP, CLS, INP), compresión de activos y carga diferida.
- SEO & Accesibilidad: Metaetiquetas canónicas, jerarquía semántica HTML5 y contrastes de color.
- GEO / Generative AI: Legibilidad sintética, presencia de archivos para agentes LLM y arquitectura de metadatos para motores de respuestas.
- Generación automática del Prompt para el Agente: El sistema compila todos los problemas críticos y advertencias detectadas en una directiva de ingeniería de software lista para copiar y pegar en tu asistente de programación favorito.
[ Entrada de Dominio: ej. tuweb.com ]
│
▼
[ BullMQ Queue en Redis ]
│
▼
[ Worker de Auditoría ]
├── Crawler Web Multi-página (Squirrel CLI)
├── Analizador de Seguridad & Cabeceras HTTP
├── Evaluador de Rendimiento & Core Web Vitals
└── Inspector de Semántica & GEO / AEO
│
▼
[ Motor de Síntesis con IA ]
│
┌────────┴──────────────────────────┐
▼ ▼
[ Dashboard Visual 360° ] [ Generador de Prompts ]
• Puntuación global (0-100) • Instrucciones de código paso a paso
• Desglose por 12 categorías • Archivos y selectores afectados
• Clasificación de severidad • Listo para Cursor / Claude Code
Paso 1: Ejecución asíncrona del pipeline con BullMQ
Rastrear un dominio completo, renderizar JavaScript y analizar docenas de reglas de red toma entre quince y cuarenta segundos. Para garantizar alta disponibilidad en el servidor web sin bloquear hilos HTTP, implementé una cola de procesamiento con BullMQ y Redis:
// workers/audit-worker.ts
import { Worker, Job } from 'bullmq';
import { execFile } from 'child_process';
import { promisify } from 'util';
import path from 'path';
import os from 'os';
const execFileAsync = promisify(execFile);
export function startAuditWorker() {
return new Worker(
'audit-tasks-queue',
async (job: Job) => {
const { normalizedUrl, domain } = job.data;
const tmpJson = path.join(os.tmpdir(), `audit_${job.id}.json`);
// 1. Rastrear páginas y auditar vectores técnicos
await job.updateProgress({ percent: 30, step: 'Ejecutando crawler y auditando páginas...' });
await execFileAsync('squirrel', [
'audit', normalizedUrl,
'-C', 'quick',
'-m', '15',
'-f', 'json',
'-o', tmpJson
], { timeout: 120000 });
// 2. Procesar métricas, cruzar hallazgos y evaluar GEO
await job.updateProgress({ percent: 80, step: 'Procesando métricas y análisis de GEO/AEO...' });
const rawData = await fs.readFile(tmpJson, 'utf-8');
const auditResult = JSON.parse(rawData);
// 3. Persistir en caché Redis con 24 horas de vigencia
await redis.set(`audit:result:${job.id}`, JSON.stringify(auditResult), 'EX', 86400);
return auditResult;
},
{ concurrency: 2 } // Control estricto de memoria en el servidor
);
}
Paso 2: Evaluación nativa de GEO y AEO
A diferencia de las herramientas del pasado, el sistema evalúa activamente cómo los modelos de lenguaje consumen tu sitio:
- Detección de
/llms.txt: Verifica si tu servidor expone un archivo de contexto estructurado para que navegadores basados en IA (como Perplexity o SearchGPT) comprendan tu propuesta de valor sin tener que procesar todo el HTML. - Entidades Schema.org en JSON-LD: Confirma que existan esquemas de tipo
Organization,SoftwareApplicationoArticlecon atributos completos. - Ratio de texto a etiquetas: Páginas con 95% de código JavaScript hinchado y 5% de texto real sufren penalizaciones en la indexación de modelos cognitivos.
Paso 3: El Prompt de resolución para tu Agente de IA
En la esquina superior del reporte consolidado se encuentra el botón Copiar Prompt AI. Este botón genera dinámicamente un bloque de texto que le entrega a tu agente el contexto técnico exacto para reparar la web:
# Contexto de Auditoría Técnica para Optimización
Actúa como un Ingeniero Full-stack Senior especializado en Seguridad, Rendimiento Web y SEO/GEO.
Se ha ejecutado una auditoría automatizada sobre el dominio objetivo con los siguientes resultados:
## Stack Tecnológico Detectado:
- Astro v7 (SSG / Content Collections)
- TypeScript v5
- TailwindCSS / Vanilla CSS
## PROBLEMAS CRÍTICOS (Prioridad Máxima):
### 1. [SEGURIDAD] Falta de cabeceras HTTP de protección
- Descripción: El servidor no envía Content-Security-Policy (CSP) ni X-Frame-Options.
- Verificaciones afectadas:
- `header-csp`: Ausente
- `header-x-frame-options`: Ausente
- Solución sugerida: Configurar cabeceras de respuesta en la capa de servidor o proxy inverso (Nginx / Cloudflare / Astro middleware).
### 2. [RENDIMIENTO] Largest Contentful Paint (LCP) elevado
- Descripción: La imagen principal del hero no cuenta con directiva `fetchpriority="high"`.
- Solución sugerida: Agregar directiva de precarga en la etiqueta `<Image>` o `<link rel="preload">`.
## INSTRUCCIONES DE ACCIÓN PARA EL AGENTE:
1. Inspecciona el codebase y localiza los archivos responsables de las configuraciones afectadas.
2. Aplica secuencialmente las soluciones técnicas respetando las directrices de diseño existentes.
3. Genera o actualiza el archivo `public/llms.txt` con el resumen estructurado de la plataforma.
4. Ejecuta linters y comandos de build para certificar que no existen regresiones.
5. Reporta un resumen conciso de los cambios archivo por archivo.
El flujo para el desarrollador se vuelve casi mágico: abres tu terminal o editor, pegas este prompt en Cursor o Claude Code, y el agente lee tu repositorio, localiza el archivo de configuración del servidor o layout, añade las cabeceras faltantes, optimiza los assets y eleva el score en minutos.
Lecciones aprendidas en producción
Construir un orquestador de auditorías web implica lidiar con la naturaleza caótica de internet:
- Timeouts en sitios lentos: Algunos portales tardan más de diez segundos en responder la solicitud inicial. Establecer timeouts granulares por herramienta en lugar de un timeout global evita que una sola prueba bloquee la cola.
- Normalización de severidades: Cada CLI tiene su propia definición de lo que constituye un “error grave”. Fue necesario crear una capa intermedia de mapeo heurístico que traduzca las salidas dispares a una escala unificada de tres niveles (Crítico, Advertencia, Aprobado).
- Consumo de recursos en contenedores: Ejecutar crawlers y análisis en paralelo requiere limitar estrictamente la concurrencia a nivel de worker de BullMQ para evitar saturar la CPU del VPS.
Conclusión
La auditoría web dejó de ser una tarea pasiva de lectura de métricas para convertirse en un ciclo de optimización asistido por inteligencia artificial. Al orquestar herramientas de análisis consagradas y traducirlas a directivas ejecutables para agentes de código, eliminamos horas de trabajo manual repetitivo.
Puntos clave:
- Optimizar para dos audiencias: Tu sitio web hoy debe estar diseñado para seres humanos y para motores de respuestas generativas (GEO/AEO).
- El reporte debe ser accionable: Un diagnóstico sin un plan de ejecución en código aporta poco valor; los prompts estructurados son el puente entre el problema y la solución.
- Orquestación sobre reinvención: Combinar proyectos open-source maduros mediante colas asíncronas permite construir soluciones complejas y confiables en tiempo récord.
Puedes auditar tu propio sitio web de forma gratuita y descargar el prompt para tu agente ahora mismo:
🔍 Prueba la Auditoría Web 360° en vivo:
Ingresa cualquier dominio y obtén tu diagnóstico completo junto al prompt para tu agente:
Artículos relacionados sobre arquitectura e IA
Si te interesa profundizar en arquitecturas asíncronas y automatizaciones que he implementado, te sugiero explorar:

¿Estás evaluando cómo automatizar procesos críticos, construir infraestructura con IA o resolver un reto técnico de arquitectura en tu empresa?
Conectemos directamente. Suelo responder consultas de consultoría y compartir aprendizajes técnicos semanalmente en mi red.