Cambia tema

Clustering delle keyword con IA: dalle query alle serie e ai link interni

Easton editorial illustration: one large rounded CLUSTER MAP board with grouped query chips and visible intent separation

"Google Search Central: creare contenuti utili, affidabili e pensati per le persone"

Hai un file keywords.csv con 300 query su Astro, Docker e Cloudflare. L’IA produce 42 cluster, ma la verifica manuale trova astro seo e astro vs next.js for seo insieme nel cluster #1. La prima query richiede un tutorial; la seconda, un confronto. Una sola pagina difficilmente soddisferà entrambi i compiti.

Questo è il punto debole concreto del clustering: l’IA può unire espressioni semanticamente vicine che hanno intenti diversi. Aumenta così il rischio di cannibalizzazione, perché più articoli quasi uguali competono per la stessa domanda. Un elenco di «gruppi di keyword» non indica nemmeno quali gruppi richiedano un nuovo articolo, un aggiornamento, una FAQ o un link interno.

Il flusso seguente combina query GSC, schede delle idee e inventario del sito. Normalizza e deduplica le righe, mantiene una revisione umana dopo il primo passaggio dell’IA e associa ogni cluster a un’azione: nuovo articolo, aggiornamento, FAQ, link interno o discard. Gli output comprendono fonti, logica di normalizzazione, confronto dei metodi, prompt, cluster map, criteri di azione e struttura dei link.

1. Riunire le fonti corrette per il clustering

L’input non è un elenco inventato dall’IA. È formato dai dati query/page del sito, dalle schede delle idee e dall’inventario dei contenuti. Insieme mostrano quali temi meritano una pagina, quali hanno già un articolo e quali domande provengono davvero dalle community.

Le fonti si organizzano così:

FonteCampiCome ottenerlaAttenzione
Dati GSC query/pagequery, page, clicks, impressions, CTR, positionSearch Console UI / Search Analytics APIIl rowLimit dell’API è 1.000 per impostazione predefinita e 25.000 al massimo per richiesta; i limiti interni fanno restituire top rows senza garantire tutte le righe
Schede delle ideetitolo, intento, fonte (Reddit/GitHub/concorrente), provaOutput dell’agente di ricercaVerificare manualmente la qualità della fonte
Inventario del sitotitolo, URL, serie, data, traffico, query posizionateDatabase del sito / CMSSegnare articoli corrispondenti e serie
Metriche quickWinsquery con molte impressions e CTR basso, opportunità di aggiornamentoAnalisi GSC quickWinsSupportano la decisione di aggiornare

Passaggi:

  1. Esporta i dati query/page da GSC. Il report Performance mostra per impostazione predefinita gli ultimi tre mesi, ma puoi modificare l’intervallo.
  2. Aggiungi le schede prodotte dall’agente di ricerca.
  3. Estrai l’inventario: articoli esistenti, serie e prestazioni.
  4. Segna i quick win: molte impressions, CTR basso e opportunità di aggiornamento.
  5. Genera una tabella con query, intento iniziale, fonte, corrispondenza con articolo esistente e indicatore quickWins.

2. Normalizzare le keyword prima di raggrupparle

La tabella combinata contiene duplicati, varianti e differenze di scrittura. Senza elaborazione, l’IA può considerarli termini distinti e dividere un solo intento tra più cluster.

Elenco di deduplicazione:

  • Duplicato esatto: astro seo vs astro seo → conserva una riga
  • Varianti di scrittura o configurazione: docker host.docker.internal vs docker host-gateway vs docker 127.0.0.1 → segna come candidate allo stesso intento e attendi conferma umana
  • Sinonimi: cloudflare pricing vs prezzi cloudflare vs cloudflare cost → segna come un intento
  • Variazione di forma: astro blog vs astro blogs → segna come un intento

Regole di normalizzazione:

  • Uniforma i termini: nextjs → next.js, cloudflare workers → Cloudflare Workers
  • Uniforma maiuscole e minuscole: Astro vs astro → astro
  • Uniforma la punteggiatura: astro, seo vs astro seo → astro seo

Label iniziali dell’intento:

  • Informativo: how to, what is, guide, tutorial
  • Navigazionale: brand, prodotto, URL specifico
  • Comparativo: vs, compare, alternative
  • Transazionale: pricing, cost, buy, download

Passaggi:

  1. Rimuovi i duplicati esatti dalla tabella.
  2. Rileva varianti e sinonimi e segnali come candidati allo stesso intento.
  3. Normalizza termini, maiuscole e punteggiatura.
  4. Etichetta ogni query come informativa, navigazionale, comparativa o transazionale.
  5. Esporta una tabella con query, normalized_query, intent_tag, source e old_post_match.

3. Confrontare tre metodi di clustering

La scelta deve bilanciare costo, precisione e rischio. I tre approcci principali sono adatti a fasi diverse.

MetodoCostoPrecisioneScenario adattoRischio
SERP-basedAlto: molte query SERP e possibili limiti anti-botAlta: usa risultati reali e aiuta a decidere se unire pagineContenuti pubblicati, analisi delle sovrapposizioni e budget SERP APICostoso; le variazioni delle SERP riducono la stabilità
SemanticBasso: solo chiamate a un’API di embeddingMedia: può ignorare l’intento reale e unire compiti diversiPrima topic map, budget limitato e raggruppamento rapidoPuò unire parole vicine per significato ma diverse per intento
HybridMedio: primo passaggio semantico + verifica SERP/GSC + revisione umanaAlta: bilancia costo e precisioneOperazioni continue con dati GSC e tempo di revisioneRichiede capacità di revisione umana

Flusso consigliato:

  • Team piccolo / fase iniziale: primo passaggio Semantic + verifica GSC/page + revisione umana dei cluster rischiosi
  • Team più grande / contenuti consolidati: Hybrid con raggruppamento semantico, verifica SERP/GSC e revisione umana
  • Budget sufficiente + decisione sulla sovrapposizione: SERP-based + revisione umana

Uso Hybrid: la somiglianza semantica crea il primo raggruppamento, i dati GSC page mostrano quali query hanno già una pagina e una persona risolve i conflitti di intento.

4. Eseguire il clustering con IA e un output definito

Quando invii le keyword normalizzate all’IA, il prompt deve definire campi e regole dell’intento. Questa è la struttura usata.

Esempio di prompt per l’IA:

Sei uno specialista della pianificazione di contenuti SEO. Raggruppa le keyword normalizzate seguenti in cluster per intento di ricerca. Per ogni cluster fornisci:
1. primary_intent
2. canonical_page (tipo consigliato: new article / old post refresh / FAQ / discard)
3. suggested_action
4. internal_link_targets (articoli o serie esistenti da collegare)
5. risk_notes (possibile cannibalizzazione o revisione umana necessaria)

Keyword:
- astro seo
- astro vs next js for seo
- cloudflare pricing
- docker host.docker.internal
- docker host-gateway
...

Restituisci un array JSON. Ogni cluster segue:
{
  "cluster_id": 1,
  "keywords": ["astro seo", ...],
  "primary_intent": "informativo - tutorial",
  "canonical_page": "new article",
  "suggested_action": "Creare un tutorial Astro SEO",
  "internal_link_targets": ["serie astro-guide", "serie cloudflare-bindui"],
  "risk_notes": "Revisione umana: astro vs next js for seo ha intento comparativo e non va unito"
}

Esempio di cluster map:

cluster_idkeywordsprimary_intentcanonical_pagesuggested_actioninternal_link_targetsrisk_notes
1astro seo, astro blog seoInformativo - tutorialnew articleCreare tutorial Astro SEOserie astro-guide, serie cloudflare-binduiNessuno
2astro vs next js for seoComparativonew articleCreare confronto SEO Astro vs Next.jsserie astro-guide, nextjs-blog-seriesNessuno
3cloudflare pricing, cloudflare cost, prezzi cloudflareTransazionaleold post refreshAggiornare l’articolo sui prezzi Cloudflareserie cloudflare-binduiEsiste /cloudflare-pricing; aggiornarlo
4docker host.docker.internal, docker host-gateway, docker 127.0.0.1Informativo - configurazioneFAQAggiungere FAQ a un articolo Dockerserie docker-practiceVarianti dello stesso intento; unire in una FAQ

Elenco di revisione umana:

  • Intenti mescolati: un cluster contiene tutorial e confronto → separare
  • Conflitto con pagina esistente: il cluster è “new article”, ma esiste un articolo correlato → cambiare in old post refresh o FAQ
  • Frammentazione eccessiva: un intento appare in più cluster → unire
  • Aggregazione eccessiva: più intenti appaiono in un cluster → separare

Passaggi:

  1. Invia la tabella normalizzata a Claude, ChatGPT o a un flusso interno di clustering.
  2. Esegui il primo raggruppamento con il prompt precedente.
  3. Esporta la cluster map.
  4. Controlla conflitti di intento, corrispondenze con articoli, frammentazione e aggregazione eccessive.
  5. Correggi la mappa e segna i cluster rischiosi.

5. Assegnare ogni cluster a un’azione editoriale

Un cluster completato richiede un’azione operativa, non un altro elenco di parole. Uso questa tabella decisionale.

FattoreNuovo articoloPagina pillarAggiornamentoFAQLink internidiscard
Numero di queryMolte (5+)Molte (5+)Poche (1–3)Poche (1–3)Poche (1–3)Una
Variazione di intentoAltaAltaBassaBassaBassaBassa
Articolo esistenteNoNoSìSìSìSì
ConcorrenzaAltaAltaMediaMediaBassaBassa
Coerenza tematicaAltaAltaAltaMediaMediaBassa
Spazio per valore originaleAltoAltoBassoBassoBassoNessuno
Esempiotutorial astro seoserie astrocloudflare pricingdocker host.docker.internallink tra articolivariante del brand

Definizione delle azioni:

  • Nuovo articolo: crea una pagina che copra tutte le query con lo stesso intento.
  • Pagina pillar: crea un hub di serie collegato alle altre pagine del cluster.
  • Aggiornamento: amplia una pagina esistente per coprire nuove query.
  • FAQ: aggiungi una risposta specifica a un articolo esistente.
  • Link interni: aggiungi link contestuali alla pagina canonica.
  • Discard: non creare contenuto e segna la query come poco utile o fuori target.

Passaggi:

  1. Valuta ogni cluster secondo i fattori decisionali.
  2. Converti la valutazione in un’azione.
  3. Esporta un elenco cluster_id → suggested_action.
  4. Revisiona manualmente le azioni rischiose: nuovi articoli e pagine pillar.

Le quantità di query sono segnali di esempio, non soglie automatiche. L’azione finale dipende anche da intento, inventario, valore originale e costo di manutenzione.

Le relazioni tra cluster devono diventare link operativi, non un blocco generico di “articoli correlati”. Questa è la struttura.

Principi dei link interni:

  • Link bidirezionali pillar/cluster: la pagina pillar collega tutte le cluster e ogni cluster torna alla pillar.
  • Anchor text descrittivo: descrivere l’intento di destinazione invece di scrivere “clicca qui”.
  • Destinazione canonica: evitare pagine duplicate o quasi uguali e collegare la URL canonica preferita.
  • Nessun articolo orfano: pianificare almeno un link contestuale in ingresso per articolo e aggiungere percorsi in base all’architettura e alla lettura.
  • Campo internal_link_targets: registrare quali articoli o serie devono ricevere link.

Piano dei link interni:

cluster_idpillar_pagecluster_pagesinternal_link_targetsAnchor text suggerito
1Guida Astro SEOtutorial astro seo, astro blog seoserie astro-guide, serie cloudflare-bindui“ottimizzazione SEO di Astro”, “ottimizzazione delle prestazioni con Cloudflare”
2-astro vs next.js for seoserie astro-guide, nextjs-blog-series“confronto Astro vs Next.js”
3-cloudflare pricingserie cloudflare-bindui“prezzi Cloudflare spiegati”

Passaggi:

  1. Identifica pagine pillar e cluster.
  2. Progetta la struttura bidirezionale.
  3. Scegli un anchor text descrittivo per ogni link.
  4. Controlla gli articoli orfani.
  5. Esporta il piano nella tabella delle attività.

Google considera attualmente redirect e rel="canonical" segnali forti, mentre l’inclusione in sitemap è più debole. I segnali possono rafforzarsi, ma Google continua a scegliere la canonica. I link interni devono puntare in modo coerente alla URL preferita.

7. Impostare limiti prima che il clustering produca pagine in massa

Il clustering non deve diventare un generatore di pagine. Questo schema si allontana rapidamente dai contenuti pensati per le persone.

Limiti di rischio:

  • Non creare una pagina per variante. Le query con lo stesso intento convergono su una pagina o destinazione canonica.
  • Richiedere una valutazione del valore originale. Ogni cluster deve rispondere a un problema del lettore, al focus del sito e a un apporto reale rispetto ai contenuti esistenti.
  • Consolidare query con lo stesso intento attorno a una canonica. Per pagine duplicate o molto simili, redirect, rel="canonical" e sitemap esprimono una preferenza, ma hanno forza diversa e non garantiscono la scelta di Google.
  • Evitare contenuti search-engine-first. Lo scopo principale è aiutare il lettore, non manipolare il ranking.
  • Ridurre il rischio di cannibalizzazione. Molte pagine per parole quasi identiche possono mettere più URL in competizione sullo stesso intento.
  • Segnare i cluster rischiosi. Il campo risk_notes richiede revisione umana.

Linee rosse qualitative:

  • Se esiste un articolo corrispondente, preferire aggiornamento o FAQ a un’altra pagina simile.
  • Ogni output deve valutare coerenza tematica e valore originale.
  • I link interni devono puntare all’articolo canonico, non a pagine duplicate o vicine.

8. Verificare il flusso con Astro SEO, Cloudflare Pricing e Docker

Tre scenari rendono concreto il processo.

Esempio 1: astro seo vs astro vs next.js for seo (intenti diversi, quindi separare)

  • Query originali: astro seo, astro vs next.js for seo, astro blog seo
  • Normalizzazione: astro seo, astro vs next js for seo, astro blog seo
  • Primo passaggio IA: cluster_id=1, keywords=[astro seo, astro vs next js for seo, astro blog seo]
  • Revisione umana: astro seo ha intento tutorial, astro vs next js for seo intento comparativo; vanno separati.
  • Cluster map finale:
    • cluster_id=1: [astro seo, astro blog seo] → creare tutorial Astro SEO
    • cluster_id=2: [astro vs next js for seo] → creare confronto SEO Astro vs Next.js

Esempio 2: cloudflare pricing (esiste un articolo, quindi aggiornare)

  • Query originali: cloudflare pricing, cloudflare cost, prezzi cloudflare
  • Normalizzazione: cloudflare pricing, cloudflare pricing, cloudflare pricing
  • Primo passaggio IA: cluster_id=3, keywords=[cloudflare pricing, cloudflare pricing, cloudflare pricing]
  • Corrispondenza inventario: articolo /cloudflare-pricing
  • Cluster map finale:
    • cluster_id=3: [cloudflare pricing, cloudflare cost, prezzi cloudflare] → aggiornare /cloudflare-pricing

Esempio 3: docker host.docker.internal (normalizzare query tecniche correlate)

  • Query originali: docker host.docker.internal, docker host-gateway, docker 127.0.0.1
  • Normalizzazione: segnarle come gruppo candidato per lo stesso intento di configurazione.
  • Primo passaggio IA: cluster_id=4, keywords=[docker host.docker.internal, docker host-gateway, docker 127.0.0.1]
  • Corrispondenza inventario: esiste una serie Docker
  • Cluster map finale:
    • cluster_id=4: [docker host.docker.internal, docker host-gateway, docker 127.0.0.1] → dopo la verifica umana dell’intento, aggiungere una FAQ o sezione a un articolo Docker

9. Consegnare la content map al flusso successivo

Quando il clustering è completo, la cluster map passa alla tabella delle attività, dove si definiscono campi, punteggi, stati e calendario. Il prossimo articolo, “Progettare una tabella delle attività di contenuto: campi, punteggi, stati e pubblicazione”, copre questo passaggio.

Per trasformare una cluster map in una struttura scrivibile, prosegui con “Generare la struttura con l’IA: dalla cluster map alla scaletta”. “Link interni automatici: generare collegamenti in blocco ed evitare errori” approfondirà poi l’inserimento.

L’aggiornamento degli articoli esistenti ha una guida dedicata: “Strategia GSC di aggiornamento: dai quick win alle revisioni”.

Articoli correlati già pubblicati:

  • Pianificazione trimestrale per blog tecnici con Pillar-Cluster
  • SOP settimanale GA/GSC: dai dati alle azioni
  • Tecniche avanzate GSC per trovare opportunità di contenuto

Trasformare le keyword in una content map operativa

Flusso minimo da più fonti alla cluster map, alle azioni editoriali e al piano dei link interni.

⏱️ Estimated time: 60 min

  1. 1

    Step 1: Unire le tre fonti

    Raccogli dati query/page di GSC, schede delle idee e inventario degli articoli in una tabella, conservando fonte, corrispondenza con contenuti esistenti e indicatore quickWins.
  2. 2

    Step 2: Normalizzare le keyword

    Risolvi duplicati, varianti, sinonimi, maiuscole e punteggiatura, poi assegna a ogni query un intento informativo, navigazionale, comparativo o transazionale.
  3. 3

    Step 3: Eseguire il primo raggruppamento semantico

    Chiedi all’IA di raggruppare per intento e produrre primary_intent, canonical_page, suggested_action, internal_link_targets e risk_notes per ogni cluster.
  4. 4

    Step 4: Validare i cluster rischiosi

    Usa GSC page, alcune SERP e il giudizio umano per rilevare tutorial e confronti mescolati, conflitti con articoli esistenti, aggregazioni o frammentazioni eccessive.
  5. 5

    Step 5: Assegnare un’azione principale

    Associa ogni cluster a nuovo articolo, pagina pillar, aggiornamento, FAQ, link interno o discard e registra la motivazione.
  6. 6

    Step 6: Creare il piano dei link interni

    Definisci link bidirezionali pillar/cluster, destinazioni canoniche e anchor text descrittivi, poi controlla articoli orfani e rischi di duplicazione.

FAQ

Il clustering raggruppa termini simili o query con lo stesso intento?
L’intento di ricerca viene prima della somiglianza. Una keyword principale e varianti long-tail con lo stesso intento possono condividere una pagina. Intenti di tutorial, confronto, navigazione o acquisto richiedono in genere trattamenti separati.
Quando una keyword merita un articolo invece di un H2 o una FAQ?
Valuta la differenza di intento, gli articoli già presenti, la coerenza tematica e lo spazio per valore originale. Se una pagina soddisfa già l’intento, conviene aggiornarla, aggiungere un H2 o una FAQ oppure migliorare i link. Crea un articolo solo per un compito distinto senza pagina adatta.
Query GSC, domande Reddit, issue GitHub e titoli dei concorrenti possono stare nella stessa tabella?
Sì, purché la fonte resti visibile e ogni sorgente abbia un ruolo diverso. GSC mostra domanda esistente, le community offrono formulazioni reali e i titoli concorrenti servono solo come intelligence competitiva. Tutto va normalizzato e revisionato prima del clustering.
Perché l’IA unisce keyword semanticamente vicine ma con intenti diversi?
I modelli semantici riconoscono bene entità ed espressioni correlate, ma non sempre il tipo di pagina atteso. `astro seo` richiede un tutorial; `astro vs next.js for seo`, un confronto. Servono quindi label di intento, verifica GSC o SERP e revisione umana.
Come scegliere tra clustering SERP-based, semantic e hybrid?
All’inizio o con budget ridotto, usa semantic e correggi con GSC page e revisione umana. Un sito consolidato con dati ricorrenti può usare hybrid. Aggiungi SERP-based quando la sovrapposizione dei risultati decide unione o separazione e hai budget per le query.
Conviene creare una pagina nuova se esiste già un articolo sul tema?
Verifica prima se l’articolo esistente può soddisfare naturalmente lo stesso intento. Se sì, aggiorna il corpo, aggiungi una FAQ o migliora i link. Crea una pagina separata solo quando intento e compito sono chiaramente diversi e c’è sufficiente valore originale.
Il clustering può portare alla produzione di massa di pagine di scarso valore?
Sì. Ogni cluster deve quindi contenere problema del lettore, coerenza con il sito, valutazione del valore originale e approvazione umana. Non creare una pagina per variante e non trasformare una cluster map generata dall’IA in una coda automatica di pubblicazione.

11 min di lettura · Pubblicato il: 13 nov 2026

Commenti

Accedi con GitHub per lasciare un commento

Easton BlogEaston Blog