Content Audit (Site-Crawl)
Audita un sitio completo — problemas por página, recomendaciones, exportación JSON para herramientas.
Content Audit rastrea un dominio completo (o un set de URLs definido) y evalúa cada página por calidad de contenido, SEO on-page, idoneidad GEO e higiene técnica. En lugar de optimización de URL individual (Content Optimizer), obtienes la visión global del sitio: qué páginas son thin, cuáles canibalizan, cuáles carecen de structured data, cuáles son candidatas a refresh, merge o delete. El resultado es un report navegable con drilldown a nivel de página, además de exportación JSON para herramientas externas o pipelines de reporting.
Qué puede hacer
- Crawl a nivel de site — dominio completo o subset por sitemap, según
type(full= hasta 1.000 páginas,quick= hasta 50,sitemap/singlepara los flujos de UI). - Hallazgo por página — cada URL encontrada recibe su propia
ContentAuditPagecon problemas, scores (SEO 0–100, calidad 0–100), word count y bucket de prioridad. - Clasificación de issues — thin content, duplicate, missing meta, broken internal links, falta de H1, gaps de citación (GEO), mala legibilidad. Los issues viven como JSON-array
{type:error|warning|info, category, message}por página. - Toggle solved + bulk mark — marcas páginas como solved una a una, o con un PATCH bulk filtrado (p.ej. «todas las low-priority con errores → solved»).
- Filtros en pages-listing — listado filtrable por
status,priority,min/max_seo_score,issue_type, ordenable por 7 columnas. - Exportación — JSON, CSV o XLSX para tus dashboards / sheets / Looker.
- Crawl async — background job, puedes salir de la página y volver más tarde.
Cuándo usarlo
- Te haces cargo de un sitio existente y quieres conocer primero el status quo.
- Planeas un relaunch y necesitas un inventario de contenido.
- Quieres identificar candidatos para merge / delete / refresh.
- Quieres un health-report mensual para stakeholders.
Workflow
- Inicia el audit —
POST /content-auditscon{source_url, type:"full"|"quick"}. Respuesta202+audit_id. - El crawl corre en background — haz polling de
GET /content-audits/{id}hastastatus=completed. Puedes salir de la página. - Pages listing —
GET /content-audits/{id}/pages?status=open&priority=high&issue_type=errormuestra solo las páginas que aún requieren trabajo. - Drilldown —
GET /content-audit-pages/{id}para el detalle de una página (issues + recommendations + page-data). - Toggle individual —
PATCH /content-audit-pages/{id}/solvedmarca una página como resuelta (body opcional — sin body se invierte). - Bulk mark —
PATCH /content-audits/{id}/pages/bulkcon filtro yis_solvedcierra un lote completo en una sola llamada (ver patrón abajo). - Exporta —
GET /content-audits/{id}/export?format=json|csv|xlsxpara procesamiento externo. - Sigue — envía URLs críticas a Content Optimizer o revísalas más a fondo como Page-Deep-Audit (Vision + Render IA).
API
| Método | Endpoint | Notas | Créditos |
|---|---|---|---|
| GET | /v1/content-audits |
Lista de tus audit runs (paginada) | — |
| POST | /v1/content-audits |
Body `{source_url, type:"full" | "quick"}, async 202` |
| GET | /v1/content-audits/{id} |
Summary + relación pages eager-loaded |
— |
| GET | /v1/content-audits/{id}/pages |
Pages listing. Filtros: status, priority, min_seo_score, max_seo_score, issue_type, sort, dir, per_page |
— |
| PATCH | /v1/content-audits/{id}/pages/bulk |
Bulk-mark. Body: {filter:{priority?, status?, min_seo_score?, max_seo_score?, issue_type?}, is_solved}. Throttle 30/min. |
— |
| GET | /v1/content-audits/{id}/export |
Exportación `?format=json | csv |
| GET | /v1/content-audit-pages/{id} |
Detalle de una página individual | — |
| PATCH | /v1/content-audit-pages/{id}/solved |
Toggle solved/open en una página | — |
Ejemplo de body PATCH /content-audits/{id}/pages/bulk — cerrar todas las páginas low-priority abiertas con error:
{
"filter": {
"priority": "low",
"status": "open",
"issue_type": "error"
},
"is_solved": true
}
Respuesta: {data:{affected:int, is_solved:bool}, meta:{applied_filter:{...}}}. filter.status es el estado FROM (solo se invierten filas que actualmente están en ese estado). issue_type matchea contra issues[].type (error / warning / info).
Ejemplo de body POST /content-audits:
{
"source_url": "https://meinedomain.de",
"type": "full"
}
Créditos y límites
- Inicio: 10 créditos por audit run, independientemente de la profundidad del crawl.
- Async — la página puede cerrarse, el crawl sigue corriendo en el servidor.
- Límite de crawl por run según el plan; sites muy grandes se traen en chunks de sitemap.
- Las áreas protegidas (login, bloqueo de robots) se omiten y se marcan en el report.
Módulos relacionados
- Content Optimizer — optimiza URLs problemáticas individualmente.
- Page-Deep-Audit — auditoría profunda visual + Lighthouse + IA en páginas críticas.
- Content Freshness — monitoriza adicionalmente páginas desactualizadas.
- Competitor Analysis — benchmark contra la competencia.
- Content Audit ≠ Site Audit. Content Audit (
/audit) es el escáner de calidad de contenido (SEO score, quality score, recomendaciones por página). Site Audit (/site-audit) es el crawler con detección de crawl-issues más bridge automático de grounding — dos módulos distintos con foco complementario.