Content Audit (Site-Crawl)
Komplette Site auditen — Probleme pro Seite, Empfehlungen, JSON-Export für Tools.
Content Audit crawlt eine ganze Domain (oder ein definiertes URL-Set) und bewertet jede einzelne Seite auf Content-Qualität, On-Page-SEO, GEO-Eignung und technische Hygiene. Statt einzelner URL-Optimierung (Content Optimizer) bekommst du den Site-Überblick: welche Seiten sind dünn, welche kannibalisieren, welche fehlen Strukturdaten, welche sind kandidaten für Refresh, Merge oder Delete. Das Ergebnis ist ein navigierbarer Report mit Drilldown auf Page-Level plus JSON-Export für externe Tools oder Reporting-Pipelines.
Was es kann
- Site-weiter Crawl — gesamte Domain oder Sitemap-Subset, je nach
type(full= bis zu 1.000 Pages,quick= bis zu 50,sitemap/singlefür UI-Pfade). - Pro-Seite-Befund — jede gefundene URL bekommt eine eigene
ContentAuditPagemit Problemen, Score (SEO 0–100, Quality 0–100), Word-Count und Priority-Bucket. - Issue-Klassifikation — thin content, duplicate, missing meta, broken internal links, fehlende H1, Zitations-Lücken (GEO), schlechte Lesbarkeit. Issues sind als JSON-Array
{type:error|warning|info, category, message}pro Page abgelegt. - Solved-Toggle + Bulk-Mark — Probleme markierst du als „solved", einzeln oder per Filter-basiertem Bulk-PATCH (z.B. „alle low-priority error-Pages → solved").
- Pages-Filter — Pages-Listing filterbar nach
status,priority,min/max_seo_score,issue_type, sortierbar nach 7 Spalten. - Export — JSON, CSV oder XLSX für eigene Dashboards / Sheets / Looker.
- Async-Crawl — Background-Job, du kannst die Seite verlassen und später zurückkommen.
Wann nutzen
- Du übernimmst eine bestehende Site und willst zuerst den Status quo wissen.
- Du planst einen Relaunch und brauchst eine Content-Inventur.
- Du willst Kandidaten für Merge / Delete / Refresh identifizieren.
- Du willst einen monatlichen Health-Report für Stakeholder.
Workflow
- Audit starten —
POST /content-auditsmit{source_url, type:"full"|"quick"}. Antwort202+audit_id. - Crawl läuft im Hintergrund — UI pollt Status, du kannst die Seite verlassen.
GET /content-audits/{id}bisstatus=completed. - Pages-Listing —
GET /content-audits/{id}/pages?status=open&priority=high&issue_type=errorzeigt nur die Pages, die wirklich noch Arbeit brauchen. - Drilldown —
GET /content-audit-pages/{id}für Detail einer einzelnen Seite (Issues + Recommendations + Page-Data). - Single-Toggle —
PATCH /content-audit-pages/{id}/solvedmarkiert eine Seite als gelöst (Body optional, ohne Body wird geflippt). - Bulk-Mark —
PATCH /content-audits/{id}/pages/bulkmit Filter undis_solvedschreibt einen ganzen Stapel auf einmal um (z.B. „alle low-priority Pages → solved", siehe Bulk-Pattern unten). - Export —
GET /content-audits/{id}/export?format=json|csv|xlsxfür externe Verarbeitung. - Folgen — kritische URLs in Content Optimizer schicken oder als Page-Deep-Audit (Vision + KI-Render) tiefer prüfen.
API
| Method | Endpoint | Notes | Credits |
|---|---|---|---|
| GET | /v1/content-audits |
Liste deiner Audit-Runs (paginiert) | — |
| POST | /v1/content-audits |
Body `{source_url, type:"full" | "quick"}, async 202` |
| GET | /v1/content-audits/{id} |
Summary + eager-loaded pages-Relation |
— |
| GET | /v1/content-audits/{id}/pages |
Pages-Listing. Filter: 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 |
Export `?format=json | csv |
| GET | /v1/content-audit-pages/{id} |
Detail einer einzelnen Page | — |
| PATCH | /v1/content-audit-pages/{id}/solved |
Single-Page als gelöst/offen markieren | — |
Body-Beispiel PATCH /content-audits/{id}/pages/bulk — alle low-priority offenen Pages mit error-Issues abhaken:
{
"filter": {
"priority": "low",
"status": "open",
"issue_type": "error"
},
"is_solved": true
}
Response: {data:{affected:int, is_solved:bool}, meta:{applied_filter:{...}}}. filter.status ist die FROM-State (nur Rows in diesem Status werden geflippt). issue_type matched gegen issues[].type (error / warning / info).
Body-Beispiel POST /content-audits:
{
"source_url": "https://meinedomain.de",
"type": "full"
}
Credits & Limits
- Start: 10 Credits pro Audit-Run, unabhängig von der Crawl-Tiefe.
- Async — die Seite kann geschlossen werden, der Crawl läuft auf dem Server weiter.
- Crawl-Limit pro Run abhängig vom Plan; sehr große Sites werden in Sitemap-Chunks gepullt.
- Geschützte Bereiche (Login, robots-Block) werden übersprungen und im Report markiert.
Verwandte Module
- Content Optimizer — gefundene Problem-URLs einzeln optimieren.
- Page-Deep-Audit — kritische Seiten visuell + Lighthouse + KI tief auditieren.
- Content Freshness — veraltete Seiten ergänzend monitoren.
- Competitor Analysis — gegen die Konkurrenz benchmarken.
- Content Audit ≠ Site Audit. Content Audit (
/audit) ist der Content-Quality-Scanner (SEO-Score, Quality-Score, Empfehlungen pro Page). Site Audit (/site-audit) ist der Crawler mit Crawl-Issue-Detection plus automatischer Grounding-Bridge — zwei verschiedene Module mit komplementärem Fokus.