Vai al contenuto
OneKitly

La densità di parole chiave è una metrica morta, ed ecco che cosa l'ha sostituita

Pubblicato il 27/05/2025 · 14 min di lettura · Strumenti marketing e SEO

Camille Laurent

Camille LaurentRedattrice Finanza presso OneKitly

Fisco · Finanza personale

Verificato su 5 fonti

Vedi il profilo
In breve

La densità di parole chiave è il numero di occorrenze diviso il totale delle parole, ed era un indicatore utilizzabile nel 2003 perché il recupero di allora valutava davvero i documenti sui conteggi grezzi. Era un indicatore della frequenza di termine in un modello bag-of-words, e ogni modello che ha sostituito quello tratta i conteggi grezzi in modo diverso. Il TF-IDF pesa un termine per quanto è raro nel corpus, così una parola presente su metà del web non rende quasi nulla per quanto tu la ripeta. BM25 è andato oltre e ha fatto saturare la frequenza di termine: con gli standard k1 = 1,2 e b = 0,75, una occorrenza vale 1,000, due valgono 1,375, dieci valgono 1,964, e il tetto è 2,2 per quante ne aggiunga. La seconda occorrenza porta 0,375; la decima porta 0,023 — sedici volte meno. Il recupero per embedding non conta affatto i termini: confronta significati in uno spazio vettoriale, così una pagina può posizionarsi per un'espressione che non contiene mai. La densità sopravvive per una cosa sola: come prova dell'olfatto. Se un'espressione arriva al 5 % delle tue parole, qualcosa si ripete per sbaglio. Non esiste una percentuale consigliata, e chi ne cita una sta citando il 2003.

La densità contava le occorrenze perché il recupero contava le occorrenze. TF-IDF, poi BM25 con la sua curva di saturazione, poi gli embedding l'hanno sostituita. Ecco la stessa pagina da 800 parole valutata in tre modi, e perché i tre non concordano.

Di che cosa la densità era davvero l'indicatore

La densità di parole chiave è una divisione: il numero di volte in cui un termine compare, diviso il numero di parole della pagina. Sedici comparse di una parola in un articolo da 800 parole fanno il 2,00 %. È tutta qui la metrica, e non l'hanno mai inventata i motori — l'hanno inventata quelli che cercavano di farne il reverse engineering, come congettura su ciò che il motore stava contando.

La congettura era ragionevole, perché per un po' è stata giusta. Il recupero delle origini trattava un documento come un sacco di parole: ordine buttato via, struttura buttata via, documento ridotto a un vettore di conteggi di termini. Valuta un documento rispetto a una query sommando quanti termini della query contiene e con che frequenza, e la ripetizione è premiata direttamente. La densità è la regola pratica di quel modello, normalizzata per lunghezza così che una pagina lunga e una corta siano confrontabili. Era l'indicatore di una cosa precisa — la frequenza di termine in una funzione di punteggio bag-of-words — e ha smesso di essere utile nel momento in cui la funzione di punteggio è cambiata.

Due cose l'hanno uccisa. La prima: l'indicatore è diventato un obiettivo, e una metrica che è anche un obiettivo smette di misurare — le pagine imbottite di ripetizioni erano eccellenti secondo la densità, e illeggibili secondo qualsiasi criterio umano. La seconda è stata più lenta e più interessante: le funzioni di punteggio hanno smesso di contare così, prima con la frequenza inversa di documento, poi con la saturazione, poi abbandonando del tutto il conteggio dei termini. Il resto di questo articolo sono quei tre passi, applicati a una pagina concreta.

TF-IDF: la rarità vale più della ripetizione

La prima correzione viene da un'osservazione di Karen Spärck Jones del 1972: la specificità di un termine è inversamente legata a quanti documenti lo contengono. Un termine presente in quasi tutti i documenti non ti dice quasi nulla su quale documento restituire. Diventa la frequenza inversa di documento, idf = ln(N ÷ df), con N il numero di documenti nel corpus e df il numero di quelli che contengono il termine. Moltiplicala per la frequenza di termine e hai il TF-IDF, che resta il modello mentale di cui la maggior parte dei redattori ha davvero bisogno.

Mettiamoci dei numeri. Prendi una pagina da 800 parole sulle macchine per espresso. La parola machine compare 24 volte — densità 3,00 %, la più alta della pagina. La parola espresso compare 16 volte, densità 2,00 %. La parola decalcificazione compare 4 volte, densità 0,50 %. Ipotizza ora un corpus di 10 000 000 di documenti in cui machine compare in 2 000 000, espresso in 200 000 e decalcificazione in 50 000. Gli idf valgono ln(5) = 1,6094, ln(50) = 3,9120 e ln(200) = 5,2983. Con frequenza di termine grezza, il TF-IDF dà a machine 24 × 1,6094 = 38,63, a espresso 16 × 3,9120 = 62,59 e a decalcificazione 4 × 5,2983 = 21,19.

L'ordine è già cambiato una volta. La densità dice che machine è il segnale più forte della pagina. Il TF-IDF dice che è espresso, per 62 a 39, pur comparendo otto volte in meno. E se usi la variante logaritmica della frequenza di termine che il TF-IDF classico di solito applica, 1 + ln(f), i punteggi diventano 6,72 per machine, 14,76 per espresso e 12,64 per decalcificazione — un termine allo 0,50 % di densità quasi supera uno al 2,00 %, e supera comodamente quello al 3,00 %. Stessa pagina, stesse parole, tre ordinamenti, nessuna ripetizione aggiunta.

BM25 e la curva di saturazione, che è la parte interessante

BM25 nasce dal lavoro Okapi alla City University London e dalle valutazioni TREC degli anni Novanta, ed è ancora la funzione di ranking predefinita in Lucene, Elasticsearch e in buona parte dell'infrastruttura di ricerca in servizio. La sua componente di frequenza di termine è dove vive l'idea vera: invece di usare f direttamente, usa f × (k1 + 1) ÷ (f + k1 × (1 − b + b × dl ÷ avgdl)), dove dl è la lunghezza del documento, avgdl la lunghezza media nel corpus, e k1 e b sono costanti di regolazione fissate per convenzione a 1,2 e 0,75. Leggila come frazione e il comportamento salta fuori: al crescere di f, numeratore e denominatore crescono entrambi, e il rapporto converge a k1 + 1.

Su una pagina di lunghezza esattamente media il termine di lunghezza collassa a 1 e il peso è semplicemente f × 2,2 ÷ (f + 1,2). Calcola: una occorrenza vale 1,0000, due valgono 1,3750, tre valgono 1,5714, cinque valgono 1,7742, dieci valgono 1,9643, venti valgono 2,0755, cinquanta valgono 2,1484. Il tetto è 2,2 e nulla lo raggiunge. Come frazione di quel tetto, una sola occorrenza raccoglie già il 45,5 % di tutto ciò che il termine potrà mai valere; due ne raccolgono il 62,5 %, cinque l'80,6 %, dieci l'89,3 %.

La vista marginale dovrebbe chiudere la discussione. Passare da una occorrenza a due aggiunge 0,3750. Passare da nove a dieci aggiunge 0,0231. La decima occorrenza vale circa un sedicesimo della seconda, e la cinquantesima vale 0,0010 — 365 volte meno della seconda. È questo che significa saturazione, ed è una scelta di progetto deliberata, non un incidente: Robertson e Zaragoza descrivono quella forma come lo scopo stesso della funzione — la prima occorrenza stabilisce che il documento parla del termine, e le successive possono solo confermare ciò che è già stabilito. Scrivere una parola per la decima volta per posizionarsi su di essa significa ottimizzare una quantità che la funzione di recupero ha già smesso di ascoltare.

Il parametro b gestisce la lunghezza, e lo fa molto più delicatamente della densità. Prendi quelle stesse 16 occorrenze di espresso e mettile in una pagina da 1 600 parole invece che da 800, in un corpus il cui documento medio è di 800 parole. La densità si dimezza, dal 2,00 % all'1,00 %. Il peso BM25 scende da 2,0465 a 1,9448 — un calo del 5,0 %. Per tornare al punteggio delle 800 parole a lunghezza doppia servirebbero 28 occorrenze, non 32. La densità dice che sei stato penalizzato della metà; BM25 dice di un ventesimo. Non misurano la stessa cosa, e non l'hanno mai fatto.

Poi gli embedding hanno smesso del tutto di contare i termini

TF-IDF e BM25 sono entrambi lessicali: serve che il termine della query sia presente nel documento, in qualche forma, perché esso ottenga un punteggio. Il recupero basato su embedding rompe del tutto quel presupposto. Un modello proietta query e documento nello stesso spazio vettoriale ad alta dimensione, e la rilevanza diventa la vicinanza geometrica di due vettori — di solito la similarità del coseno — invece di una sovrapposizione di stringhe. I conteggi di occorrenze non hanno alcun ruolo nel calcolo. Non c'è f nella formula.

La conseguenza pratica dovrebbe riformulare il modo in cui scrivi. Una pagina sulla decalcificazione di una macchina da caffè può essere recuperata per una query sul calcare in un bollitore, o sull'aceto bianco in una macchina per espresso, senza contenere nessuna di quelle parole, perché i vettori cadono vicini. Al contrario, una pagina che ripete un'espressione esatta quaranta volte ma non dice altro sull'argomento sta in una regione dello spazio verso cui nessuna domanda genuina punta. I sistemi moderni di solito fanno girare entrambe le famiglie e fondono i risultati, quindi la corrispondenza lessicale non è sparita — ma la metà lessicale è BM25, che satura, e la metà semantica non conta affatto.

Quanto vale ancora la densità: esattamente un'occhiata

Ecco la difesa onesta della metrica. La densità è una diagnosi, non una manopola. Passala una volta su una bozza finita e leggila come un correttore ortografico: non per centrare un numero, ma per restare sorpreso. Un'espressione al 5 % di una pagina da 800 parole sono quaranta occorrenze, e nessuno scrive quaranta ripetizioni deliberate di alcunché — quindi è un artefatto di template, un blocco standard contato nel corpo del testo, un nome di prodotto ripetuto da un generatore, o un redattore che ha perso il filo. Tutti e quattro sono difetti reali, e la densità li trova in un passaggio.

Ciò per cui non vale è come obiettivo, ed è qui che conviene diffidare di ogni strumento o consulente che ne offra uno. Non esiste alcuna percentuale consigliata pubblicata, né da Google né da chiunque abbia accesso a una funzione di ranking, e la ragione è strutturale più che segreta: BM25 satura, quindi nessuna percentuale lo massimizza; gli embedding ignorano del tutto i conteggi, quindi non c'è percentuale a cui rispondano; e il numero ottimale di occorrenze di un termine dipende da statistiche di corpus che non hai. Uno strumento che ti dice di puntare a una fascia sta riportando una convenzione, non un risultato. Le politiche antispam di Google affrontano lo stesso comportamento dall'altro capo — il keyword stuffing, definito come riempire una pagina di parole ripetute per manipolare il posizionamento, è una violazione, ed è descritto in termini di esperienza di lettura, non di soglia.

Quindi il sostituto di un obiettivo di densità non è un altro numero. È un'altra domanda: questa pagina copre i sotto-argomenti distinti che una persona con questa domanda avrebbe bisogno di vedere trattati, in un linguaggio che riconoscerebbe? È ciò che un modello a pesatura di termini premia senza che nessuno ci ottimizzi sopra, perché una pagina che copre davvero un argomento contiene naturalmente il suo vocabolario raro e specifico — la decalcificazione, il portafiltro, la macinatura — e il vocabolario raro e specifico è esattamente ciò che l'idf è costruito per premiare. Un conteggio di frequenza delle parole e un punteggio di leggibilità sono compagni migliori di una bozza che una percentuale di densità, perché entrambi descrivono il testo invece di fingere di descrivere il motore.

Occorrenze
La stessa pagina da 800 parole, tre termini, tre metriche — e tre classifiche diverse
TermineOccorrenzeDensitàIDFTF-IDF (tf grezza)TF-IDF (tf log)BM25
machine243,00 %1,609438,636,723,37
espresso162,00 %3,912062,5914,768,01
decalcificazione40,50 %5,298321,1912,648,97
Analizzatore di densità delle parole chiaveIncolla un testo per vedere il conteggio delle parole e le frasi di 1, 2 e 3 parole più frequenti con la loro densità.Prova lo strumento

Domande frequenti

Qual è la densità di parole chiave ideale?
Non ce n'è una, e l'assenza è matematica più che segreta. BM25 satura: con k1 = 1,2, una occorrenza raccoglie il 45,5 % di tutto ciò che il termine può valere e dieci ne raccolgono l'89,3 %, convergendo su un tetto che nulla raggiunge — quindi non c'è conteggio che massimizzi il punteggio. Il recupero per embedding ignora del tutto i conteggi. E il numero di occorrenze più utile dipende da statistiche di corpus che non puoi vedere. Qualsiasi strumento che citi una fascia sta citando una convenzione precedente a ogni modello di recupero in uso.
Se la densità è morta, perché il vostro strumento la calcola ancora?
Perché un obiettivo morto può restare una diagnosi viva. Nessuno dovrebbe scrivere verso una cifra di densità, ma leggerla su una bozza finita intercetta incidenti che nessun altro controllo intercetta: testo standard contato nel corpo, un nome di prodotto ripetuto da un generatore, una variabile di template che si è espansa quaranta volte. Sono difetti reali e la densità li porta a galla in un passaggio. Usala come usi un correttore ortografico — per farti segnalare qualcosa che non intendevi, non per centrare un punteggio.
Che cosa sono k1 e b in BM25, e me ne devo preoccupare?
k1 controlla quanto in fretta satura la frequenza di termine e fissa il tetto a k1 + 1; b controlla quanto fortemente viene normalizzata la lunghezza del documento, da 0 per nessuna a 1 per completa. I valori predefiniti convenzionali sono 1,2 e 0,75, quelli che Lucene ed Elasticsearch forniscono. Come redattore non li regoli e non puoi sapere quali usi un dato motore. Ciò che devi portarti via è la forma che producono, non i valori: la ripetizione ha rendimenti fortemente decrescenti, e la lunghezza è penalizzata dolcemente anziché proporzionalmente.
Conta ancora usare la mia parola chiave nel titolo e nei sottotitoli?
Sì, ma non per la ragione che di solito danno i sostenitori della densità. Il recupero pesato per campo tratta diversamente una corrispondenza in un titolo e una nel corpo, e BM25F — l'estensione a campi di BM25 — formalizza esattamente questo. La ragione non è che il termine compaia un'altra volta; è che dove compare porta informazione su di che cosa parla il documento. La regola pratica non cambia rispetto alla buona redazione: di' di che cosa parla la pagina nel titolo, una volta, con le parole che un lettore userebbe. È anche ciò che fa funzionare un titolo come link e come snippet.
Può una pagina posizionarsi per un'espressione che non contiene mai?
Sì, ed è l'illustrazione più netta del perché la densità non abbia un obiettivo. Il recupero per embedding proietta query e documento nello stesso spazio vettoriale e li confronta geometricamente, senza richiedere alcuna corrispondenza di stringa. Una pagina sul rimuovere il calcare da una macchina per espresso può essere recuperata per una query sulla decalcificazione di una caffettiera con l'aceto, perché i vettori cadono vicini. I sistemi puramente lessicali non potevano farlo, ed è per questo che scrivere per coprire un argomento oggi batte lo scrivere per piazzare occorrenze.
Il keyword stuffing è ancora sanzionato, o solo inutile?
Entrambe, e la parte inutile viene per prima. La saturazione di BM25 fa sì che la quarantesima occorrenza contribuisca essenzialmente nulla rispetto alla decima, quindi la pratica non compra alcun punteggio già prima che si applichi qualsiasi policy. In più, le politiche antispam di Google elencano il keyword stuffing — riempire una pagina di parole ripetute per manipolare il posizionamento — come violazione, descritta per l'effetto sul lettore e non come soglia numerica. Il riassunto onesto è che lo stuffing è un modo di peggiorare una pagina per gli umani in cambio di un guadagno di punteggio che la funzione di recupero ha smesso di pagare decenni fa.

Articoli che potrebbero interessarti

Tutte le guide
GuidaTag title, meta description, e che cosa ci fanno i motori di ricercaChe cosa dice la documentazione di Google sulla riscrittura dei titoli e sulla meta description, invece di quel che dice il folklore SEO. Poi la parte misurabile: i titoli vengono troncati per larghezza in pixel, quindi due titoli di esattamente sessanta caratteri possono renderizzarsi a 204,55 pixel di distanza e solo uno sopravvive.GuidaChe cosa rende buono uno slug di URL: stabilità, leggibilità e il conflitto fra le dueUno slug ha due compiti che tirano in direzioni opposte: è un identificatore permanente ed è un testo leggibile. Lunghezza, trattini, parole vuote, date, caratteri non ASCII e il modello identificatore + slug che ottiene entrambe le proprietà — con i numeri reali di un sito che localizza 1736 slug di strumenti in sei lingue.GuidaDati strutturati: a cosa servono davvero ai motori di ricercaIl markup schema.org compra l'idoneità a un rich result, mai una garanzia né un guadagno di posizione. Ecco quali tipi producono ancora qualcosa di visibile nel 2026, che cosa richiede ciascuno e la regola che fa penalizzare i siti.SpiegazioneChe cosa misurano davvero gli indici di leggibilità (e le tre cose che non vedono)Il Flesch Reading Ease e il livello Flesch-Kincaid contano sillabe e lunghezza delle frasi. Nient'altro. Entrambe le formule per intero, un brano valutato da cima a fondo e il trucco della virgola che regala 3,9 anni scolastici senza cambiare una parola.SpiegazioneDove una riga può andare a capo: l'algoritmo Unicode dietro ogni paragrafo mandato a capo«Andare a capo sugli spazi» fallisce nella maggior parte dei sistemi di scrittura. UAX #14 assegna a ogni carattere una classe di interruzione di riga; abbiamo cercato le nostre in Unicode 17.0.0 ed eseguito un'implementazione conforme su spazi unificatori, trattini morbidi, spazi a larghezza zero, URL, giapponese e thai.SpiegazioneFrequenza delle parole e legge di Zipf: abbiamo contato sei libri in sei lingue e stimato la pendenzaLa parola di rango n compare circa 1/n volte rispetto alla prima. Abbiamo contato sei libri di pubblico dominio, stampato rango × frequenza, stimato log frequenza contro log rango e ottenuto pendenze fra -1,02 e -1,08 in tutte e sei le lingue — più i due punti in cui la legge si rompe.

Strumenti correlati

Fonti

Hai notato un errore in questo articolo?