Tutorial
August 30, 2026 · View on GitHub
This walks from a clean install to a full weighted audit plus a focused follow-up. Everything runs locally; the measurement layer costs $0 in LLM tokens.
0. One-time setup
cd seo-toolkit
./setup.sh # installs pylibs/ + Chromium, then a smoke test
./seo doctor # expect "Playwright-Chromium: OK"
If
./seo doctortimes out, that is the headless-Chromium launch flaking under the sandbox — just retry. It is not a broken install.
1. The broad pass — full weighted audit
./seo audit https://example.com
This does the most work in one call:
- Detects the business type (prints
[Branche erkannt: ...]) and picks the category set from it. - Runs the specialists (technical, on-page, schema, local, visual) in parallel.
- Renders the page with Playwright for visual/hydration signals.
- Assigns a weighted score across 7 categories (Technical 22% · Content 23% · On-Page 20% · Schema 10% · Performance 10% · AI-Readiness 10% · Images 5%).
- Saves the raw findings to a file and prints extra sitemap + HTML-structure data.
Read the score first, then the top recommendations. Each carries four fields: Observation → Dependency → Failure signal → Early indicator. The dependency field tells you what to fix first.
2. Drill into the biggest gap
The broad pass tells you where the problem is. Use a focused command to understand what it is:
./seo technical https://example.com # 9 technical categories
./seo schema https://example.com # JSON-LD / LocalBusiness markup
./seo local https://example.com # local / NAP consistency
./seo content https://example.com # QRG-style content quality
./seo sitemap https://example.com # sitemap discovery + validation
./seo visual https://example.com # render, hydration, console errors
3. Judgment on the subjective signals
Measurement is deterministic. For interpretation — E-E-A-T, GEO/AI-Overview readiness, GBP, strategy — the agent loads the matching sub-skill and reasons over the measurements:
./seo geo https://example.com # GEO / AI Overviews
./seo plan https://example.com # strategy per industry
./seo competitor-pages https://example.com # competitive intel
4. Track change over time
Run a baseline, then compare later to see whether you actually moved the needle:
./seo drift baseline https://example.com
./seo drift compare https://example.com
./seo drift history https://example.com
5. Optional enrichment (needs your own credentials)
These work without any key for the core measurement. Only these add third-party data, and only when you supply credentials:
./seo google <sub> [args] # PSI / CrUX / GSC / GA4
./seo dataforseo <sub-cmd> # live SEO data
./seo firecrawl <url> # full-site crawl
./seo backlinks <url> # free sources, opt-in premium
Tip
Start with ./seo audit, not single commands. Single commands optimise symptoms;
the broad pass shows the root cause. Then fix in dependency order — the
recommendation whose Dependency field points at another one is the one to do
first.