recovery-audit
Audit all SEO changes made to a domain within a given period. Read-only audit_only mode.
Screaming Frog crawl with technical SEO issue classification including Shopware-specific patterns.
> /plugin marketplace add maxschottke-spec/seo-survival-kit > /plugin install seo-rescue@seo-survival-kit
How it fires
How this command gets triggered: by you, by Claude, or both.
/recovery-crawlContext preview
What this command does when you run it.
Screaming Frog crawl with technical SEO issue classification including Shopware-specific patterns.
description: "Screaming Frog crawl with technical SEO issue classification including Shopware-specific patterns." allowed-tools: Bash, Read, Write, Edit, Glob, Grep, mcp__*
Screaming Frog MCP Crawl durchfuehren und die Ergebnisse in eine strukturierte, priorisierte Issues-Liste transformieren. Identifiziert technische SEO-Probleme die Recovery blockieren. Falls Screaming Frog MCP nicht verfuegbar ist, Fallback auf CSV-Import; ohne CSV-Import bricht das Command mit Status `failed` ab.
`/seo-rescue:recovery-crawl <domain>`
| Feld | Quelle | Pflicht | |------|--------|---------| | `domain` | CLI-Argument | ja |
Normalisierung gemaess Schritt 1 des Ablaufs. `www.` wird NICHT entfernt.
| Capability | Pflicht/Optional | Verwendung | |-----------|-----------------|-----------| | `crawl_issues` | pflicht (mit Fallback) | Technische SEO-Issues identifizieren | | `indexability_check` | optional | Canonicals, noindex, robots-Blockierung pruefen | | `page_metadata` | optional | H1, Meta-Description, Title extrahieren |
| Capability | Paid Fallback | |-----------|--------------| | `crawl_issues` | Sitebulb, JetOctopus, Lumar (Deepcrawl), Botify (manueller CSV-Export) | | `indexability_check` | Sitebulb, Lumar | | `page_metadata` | Sitebulb, JetOctopus |
| Capability | Free/Lokal Fallback | |-----------|-------------------| | `crawl_issues` | Manuelle Crawl-CSV unter `~/.cache/seo-rescue/{slug}/imports/crawl.csv` | | `page_metadata` | Manuelle Crawl-CSV mit H1/Meta-Spalten |
CSV-Importe werden unter `~/.cache/seo-rescue/{slug}/imports/` erwartet.
node scripts/recovery-crawl.js --domain <domain> --cache-dir <path>
| Exit Code | Bedeutung | |-----------|-----------| | `0` | Crawl abgeschlossen (complete oder partial) | | `1` | Crawl fehlgeschlagen (kein Provider, kein CSV) | | `2` | Security-Abbruch (Symlink, Path-Traversal) | | `3` | Lock-Timeout (anderer Command laeuft) |
Normalisiere den Input gemaess dem gemeinsamen Input-Kontrakt:
Fuehre aus:
node -e "const { normalizeDomain } = require('./plugins/seo-rescue/lib/safe.js'); console.log(JSON.stringify(normalizeDomain('{domain}')))"Ersetze `{domain}` durch den tatsaechlichen User-Input. Falls `normalizeDomain()` einen Fehler wirft (z.B. leerer Input, ungueltiger Slug), Abbruch mit Status `failed`.
Erstelle das domainspezifische Cache-Verzeichnis unter `~/.cache/seo-rescue/{slug}/`:
node -e "const { ensureDomainDir } = require('./plugins/seo-rescue/lib/safe.js'); console.log(ensureDomainDir('{slug}'))"Ersetze `{slug}` durch den in Schritt 1 ermittelten Slug. Das Verzeichnis wird mit Modus 0700 angelegt (nur der aktuelle User hat Zugriff). Falls das Verzeichnis ein Symlink ist, Abbruch mit Status `failed`.
Falls eine `run_id` vom Orchestrator (`recovery-full`) uebergeben wurde: diese unveraendert verwenden, KEIN eigenes Prefix erzeugen. Sonst generiere eine eindeutige Run-ID fuer diesen Lauf:
node -e "const { randomUUID } = require('crypto'); console.log('crawl-' + randomUUID().slice(0,8) + '-' + Date.now())"Speichere die Run-ID als `run_id`. Sie wird im Output-Schema mitgefuehrt.
Starte den Screaming Frog MCP Crawl mit dem Tool `sf_crawl`:
Speichere die Crawl-ID aus der Antwort fuer die nachfolgende Fortschrittsueberwachung.
Falls `sf_crawl` nicht verfuegbar ist oder sofort einen Fehler zurueckgibt:
Nur wenn Schritt 4 erfolgreich war:
Rufe `sf_crawl_progress` mit der Crawl-ID in regelmaessigen Abstaenden auf, bis der Crawl abgeschlossen ist.
Nur wenn SF-Crawl abgeschlossen oder partial:
Generiere fuer folgende Filter jeweils einen Export via `sf_generate_bulk_export` und lies das Ergebnis mit `sf_export_crawl`:
| Filter-Name | Export-Typ | Mapping auf Issue-Typ | |-------------|------------|----------------------| | `Response Codes:Client Error (4xx)` | Internal HTML | `broken_internal_link` | | `Response Codes:Redirection (3xx)` | Internal HTML | `redirect_chain` | | `H1:Missing` | Internal HTML | `missing_h1` | | `H1:Duplicate` | Internal HTML | `duplicate_h1` | | `Meta Description:Missing` | Internal HTML | `
Recovery-first decision support for ecommerce/D2C SEO. Claude Code skills for Core Update recovery diagnosis, prioritized action plans, weekly monitoring, and a Change Governor / Settlement Gate that prevents over-optimizing during recovery windows.
Repo: maxschottke-spec/seo-survival-kit
Audit all SEO changes made to a domain within a given period. Read-only audit_only mode.
Automatic domain diagnosis: Core Update impact, VI drop, keyword losses, backlink profile.
Full recovery workflow: diagnose -> crawl -> audit -> plan -> monitor. Respects Change Governor mode.
Weekly recovery tracking with VI, keyword data, and Change History effect tracking.
Generate prioritized action plan from diagnosis and crawl issues with Change Governor risk points.