---
title: SEO teemaklastrid
description: Rühmitab märksõnad tegelike Google'i otsingutulemuste põhjal teemaklastriteks.
category: Marketing
sublabel: SEO
author: AgriciDaniel
tags: 
license: MIT
source: https://github.com/AgriciDaniel/claude-seo
---

# Semantiline teemade klasterdamine

SERP-kattuvusest juhitud märksõnade klasterdamine sisuarhitektuuri jaoks. Rühmitab märksõnad
selle järgi, kuidas Google neid tegelikult järjestab (jagatud top-10 tulemused), mitte tekstisarnasuse järgi.
Kujundab keskmega-kodarate sisuklastreid koos sisemiste linkide maatriksitega ja loob
interaktiivseid klastrikaardi visualiseeringuid.

**Skriptid:** Asuvad plugina juurkausta `scripts/` kataloogis.

---

## Kiirülevaade

| Käsk | Mida see teeb |
|---------|-------------|
| `/seo cluster plan <seed-keyword>` | Täielik planeerimistöövoog: laienda, klasterda, arhitektuur, visualiseeri |
| `/seo cluster plan --from strategy` | Impordi olemasolevast `/seo plan` väljundist |
| `/seo cluster execute` | Täida plaan: loo sisu claude-blog kaudu või väljasta lähteülesanded |
| `/seo cluster map` | Loo interaktiivne klastrivisualiseering uuesti |

---

## Planeerimistöövoog

### 1. samm: Lähtemärksõna laiendamine

Laienda lähtemärksõna 30–50 variandiks, kasutades WebSearch'i:

1. **Seotud otsingud**: Otsi lähtemärksõna, eralda „seotud otsingud“ ja „inimesed otsivad ka“
2. **Inimesed küsivad ka (PAA)**: Eralda kõik PAA-küsimused SERP-tulemustest
3. **Pikasaba modifikaatorid**: Lisa levinud modifikaatorid: „best“, „how to“, „vs“, „for beginners“, „tools“, „examples“, „guide“, „template“, „mistakes“, „checklist“
4. **Küsimuste kaevandamine**: Loo kes/mis/millal/kus/miks/kuidas variandid
5. **Kavatsusmodifikaatorid**: Lisa ärimodifikaatorid: „pricing“, „review“, „alternative“, „comparison“, „free“, „top“

**Duplikaatide eemaldamine:** Normaliseeri variandid (väiketähed, eemalda artiklid), eemalda täpsed duplikaadid.
Sihtmärk: 30–50 unikaalset märksõnavarianti. Kui alla 30, käivita teine laiendusring
peamiste PAA-küsimustega lähtemärksõnadena.

### 2. samm: SERP-kattuvuse klasterdamine

See on peamine eristaja. Laadi `references/serp-overlap-methodology.md` täieliku
algoritmi jaoks.

**Protsess:**
1. Rühmita märksõnad esialgse kavatsuse oletuse järgi (vähendab paariviisilisi võrdlusi)
2. Iga kandidaadipaari jaoks rühmas otsi WebSearch'iga mõlemat märksõna
3. Loenda jagatud URL-id top 10 orgaanilises tulemuses (eira reklaame, esiletõstetud katkendeid, PAA-d)
4. Rakenda läved:

| Jagatud tulemusi | Suhe | Tegevus |
|---------------|-------------|--------|
| 7–10 | Sama postitus | Ühenda üheks sihtleheks |
| 4–6 | Sama klaster | Rühmita sama kodaraklastri alla |
| 2–3 | Omavaheline link | Paiguta külgnevatesse klastritesse, lisa ristlingid |
| 0–1 | Eraldi | Määra eri klastritesse või jäta välja |

**Optimeerimine:** 40 märksõnaga täispaariviisiline = 780 võrdlust. Selle asemel:
- Eelrühmita kavatsuse järgi (4 rühma à ~10 = 4 x 45 = 180 võrdlust)
- Ristkontrolli ainult rühmapiiri märksõnu
- Jäta vahele paarid, kus mõlemad on sama peatermini pikasaba variandid (eelda sama klastrit)

**DataForSEO integratsioon:** Kui DataForSEO MCP on saadaval, kasuta SERP-andmete jaoks `serp_organic_live_advanced`-i
WebSearch'i asemel. Käivita `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_costs.py check serp_organic_live_advanced --count N`
enne iga partiid. Kui `"status": "needs_approval"`, näita kuluhinnangut ja küsi kasutajalt.
Kui `"status": "blocked"`, lange tagasi WebSearch'ile.

### 3. samm: Kavatsuse klassifitseerimine

Klassifitseeri iga märksõna ühte neljast kavatsuskategooriast:

| Kavatsus | Signaalid | Kaasata klastritesse? |
|--------|---------|---------------------|
| Informatsiooniline | how, what, why, guide, tutorial, learn | Jah |
| Äriline | best, top, review, comparison, vs, alternative | Jah |
| Tehinguline | buy, price, discount, coupon, order, sign up | Jah |
| Navigatsiooniline | brändinimed, konkreetsed tootenimed, login | Ei (jäta välja) |

Eemalda navigatsioonilised märksõnad klasterdamisest. Märgista piiripealsed juhtumid
käsitsi ülevaatamiseks. Märksõnadel võib olla segakavatsus (nt „best CRM software“ on
nii äriline kui informatsiooniline) – klassifitseeri domineeriva kavatsuse järgi.

### 4. samm: Keskmega-kodarate arhitektuur

Laadi `references/hub-spoke-architecture.md` täielike spetsifikatsioonide jaoks.

**Kujunda klastristruktuur:**

1. **Vali sambamärksõna**: Suurim maht, laiaim kavatsus, suurim SERP-kattuvus teiste märksõnadega
2. **Rühmita kodarad klastritesse**: Iga klaster on alamteema valdkond (2–5 klastrit samba kohta)
3. **Määra postitused klastritesse**: Iga klaster saab 2–4 kodarapostitust
4. **Vali mallid postituste kaupa**: Kavatsuse klassifikatsiooni põhjal:

| Kavatsusmuster | Malli valikud |
|---------------|-----------------|
| Informatsiooniline (lai) | ultimate-guide |
| Informatsiooniline (kuidas) | how-to |
| Informatsiooniline (loend) | listicle |
| Informatsiooniline (kontseptsioon) | explainer |
| Äriline (võrdlus) | comparison |
| Äriline (hindamine) | review |
| Äriline (järjestus) | best-of |
| Tehinguline | landing-page |

5. **Määra sõnade arvu sihtmärgid:**
   - Sambaleht: 2500–4000 sõna
   - Kodarapostitused: 1200–1800 sõna

6. **Kannibaliseerimise kontroll**: Ükski kaks postitust ei jaga sama esmast märksõna. Kui SERP-kattuvus
   on 7+, ühenda need märksõnad üheks postituseks, mis sihib mõlemat.

### 5. samm: Sisemiste linkide maatriks

Kujunda kahesuunaline linkimisstruktuur:

| Lingitüüp | Suund | Nõue |
|-----------|-----------|-------------|
| Kodar sambale | kodar -> sammas | Kohustuslik (iga kodar) |
| Sammas kodarale | sammas -> kodar | Kohustuslik (iga kodar) |
| Kodar kodarale (klastri sees) | kodar <-> kodar | 2–3 linki postituse kohta |
| Ristklaster | kodar -> kodar (teine klaster) | 0–1 linki postituse kohta |

**Reeglid:**
- Igal postitusel peab olema vähemalt 3 sissetulevat sisemist linki
- Mitte ühtki orvuleht (iga postitus kättesaadav sambast 2 klõpsuga)
- Ankurtekst peab kasutama sihtmärksõna või lähedast varianti (mitte „click here“)
- Lingi paigutus: põhiteksti sees, mitte ainult navigatsioonis/külgribas

Loo linkimaatriks JSON-naabrusloendina:
```json
{
  "links": [
    { "from": "pillar", "to": "cluster-0-post-0", "type": "mandatory", "anchor": "keyword" },
    { "from": "cluster-0-post-0", "to": "pillar", "type": "mandatory", "anchor": "keyword" }
  ]
}
```

### 6. samm: Interaktiivne klastrikaart

Loo `cluster-map.html`, kasutades malli asukohas `templates/cluster-map.html`.

1. Loe mallifail
2. Ehita `CLUSTER_DATA` JSON-objekt klastriplaani põhjal:
   ```javascript
   {
     pillar: { title, keyword, volume, template, wordCount, url },
     clusters: [{ name, color, posts: [{ title, keyword, volume, template, wordCount, url, status }] }],
     links: [{ from, to, type }],
     meta: { totalPosts, totalClusters, totalLinks, estimatedWords }
   }
   ```
3. Asenda mallis `CLUSTER_DATA` kohatäide tegeliku JSON-iga
4. Kirjuta valmis HTML-fail väljundkataloogi
5. Teavita kasutajat: „Ava `cluster-map.html` brauseris, et uurida interaktiivset klastrikaarti.“

---

## Strateegia import

Kui kutsutakse `--from strategy`-ga:

1. Otsi praegusest kataloogist kõige uuemat `/seo plan` väljundit (otsi
   faile, mis vastavad mustritele `*SEO*Plan*`, `*strategy*`, `*content-strategy*`)
2. Sõelu markdowni tabelid, et saada: märksõnad, lehetüübid, sisusambad, URL-struktuurid
3. Valideeri eraldatud andmed: kontrolli duplikaate, puuduvaid märksõnu, mittetäielikke kirjeid
4. Rikasta SERP-andmetega: käivita SERP-kattuvuse analüüs eraldatud märksõnade peal
5. Ehita klastriplaan, kasutades imporditud märksõnu lähtekomplektina (jäta 1. samm vahele)

Kui strateegiafaili ei leita, küsi kasutajalt: „Praeguses kataloogis ei leitud olemasolevat
SEO-plaani. Käivita esmalt `/seo plan` või esita lähtemärksõna uueks klasterdamiseks.“

---

## Täitmistöövoog

Kui kutsutakse `/seo cluster execute`:

### Kontrolli claude-blogi olemasolu

```
Test: Does ~/.claude/skills/blog/SKILL.md exist?
```

**Kui claude-blog ON paigaldatud:**

1. Laadi `references/execution-workflow.md` täieliku algoritmi jaoks
2. Loe praegusest kataloogist `cluster-plan.json`
3. Kontrolli jätkamisolekut: skaneeri väljundkataloogi juba kirjutatud postituste jaoks
4. Täida prioriteedijärjestuses: sammas esmalt, seejärel kodarad mahu järgi (suurim esimesena)
5. Iga postituse jaoks kutsu `blog-write` oskus klastrikontekstiga:
   - Klastriroll (sammas või kodar)
   - Positsioon klastris (klastri indeks, postituse indeks)
   - Sihtmärksõna ja teisesed märksõnad
   - Mallitüüp ja sõnade arvu sihtmärk
   - Kaasatavad sisemised lingid (koos ankrutega)
   - Tulevastest postitustest saadavad lingid (kohatäitemärgid)
6. Pärast iga postituse kirjutamist skaneeri eelnevad postitused tagasisuunaliste linkide
   kohatäidete jaoks ja süsti uue postituse URL
7. Pärast kõigi postituste kirjutamist loo klastri tulemuskaart

**Kui claude-blog EI ole paigaldatud:**

1. Loo iga klastriplaani postituse jaoks detailsed sisu lähteülesanded
2. Iga lähteülesanne sisaldab:
   - Pealkiri ja metakirjeldus
   - Esmane märksõna ja teisesed märksõnad
   - Mallitüüp ja soovitatud struktuur (H2/H3 struktuur)
   - Sõnade arvu sihtmärk
   - Kaasatavad sisemised lingid (koos ankurtekstiga)
   - Peamised käsitletavad punktid
   - Konkureerivad lehed, millest eristuda
3. Kirjuta lähteülesanded `cluster-briefs/` kataloogi eraldi markdown-failidena
4. Teavita kasutajat: „Paigalda [claude-blog](https://github.com/AgriciDaniel/claude-blog),
   et sisu automaatselt luua. Lähteülesanded salvestatud `cluster-briefs/`-i.“

---

## Klastri tulemuskaart

Täitmisjärgne kvaliteediaruanne. Käivitatakse automaatselt pärast `/seo cluster execute`-i või
nõudmisel väljundkataloogi analüüsi kaudu.

| Mõõdik | Sihtmärk | Kuidas mõõdetud |
|--------|--------|-------------|
| Kaetus | 100% | Kirjutatud postitused / planeeritud postitused |
| Linkide tihedus | 3+ postituse kohta | Loenda sisemisi linke postituse kohta |
| Orvulehed | 0 | Postitused, millel < 1 sissetulev link |
| Kannibaliseerimine | 0 konflikti | Kontrolli dubleerivaid esmaseid märksõnu |
| Piltide arv | 1+ postituse kohta | Postitused vähemalt ühe pildiga |
| Sambalingid | 100% | Kõik kodarad lingivad sambale ja vastupidi |
| Ristlingid | 80%+ | Soovitatud kodar-kodar lingid rakendatud |
| Sisulüngad | 0 | Planeeritud postitused, mis jäeti vahele või on mittetäielikud |

---

## Kaardi uuesti loomine

Kui kutsutakse `/seo cluster map`:

1. Loe praegusest kataloogist `cluster-plan.json`
2. Skaneeri väljundkataloog ja uuenda postituste olekud (planeeritud vs kirjutatud)
3. Loo `cluster-map.html` uuesti ajakohastatud olekutega
4. Teata: kirjutatud postitused vs planeeritud, linkide valmimise protsent

---

## Väljundfailid

Kõik väljundid kirjutatakse praegusesse töökataloogi:

| Fail | Kirjeldus |
|------|-------------|
| `cluster-plan.json` | Masinloetav klastriplaan (täielikud andmed) |
| `cluster-plan.md` | Inimloetav klastriplaani kokkuvõte |
| `cluster-map.html` | Interaktiivne SVG-visualiseering |
| `cluster-briefs/` | Sisu lähteülesanded (kui claude-blog puudub) |
| `cluster-scorecard.md` | Täitmisjärgne kvaliteediaruanne |

---

## Oskustevaheline integratsioon

| Oskus | Suhe |
|-------|-------------|
| `seo-plan` | Impordiallikas: strateegia import loeb seo-plan väljundit |
| `seo-content` | Kvaliteedikontroll: loodud sisu E-E-A-T valideerimine |
| `seo-schema` | Skeemimärgistus: Article, BreadcrumbList, ItemList klastrilehtede jaoks |
| `seo-dataforseo` | Andmeallikas: SERP-andmed, kui DataForSEO MCP on saadaval |
| `seo-google` | Aruandlus: loo klastriplaani ja tulemuskaardi PDF-aruanne |

Pärast klastri planeerimise või täitmise lõppu paku:
„Luua PDF-aruanne? Kasuta `/seo google report`“

---

## Vigade käsitlemine

| Viga | Põhjus | Lahendus |
|-------|-------|------------|
| „No seed keyword provided“ | Puuduv argument | Küsi kasutajalt lähtemärksõna või URL |
| „Insufficient keyword variants“ | Laiendus andis < 15 märksõna | Käivita teine laiendusring PAA-küsimustega |
| „SERP data unavailable“ | WebSearch ja DataForSEO mõlemad ebaõnnestuvad | Proovi uuesti 30 s pärast; kui püsiv, kasuta ainult-kavatsuse klasterdamist koos hoiatusega |
| „No strategy file found“ | `--from strategy`, kuid plaani ei ole | Küsi kasutajal esmalt käivitada `/seo plan` |
| „cluster-plan.json not found“ | Täitmine ilma planeerimiseta | Küsi kasutajal esmalt käivitada `/seo cluster plan` |
| „claude-blog not installed“ | Täitmist prooviti ilma blogioskuseta | Loo selle asemel sisu lähteülesanded; paku paigaldamist |
| „DataForSEO budget exceeded“ | Kulukontroll tagastas „blocked“ | Lange tagasi WebSearch'ile; teavita kasutajat |
| „Duplicate primary keywords“ | Kannibaliseerimine tuvastatud | Ühenda mõjutatud postitused või määra märksõnad ümber |
| „Orphan page detected“ | Postitusel puuduvad sissetulevad lingid | Lisa lingid lähimatelt klastri õdedelt |
| „Resume state corrupted“ | Lahknevus plaani ja väljundi vahel | Ehita olek uuesti väljundkataloogi skaneerimisest |

---

## Turvalisus

- Kõik URL-id tõmmatakse käsuga `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run render_page.py <url> --mode auto` (SPA-teadlik SSRF-kaitse `url_safety` kaudu)
- Mandaate ei salvestata ega edastata
- Väljundfailid ei sisalda isikuandmeid ega API-võtmeid
- DataForSEO kulukontrollid käivitatakse enne iga API-kutset

## FLOW-raamistiku integratsioon

Päringujuhitud märksõnauuringu ja lüngaanalüüsi jaoks kasuta `/seo flow find [url|topic]`: FLOW'i 5 find-etapi päringut täiendavad SERP-kattuvuse klasterdamise metoodikat struktureeritud avastuspäringutega.