Salvestab SEO-elementide lähtetaseme, tuvastab muutused ja jälgib tagasilangusi.
Kogu oskus — vaikeversiooni hoitakse GitHubis; sinu muudatused jäävad sinu enda klooni.
Git sinu SEO jaoks. Jäädvusta baasjooni, tuvasta regressioone, jälgi muudatusi ajas.
| Käsklus | Eesmärk |
|---|---|
/seo drift baseline <url> |
Jäädvusta praegune SEO olek „tuntud hea“ hetkepildina |
/seo drift compare <url> |
Võrdle praegust lehe olekut salvestatud baasjoonega |
/seo drift history <url> |
Näita muudatuste ajalugu ja varasemaid võrdlusi |
Iga baasjoon salvestab need SEO-kriitilised elemendid:
| Element | Väli | Allikas |
|---|---|---|
| Title tag | title |
parse_html.py |
| Meta description | meta_description |
parse_html.py |
| Canonical URL | canonical |
parse_html.py |
| Robots direktiivid | meta_robots |
parse_html.py |
| H1 pealkirjad | h1 (array) |
parse_html.py |
| H2 pealkirjad | h2 (array) |
parse_html.py |
| H3 pealkirjad | h3 (array) |
parse_html.py |
| JSON-LD schema | schema (array) |
parse_html.py |
| Open Graph sildid | open_graph (dict) |
parse_html.py |
| Core Web Vitals | cwv (dict) |
pagespeed_check.py |
| HTTP staatuskood | status_code |
fetch_page.py |
| HTML sisu räsi | html_hash (SHA-256) |
Arvutatud |
| Schema sisu räsi | schema_hash (SHA-256) |
Arvutatud |
Võrdlusmootor rakendab 17 reeglit üle 3 tõsidustaseme. Lae
references/comparison-rules.md täieliku reeglistiku jaoks lävedega,
soovitatud tegevuste ja oskustevaheliste viidetega.
| Tase | Tähendus | Reageerimisaeg |
|---|---|---|
| CRITICAL | SEO-murdav muudatus, tõenäoline liikluse kadu | Kohe |
| WARNING | Potentsiaalne mõju, vajab uurimist | 1 nädala jooksul |
| INFO | Ainult teadlikkus, võib olla tahtlik | Vaata sobival ajal |
Kõik andmed salvestatakse kohalikult SQLite’i:
~/.cache/claude-seo/drift/baselines.db
URL-i normaliseerimine tagab järjepideva sobitamise: väiketähelised skeem/host, eemalda vaikepordid (80/443), sorteeri päringuparameetrid, eemalda UTM-parameetrid, eemalda lõpuslässid.
baselineJäädvustab lehe praeguse oleku ja salvestab selle.
Sammud:
1. Valideeri URL (SSRF kaitse google_auth.validate_url() kaudu)
2. Too leht "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run fetch_page.py <URL> kaudu
3. Parseeri HTML "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run parse_html.py <URL> kaudu
4. Valikuliselt too CWV "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run pagespeed_check.py <URL> kaudu (kasuta --skip-cwv vahelejätmiseks)
5. Räsi HTML keha ja schema sisu (SHA-256)
6. Salvesta hetkepilt SQLite’i
Käivitus:
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_baseline.py <url>
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_baseline.py <url> --skip-cwv
Väljund: JSON baasjoone ID, ajatempli, URL-i ja jäädvustatud elementide kokkuvõttega.
compareToob lehe praeguse oleku ja võrdleb seda kõige hilisema baasjoonega.
Sammud:
1. Valideeri URL
2. Lae SQLite’ist kõige hilisem baasjoon (või konkreetne --baseline-id)
3. Too ja parseeri praegune lehe olek
4. Käivita kõik 17 võrdlusreeglit
5. Klassifitseeri leiud tõsiduse järgi
6. Salvesta võrdlustulemus
7. Väljasta JSON diff-aruanne
Käivitus:
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_compare.py <url>
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_compare.py <url> --baseline-id 5
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_compare.py <url> --skip-cwv
Väljund: JSON kõigi käivitatud reeglite, vanade/uute väärtuste, tõsiduse ja tegevustega.
Pärast võrdlust paku HTML-aruande genereerimist:
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_report.py <comparison_json_file> --output drift-report.html
historyNäitab kõiki baasjooni ja võrdlusi URL-i jaoks.
Käivitus:
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_history.py <url>
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_history.py <url> --limit 10
Väljund: JSON massiiv baasjoontest (uusimad ees) ajatemplite ja võrdluste kokkuvõtetega.
Kui drift tuvastatakse, soovita asjakohast spetsialiseeritud oskust:
| Leid | Soovitus |
|---|---|
| Schema eemaldatud või muudetud | Käivita /seo schema <url> täielikuks valideerimiseks |
| CWV regressioon | Käivita /seo technical <url> jõudlusauditiks |
| Title või meta description muudetud | Käivita /seo page <url> sisuanalüüsiks |
| Canonical muudetud või eemaldatud | Käivita /seo technical <url> indekseeritavuse kontrolliks |
| Noindex lisatud | Käivita /seo technical <url> crawlability auditiks |
| H1/pealkirjastruktuur muudetud | Käivita /seo content <url> E-E-A-T ülevaatuseks |
| OG sildid eemaldatud | Käivita /seo page <url> sotsiaaljagamise analüüsiks |
| Staatuskood muutus veaks | Käivita /seo technical <url> täielikuks diagnostikaks |
| Stsenaarium | Tegevus |
|---|---|
| URL kättesaamatu | Teata viga fetch_page.py-st. Ära arva olekut. Soovita kasutajal URL kontrollida. |
| URL-i jaoks baasjoont pole | Teata kasutajale ja soovita kõigepealt käivitada baseline. |
| SSRF blokeeritud (privaatne IP) | Teata validate_url() tagasilükkamine. Ära kunagi mööda mine. |
| SQLite andmebaas puudub | Loo automaatselt esimesel kasutamisel. Viga pole. |
| CWV toomine ebaõnnestub (API võtit pole) | Salvesta CWV väljadele null. Jäta CWV reeglid võrdluse ajal vahele. |
| Leht tagastab 4xx/5xx | Jäädvusta ikkagi baasjoonena (staatuskood ON jälgitav väli). |
| Mitmeid baasjooni eksisteerib | Kasuta kõige hilisemat, kui --baseline-id pole määratud. |
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run fetch_page.py kaudu, mis jõustab SSRF kaitse
(blokeerib privaatsed IP-d, loopback’i, reserveeritud vahemikud, GCP metadata lõpp-punktid)?), mitte kunagi stringi interpolatsiooniverify=False pole torustikus kusagil/seo drift baseline https://example.com # Before deploy
# ... deploy happens ...
/seo drift compare https://example.com # After deploy
/seo drift baseline https://example.com # Initial capture
# ... weeks later ...
/seo drift compare https://example.com # Check for drift
/seo drift history https://example.com # Review all changes
/seo drift compare https://example.com # What changed?
/seo drift history https://example.com # When did it change?