Site Audit (Crawler + LLM Citation Readiness)
Technische SEO + Grounding-Page-Scan in einem Crawl — inklusive Close-the-Loop für API-Caller.
Site Audit crawlt deine Domain (BFS oder via sitemap.xml), erzeugt für jede gefundene URL einen Issue-Report (technische SEO + Content-Hygiene) und feuert direkt im Anschluss automatisch einen Grounding-Audit-Batch über bis zu 100 Pages. Die Findings werden als zusätzliche Issues mit Prefix grounding_* in dieselbe Issues-Liste eingespeist — ein einziger Dashboard-View für technische SEO + LLM-Citation-Readiness.
Was es kann
- Crawl-Modi —
bfs(Link-Discovery abstart_url, depth-limited) ODERsitemap(lädt alle URLs aussitemap.xml, rekursiv inkl. Sitemap-Index, ignoriertcrawl_depth). Hartes Cap: 10 000 Seeds,max_pagesenforced. - Issue-Klassifikation — fix-priority-sortiert, gefiltert nach
severity(critical|high|medium|low|notice),issue_typeundstatus(open|fixed|dismissed). Eager-loadedurlpro Issue. - Auto-Grounding-Bridge — automatisch nach Crawl-Completion: Grounding-Audit-Batch über bis zu 100 Pages → Findings landen als
grounding_*-Issues im selben Crawl. Keine Zusatz-Credits. Idempotent (Re-Run dedupt). - Close-the-Loop — Issues per Klick (UI) oder per API als
fixed/dismissedmarkieren — einzeln ODER bulk proissue_type. Pflicht-Schritt nach jedem Fix damit die Delta-Vergleichsmetrik („seit letztem Crawl behoben") sinnvoll funktioniert. - AI-Brief (5 Credits pro Brief) — narrative LLM-Erklärung pro Issue auf Knopfdruck.
- Bridge-Timestamps —
bridge_dispatched_at(Batch dispatched) undbridge_completed_at(alle grounding_*-Issues final). Deterministische Polling-Condition statt blind 1-3 min zu warten.
Wann nutzen
- Site-weite technische SEO-Bestandsaufnahme.
- LLM-Citation-Readiness der ganzen Domain prüfen ohne 340× Single-Audit-Calls.
- Vor einem Relaunch: was muss noch raus / gefixt werden.
- Monatlicher Health-Check für Stakeholder.
Workflow im UI
- Start — Form unter
/site-audit(start_url, max_pages, crawl_depth, crawl_mode, optional tracking_project_id). - Polling — Detail-Page
/site-audit/{crawl}zeigt Live-Counter (pages_crawled, total_issues). Auto-Refresh. - Close-the-Loop — Pro Issue gibt es 2 Buttons: ✓ Behoben und ⊘ Verwerfen. Oberhalb der Tabelle eine Bulk-Action-Toolbar mit Dropdown „Issue-Typ wählen" + Alle als behoben markieren / Alle verwerfen für mass-fixes nach Layout-/Template-Changes.
- Re-Crawl — Nachdem critical+high gelöst sind, neuer Crawl → Trend-Block zeigt „seit letztem Crawl behoben" / „seit letztem Crawl neu".
Workflow per API (Skill-Caller)
Pflicht-Sequenz nach Fix:
# 1. Issues holen
ISSUES=$(curl -sH "Authorization: Bearer $TOKEN" \
"$BASE/v1/site-audit/$CRAWL/issues?status=open&per_page=100" | jq '.data')
# 2. Pro Issue: Fix anwenden (Layout-Edit / Content-Update / Migration)
# 3. PFLICHT: Issue als fixed markieren — sonst weiß die Plattform nicht
# dass die Arbeit done ist und die Delta-Metrik wird wertlos:
curl -X PATCH \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"status":"fixed"}' \
"$BASE/v1/site-audit/issues/$ISSUE_ID"
# 4. Bei Layout-/Template-Fixes: Bulk-Mark statt 50× Single-PATCH:
curl -X PATCH \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"filter":{"issue_type":"missing_alt_text","status":"open"},"new_status":"fixed"}' \
"$BASE/v1/site-audit/$CRAWL/issues/bulk"
Polling-Pattern (deterministisch ab 2026-05-14):
while true; do
R=$(curl -sH "Authorization: Bearer $TOKEN" "$BASE/v1/site-audit/$CRAWL" | jq '.data')
STATUS=$(echo "$R" | jq -r .status)
BRIDGE=$(echo "$R" | jq -r .bridge_completed_at)
[ "$STATUS" = "completed" ] && [ "$BRIDGE" != "null" ] && break
sleep 30
done
# → JETZT sind alle Issues final, auch die grounding_*
Anti-Patterns
- Fix anwenden ohne
PATCH /issues/{id}mitstatus=fixed→ Issue bleibt „open" im Dashboard, Delta-Vergleichsmetrik der nächsten Crawl-Iteration wird wertlos. - Issues direkt nach
status='completed'abrufen ohnebridge_completed_atzu prüfen →grounding_*-Issues fehlen (Bridge läuft noch). - Bulk-Mark ohne
filter.issue_type→ markiert hunderte unrelated Issues. Server gibtmeta.applied_filterzurück; Caller MUSS das verifizieren bevor er den nächsten Schritt macht. - AI-Brief in Schleife für 100+ Issues — 5 Credits pro Brief. Nur für ausgewählte critical-Items.
Verwandte Module
- Content Audit (Site-Crawl) — content-quality scanner (was Page sagen, nicht Page hat). Komplementär.
- Grounding Audit — Single-URL LLM-Citation-Readiness. Direct-Call ohne Crawl-Overhead.
- [[modules/page-audit]] — Conversion Audit pro URL (Lighthouse + Vision + Persona-Fit). Granularer pro URL.
Letzte Aktualisierung: 14 mai 2026