Descrizione
Analizzatore di densità keyword da testo o HTML — estrae testo pulito (rimuove script/style/noscript + nav/footer/header/aside, così la densità riflette il contenuto e non il menù ripetuto), tokenizza Unicode-aware (accenti preservati, con accent-folding opzionale), rimuove le stopword built-in della lingua scelta (IT/EN/DE/FR/ES) + una blocklist custom. Calcola la frequenza per unigrammi, bigrammi (2 parole) e trigrammi (3 parole). Campo `targetKeywords` per misurare DIRETTAMENTE la densità di una o più frasi da monitorare (whole-token match). Differenza con i sibling: action_keyword_density = frequency analysis (text → top-N keywords + custom target check). Per scoring SEO complessivo usa action_seo_audit (incorpora density nei criteri). Per estrarre solo meta tag senza analisi testo usa action_meta_extract. Per estrazione AI semantic (invece di frequency stat) usa agent_extractor. Tokenization Unicode-aware: split su confine `\p{L}\p{N}`, lowercase + NFC. Accent-folding OPZIONALE (stripAccents): NFD + rimozione dei segni combinanti → "caffè"/"café"/"caffe" collassano (match approssimato). Lunghezza minima token configurabile (default 3, anti-rumore tipo "in/di/le"). Output: `{ totalTokens, uniqueTokens, stoplistSize, lang, unigrams: [{ term, count, density }], bigrams: [...], trigrams: [...], targetKeywords: [{ term, count, density }] }`. Density = count / totalTokens * 100 (%). Target SEO sano: keyword principale 1-3% (oltre = stuffing penalty). Cap difensivo 1M token. Use case Cappella-Sistina-grade: (1) **audit on-page SEO post-publish** — verifico che la mia landing "piano marketing 2026" abbia density 1-3% sul target keyword, alert se under-optimized; (2) **content-gap analysis vs competitor** — scrap 5 SERP top + keyword_density su ognuno → media keyword usato + delta vs mia pagina = lista keyword da aggiungere; (3) **AI suggestion semantic expansion** — top-20 keyword density usato come input a LLM per suggerire bigrami correlati che mancano (LSI keywords); (4) **analytics editoriale** mensile — tutti articoli blog → trend keyword nel tempo (quale topic dominante questo trimestre?). Safety budget: token cap 1M (oltre = truncate con warning), target keyword cap 200, regex target machine-built (lineare, no ReDoS). Audit log con totalTokens + density top-3 per cost monitoring.
