Skip to content
Torna al blog
Tutorial

Limiti di caratteri e parole 2026 — Twitter, SMS, SEO, Instagram

Limiti di caratteri e parole online 2026 — Twitter, SMS GSM-7/UCS-2, meta SEO, Instagram, LinkedIn — matematica Unicode e contatore in tempo reale.

13 min di lettura

Limiti di caratteri e parole 2026 — Twitter, SMS, SEO, Instagram

Un limite di caratteri è il numero massimo di punti di codice (codepoint) Unicode che una piattaforma accetta in un singolo campo: 280 per un post su Twitter, 160 per un SMS a segmento singolo in GSM-7, circa 160 per una meta description di Google prima del troncamento. Il numero che ti interessa dipende da dove pubblichi e dal fatto che il tuo testo contenga emoji, virgolette tipografiche o caratteri CJK, perché tutti questi elementi cambiano la matematica.

Questa guida è pensata per chi scrive sui social media, specialisti SEO, copywriter di marketing, mittenti SMS fatturati a segmento e sviluppatori che scrivono validazioni allineate a ciò che Twitter, Instagram o i gateway SMS contano davvero. Salta alla tabella di riferimento rapido per il cheat sheet su 25 piattaforme, oppure verifica la tua bozza in tempo reale contro sei piattaforme principali con il Contatore di parole: le barre di avanzamento diventano rosse nel momento esatto in cui superi un limite.

Tabella di riferimento rapido — Limiti di caratteri e parole per ogni piattaforma

La tabella qui sotto copre più di 30 campi in cui scrittori e sviluppatori si imbattono più spesso. “Limite assoluto” è il tetto imposto dalla piattaforma; “Visibile / sopra la piega” è ciò che i lettori vedono prima del punto di troncamento; “Zona ottimale” è l’intervallo empirico in cui il contenuto rende meglio.

PiattaformaLimite assolutoVisibile / sopra la piegaZona ottimaleConteggio emoji
Post Twitter / X280 caratteri28070-100 caratteri1 codepoint
Bio Twitter / X160 caratteri1601 codepoint
Nome visualizzato Twitter / X50 caratteri501 codepoint
X Premium long-form25.000 caratteri1 codepoint
Didascalia Instagram2.200 caratteriprimi 125 (poi “altro”)<125 per l’hook1 codepoint
Bio Instagram150 caratteri1501 codepoint
Hashtag Instagrammax 305-10
Post LinkedIn3.000 caratteriprimi 210 (poi “vedi altro”)<1.3001 codepoint
Articolo LinkedIn110.000 caratteri1 codepoint
Headline LinkedIn220 caratteri2201 codepoint
Post Facebook63.206 caratteri~477 desktop / ~125 mobile<80 per la portata organica1 codepoint
Didascalia TikTok2.200 caratteriprimi ~100<1501 codepoint
Titolo YouTube100 caratteri70 (ricerca)<601 codepoint
Descrizione YouTube5.000 caratteriprimi 100-150 sopra la piegaprimi 150 per l’hook1 codepoint
Commento YouTube10.000 caratteri1 codepoint
Titolo Reddit300 caratteri<60 (dipende dal subreddit)1 codepoint
Commento Reddit10.000 caratteri1 codepoint
Messaggio Discord2.000 caratteri2.0001 codepoint
Descrizione embed Discord4.096 caratteri1 codepoint
Messaggio Slack40.000 caratteri<2.000 per leggibilità1 codepoint
Descrizione pin Pinterest500 caratteriprimi 50-60<1251 codepoint
Toot Mastodon500 caratteri (configurabile)5001 codepoint
Post Bluesky300 caratteri3001 grapheme cluster
Post Threads500 caratteri5001 codepoint
Meta description SEO (Google)~160 caratteri desktop / ~120 mobile150-160150-1601 codepoint
Title tag SEO (Google)~60 caratteri desktop / ~50 mobile50-6050-601 codepoint
Descrizione Open Graph~200 caratteri prima del clip LinkedIn/FB150-200150-2001 codepoint
Descrizione Twitter Card200 caratteri max200150-2001 codepoint
SMS segmento singolo (GSM-7)160 caratterispeciale — vedi sotto
SMS segmento singolo (UCS-2 / emoji)70 caratteri1 codepoint
Testo messaggio WhatsApp65.536 caratteri1 codepoint
Oggetto emailnessun limite di piattaforma~60 desktop / ~30 mobile<501 codepoint
Headline Google Ads30 caratteri × 15 headline30 ciascuno301 codepoint
Descrizione Google Ads90 caratteri × 4 descrizioni90 ciascuno901 codepoint
Titolo App Store30 caratteri30301 codepoint
Sottotitolo App Store30 caratteri30301 codepoint
Descrizione App Store4.000 caratteriprimi 252 sopra la piegahook a 2521 codepoint
Descrizione breve Play Store80 caratteri80801 codepoint
Descrizione lunga Play Store4.000 caratteriprimi 80 sopra la piegahook a 801 codepoint

I contenuti sopra la soglia della “zona ottimale” tendono a essere troncati, retrocessi nel ranking o tagliati fuori dalla card visibile. X Premium long-form e Mastodon (configurabile per istanza) sono le rare eccezioni che ti permettono di scrivere oltre i 500 caratteri senza penalità. Ogni conteggio sopra, tranne dove valgono le regole SMS, è un conteggio di punti di codice Unicode: un emoji costa 1 carattere, non 2. Per verificare una bozza contro i sei limiti più comuni in un colpo solo, incollala nel Contatore di parole; le barre di avanzamento intercettano il testo fuori limite prima che tu premi pubblica.

Come si contano davvero i caratteri (punti di codice Unicode vs UTF-16)

Tre strumenti diversi possono restituirti tre conteggi diversi per la stessa stringa. La ragione è che “carattere” non è una cosa sola: può significare un punto di codice Unicode, una unità di codice (code unit) UTF-16, o un cluster di grafemi (grapheme cluster), e ogni piattaforma sceglie una di queste.

Cos’è un “carattere” — codepoint vs code unit vs grafema

Un codepoint è un valore scalare Unicode: qualunque intero da U+0000 a U+10FFFF che Unicode abbia assegnato a un carattere o riservato. Una code unit è il pezzo più piccolo di una codifica; UTF-16 usa code unit a 16 bit, UTF-8 usa code unit a 8 bit. Un grapheme cluster è ciò che gli esseri umani percepiscono come un singolo carattere visibile: a volte un solo codepoint, a volte un codepoint base più segni combinanti, a volte una sequenza zero-width-joiner come l’emoji famiglia 👨‍👩‍👧‍👦 (sette codepoint uniti in un unico glifo visibile).

Per la stringa "a🌍👨‍👩‍👧" i tre conteggi non coincidono:

Metodo di conteggioRisultatoUsato da
Code unit UTF-16 (JS string.length)10Codice JavaScript ingenuo
Punti di codice Unicode6Twitter, Instagram, gateway SMS
Grapheme cluster3Bluesky, screen reader, editor di testo

Perché string.length mente sugli emoji

JavaScript memorizza internamente le stringhe come UTF-16. Qualunque codepoint sopra U+FFFF (ogni emoji, tutti i caratteri del piano astrale) viene codificato come una coppia surrogata (surrogate pair) di due code unit a 16 bit. La proprietà .length riporta quelle due unità, non un carattere.

"🌍".length              // 2   (UTF-16 code units)
[..."🌍"].length         // 1   (codepoints — what Twitter/SMS counts)
"🌍".match(/./gu).length // 1   (codepoints via regex with /u flag)

L’operatore spread e il flag regex /u iterano entrambi per codepoint, in linea con ciò che Twitter, Instagram e i gateway SMS misurano rispetto ai loro limiti. Una funzione di validazione che usa .length grezzo rifiuterà tweet che in realtà rientrano nel limite oppure, peggio ancora, lascerà passare messaggi che il sistema a valle rifiuterà.

E i caratteri CJK e i segni combinanti?

Gli ideogrammi cinesi, giapponesi e coreani sono ciascuno un singolo codepoint e contano come un carattere su ogni piattaforma. Diventano costosi negli SMS: qualsiasi carattere non-GSM-7 ribalta l’intero messaggio in codifica UCS-2, facendo scendere il limite di segmento da 160 a 70 (lo vediamo nella prossima sezione).

I segni combinanti si comportano diversamente. La á accentata scritta come á è un codepoint; la stessa á scritta come a + ́ (accento acuto combinante) è due codepoint ma un solo grapheme cluster. La maggior parte delle piattaforme conta per codepoint, quindi la seconda forma costa un carattere in più. Bluesky è l’eccezione visibile: conta i grapheme cluster, quindi entrambe le forme costano 1.

Contare in linguaggi diversi — riferimento rapido

// JavaScript
[...str].length                          // codepoints
Array.from(str).length                   // codepoints

// Python 3 — len() is codepoint by default
len(s)

// Go — utf8 package
utf8.RuneCountInString(s)

// Rust — chars() iterates codepoints
s.chars().count()

// Java — codePointCount
s.codePointCount(0, s.length())

Per confronto, il Codificatore e decodificatore Base64 ti ricorda l’altro verso del problema: quando il testo viene codificato in Base64 per la trasmissione, ogni 3 byte di input UTF-8 diventano 4 caratteri ASCII in output, quindi la lunghezza codificata dipende dal conteggio byte, non dal conteggio codepoint. Incolla un singolo emoji e guarda l’output Base64 espandersi a 8 caratteri: lo stesso emoji che costa 1 carattere su Twitter occupa 4 byte in UTF-8.

Per vedere il conteggio dei codepoint (il numero che Twitter misura davvero) su una qualsiasi bozza, il Contatore di parole è Unicode-corretto di default.

Limite caratteri SMS — GSM-7, UCS-2 e messaggi multi-parte

Gli SMS sono l’unico canale principale dove aggiungere un singolo emoji può letteralmente raddoppiare la tua bolletta. La ragione è la codifica e la matematica è la stessa dal 1985.

Il numero magico 160 — la storia di GSM-7

Lo standard GSM-03.38 del 1985 ha fissato il payload di un SMS a 140 byte. Con una codifica di caratteri a 7 bit, 140 byte contengono 1.120 bit ÷ 7 = 160 caratteri. Da qui nasce il famoso limite caratteri SMS di 160. Il set di caratteri GSM-7 copre 128 caratteri base più un’estensione di 10 caratteri (che include { } [ ] | \ ~ ^ € e form feed). Dentro quel set hai il budget pieno di 160 caratteri per segmento.

I caratteri che cadono fuori da GSM-7 e forzano il passaggio:

  • Tutti gli emoji
  • Virgolette tipografiche / “smart” (" " ' '); attenzione, sono diverse dalle virgolette ASCII dritte " '
  • La maggior parte delle lettere latine accentate oltre alle 35 in GSM-7 (é á ñ ü ø ecc.; GSM-7 include solo ä ö å æ ø à è ì ò ù e poche altre)
  • Punteggiatura a larghezza piena, caratteri CJK, arabo, ebraico, greco minuscolo, cirillico
  • Backtick ` e tilde ~ (la tilde è nella tabella di estensione GSM-7, quindi costa 2 dei tuoi 160 caratteri)

La trappola UCS-2 — un emoji ti porta da 160 a 70

Nel momento in cui un singolo carattere non-GSM-7 compare ovunque nel messaggio, l’intero messaggio passa alla codifica UCS-2. UCS-2 usa 16 bit per carattere, quindi 140 byte ÷ 2 = 70 caratteri per segmento. Esempi reali:

"Hello, your code is 12345"            → 26 chars, GSM-7, 1 segment
"Hello, your code is 12345 ✓"          → 28 chars, GSM-7 (✓ in extension), 1 segment
"Hello, your code is 12345 ✅"          → 28 chars, UCS-2 (emoji), 1 segment (under 70)
"Hello, "your" code is 12345 ✅"        → smart quotes + emoji → UCS-2
"Hi 你好"                                → CJK → UCS-2, 1 segment (5 chars)

Quell’ultimo esempio “Hi 你好” è il tranello: sono solo 5 caratteri ma scatta il prezzo UCS-2 e i successivi 65 caratteri che aggiungi entreranno in un solo segmento, poi parte il segmento 2.

SMS multi-parte (concatenazione)

Una volta superati i 160 (GSM-7) o i 70 (UCS-2), il messaggio si divide in più segmenti. Ogni segmento porta un User Data Header (UDH) di 7 caratteri usato per il riassemblaggio, quindi il payload disponibile per segmento cala:

  • GSM-7 multi-parte: 153 caratteri per segmento
  • UCS-2 multi-parte: 67 caratteri per segmento

Il telefono ricevente riassembla i segmenti in modo invisibile al destinatario, ma la fatturazione è per segmento, non per messaggio. Un messaggio GSM-7 da 161 caratteri costa 2 segmenti. Un messaggio GSM-7 da 1.000 caratteri costa 7 segmenti (153 × 6 = 918, il 7° segmento porta gli ultimi 82).

La matematica del costo — quando un emoji raddoppia la bolletta

Considera un messaggio di marketing in testo semplice da 80 caratteri:

  • Testo semplice: 80 caratteri → GSM-7 → 1 segmento al prezzo X
  • Aggiungi un emoji: 80 caratteri → UCS-2 → 80 > 70 → 2 segmenti al prezzo 2X

Raddoppiare la bolletta con un emoji è reale e scala. Una campagna da 100.000 messaggi a 0.0075 $ per segmento costa 750 $ in GSM-7 contro 1.500 $ in UCS-2: un emoji da 750 $. Ogni grande provider SMS (Twilio, Bandwidth, AWS SNS, MessageBird, Vonage) fattura in questo modo. Le regole di codifica sono standard GSM, non policy del vendor. La storia approfondita dei trade-off di codifica a livello byte (e perché ASCII, UTF-8, UCS-2 esistono come standard separati) è coperta in Capire Base64, che è la stessa famiglia di problemi “bit dentro caratteri” applicata all’email invece che agli SMS.

Come mantenere i messaggi in GSM-7

  • Usa virgolette ASCII dritte " ', non virgolette tipografiche
  • Usa il trattino ASCII -, non em-dash o en-dash
  • Scrivi per esteso (c) e (R), non © e ®
  • Evita gli emoji a meno che il budget della campagna non assuma il costo UCS-2
  • Le console dei provider (di Twilio, Bandwidth, MessageBird) mostrano “encoding: GSM-7” o “UCS-2” accanto all’anteprima; verifica prima del broadcast

Il controllo di sanità più rapido durante la stesura è la barra di avanzamento SMS del Contatore di parole, che riporta rispetto alla baseline di 160 caratteri. Se il tuo testo innesca UCS-2, dividi mentalmente il conteggio caratteri per 2.29 per stimare il numero di segmenti sotto la regola dei 70 caratteri.

Limiti SEO — meta description, title tag, OG, Twitter Card

I limiti di caratteri SEO sono più morbidi di quelli delle piattaforme (Google non rifiuterà la tua pagina se una meta description tocca i 300 caratteri), ma le regole pratiche di troncamento contano per il click-through rate. Ecco i numeri che reggono ancora nel 2026.

Meta description — zona ottimale 150-160 caratteri

I risultati di ricerca desktop di Google troncano la meta description intorno ai 155-165 caratteri; il mobile taglia da qualche parte tra 100 e 120. Il punto esatto di troncamento varia perché Google misura i pixel di visualizzazione, non i caratteri. Una descrizione piena di glifi W e M raggiunge il pixel di troncamento prima di una piena di i e l.

Regole pratiche di scrittura:

  • Punta a 150-160 caratteri totali
  • Metti il messaggio centrale nei primi 120 caratteri (sicuro su mobile)
  • Apri con la keyword limite di caratteri meta description della pagina nei primi 30 caratteri
  • Chiudi con una CTA negli ultimi 30 caratteri, leggibile anche quando desktop taglia il centro

L’era 2017-2018 ha visto Google espandere brevemente la visualizzazione della meta description a 320 caratteri, e una generazione di tutorial SEO cita ancora quel numero. Google è tornata a 160 a metà 2018. Scrivere oltre i 200 caratteri oggi nasconde solo la seconda metà.

Una modalità di fallimento diversa: le descrizioni sotto i 120 caratteri vengono spesso sostituite del tutto. Google decide che la tua descrizione non serve pienamente la query e tira fuori un passaggio diverso dal corpo della pagina, e perdi il controllo del CTR senza preavviso.

Title tag — 60 desktop, 50 mobile

I title tag vengono tagliati intorno ai 60 caratteri su desktop e 50 su mobile. Stesso troncamento basato sui pixel delle descrizioni, stessa avvertenza sui glifi larghi.

Zona ottimale: 50-60 caratteri, con la keyword target nei primi 30 in modo che sopravviva a qualunque taglio. I suffissi long-tail di brand (| Brand Name) stanno alla fine, dove il troncamento fa meno male.

Larghezza in pixel vs conteggio caratteri: la regola reale di Google

Il contenitore della descrizione nella SERP di Google è largo circa 920 pixel su desktop. La larghezza media dei caratteri si attesta intorno ai 6.5 pixel, da cui il target empirico di 140-160 caratteri. Ma lo spread per carattere è ampio: i rende a circa 3 pixel, M a circa 11. Una descrizione tutta maiuscola (“BEST WIDGETS FOR WINTER WEDDINGS”) viene tagliata sostanzialmente prima rispetto all’equivalente minuscolo.

Le anteprime pre-pubblicazione che usano simulatori SERP pixel-accurati sono più affidabili dei contatori di caratteri per il copy SEO.

Descrizione OG e descrizione Twitter Card

L’og:description del protocollo Open Graph è ciò che Facebook, LinkedIn, Slack e Discord renderizzano sotto l’anteprima di un link condiviso. I tetti di visualizzazione variano per piattaforma: la maggior parte taglia intorno ai 200 caratteri, alcune si estendono a 300. La twitter:description della Twitter Card è limitata in modo rigido a 200 caratteri nel parser di Twitter.

Default sensati:

  • 150-200 caratteri sia per OG sia per Twitter Card
  • Possono coincidere con la tua meta description, ma OG può essere leggermente più lunga perché la lunghezza OG non influisce sul ranking di ricerca
  • Convalida le scelte sui dati strutturati (specialmente cosa viene tirato in OG per errore) usando i pattern in Buone pratiche di sicurezza, dove metadati OG non attendibili sono un vettore comune di phishing

Cosa significa davvero “nessun limite di caratteri”

I tag H1, il corpo del contenuto e gli slug URL non hanno un limite di caratteri SEO imposto dalla piattaforma, ma valgono ancora limiti soft:

  • H1 > 70 caratteri rompe la gerarchia visiva e la scansionabilità
  • Slug URL tecnicamente illimitati; Google ne mostra circa 90 caratteri nella SERP, oltre è solo cosmetico
  • Il corpo non ha tetto di lunghezza, ma Google premia il contenuto utile sul riempitivo, e il word count da solo non è un segnale di ranking

Il Contatore di parole traccia sia la meta description (160) sia il title tag (60) dal vivo mentre scrivi, con barre di avanzamento che diventano ambra e rosse mentre ti avvicini al pixel di troncamento.

Piattaforme social — Twitter/X, Instagram, LinkedIn, Facebook e oltre

Ogni tetto di caratteri di una piattaforma ha una storia dietro e una zona ottimale sotto il limite assoluto in cui il contenuto rende davvero.

Twitter / X — 280, premium 25.000, regola di sostituzione URL

Il limite caratteri Twitter standard è di 280 caratteri, raddoppiato dai 140 nel novembre 2017. Gli abbonati a X Premium possono pubblicare contenuti long-form fino a 25.000 caratteri con formattazione ricca, ma il post da 280 caratteri resta la forma dominante per la portata organica.

La regola meno ovvia è la sostituzione URL. Twitter avvolge ogni URL, indipendentemente dalla sua lunghezza, in uno short link t.co da 23 caratteri al momento della pubblicazione. Il costo da 23 caratteri è fisso.

published_length = raw_length − URL_length + 23

Esempio: una bozza come "Check this: https://example.com/very-long-path?id=12345" è 53 caratteri grezzi. L’URL è 38 caratteri, quindi viene sostituito con un link t.co da 23 caratteri, e la lunghezza pubblicata è 53 − 38 + 23 = 38 caratteri. Risparmi 15 caratteri che non sapevi di avere.

Per incollare un URL lungo in una bozza, il Codificatore e Decodificatore URL è un modo rapido per verificare cosa conta come URL (Twitter riconosce gli URL tramite i pattern RFC 3986, query string e fragment inclusi). Sottodomini, schemi, porte, path, query e fragment vengono tutti inghiottiti dalla sostituzione da 23 caratteri.

Altri campi Twitter: nome visualizzato 50 caratteri, bio 160 caratteri, handle 15 caratteri. Threads (l’equivalente Twitter di Meta) usa invece un limite di 500 caratteri.

Instagram — didascalia 2.200, 30 hashtag, hook da 125 caratteri

Le didascalie Instagram permettono 2.200 caratteri, ma il feed mostra solo i primi 125 caratteri prima di collassare il resto dietro a un tap su ”… altro”. Più della metà dei lettori non tappa mai. Il limite didascalia Instagram che conta per l’engagement è quindi 125, anche se il limite assoluto è 2.200.

Il tetto di 30 hashtag è rigido: provare a inserire un 31° hashtag fa fallire il post. L’intervallo 5-10 hashtag tende a rendere meglio; oltre gli 11 il boost di discovery si appiattisce e il post inizia a sembrare spam all’algoritmo.

Altri campi: bio 150 caratteri, nome visualizzato 30 caratteri, DM 1.000 caratteri.

LinkedIn — post 3.000, zona ottimale 1.300, soglia “vedi altro”

Il limite caratteri LinkedIn per i post è 3.000, ma il feed mostra solo i primi 210 caratteri prima della soglia “vedi altro”. I post nella fascia 1.200-1.500 caratteri vincono in engagement su LinkedIn (studi multipli di Buffer e Hootsuite convergono intorno a 1.300 come picco); sono abbastanza lunghi da dimostrare valore, abbastanza brevi da non logorare lo scroll.

Gli articoli LinkedIn (la superficie di pubblicazione long-form) permettono 110.000 caratteri, di fatto illimitati. Le headline del profilo si fermano a 220, la sezione about a 2.600.

Facebook — 63.206 caratteri, zona ottimale organica a 80

Il limite di 63.206 caratteri per i post di Facebook è perlopiù curiosità; in pratica i post sotto gli 80 caratteri ottengono circa il 30% di engagement organico in più rispetto a quelli più lunghi (HubSpot lo riporta in modo costante negli anni). Sopra la piega, desktop mostra circa 477 caratteri; mobile taglia intorno a 125.

Il massimo per commento è 8.000 caratteri. Reazioni, condivisioni e click-through pendono tutti verso post più brevi: il copy lungo appartiene all’articolo linkato, non alla didascalia Facebook.

Piattaforme più recenti — Bluesky, Mastodon, Threads, TikTok

  • Bluesky i post si fermano a 300 caratteri e sono il caso insolito: Bluesky conta i grapheme cluster, quindi l’emoji famiglia da sette codepoint 👨‍👩‍👧‍👦 costa 1 carattere, non 7
  • Mastodon ha default a 500 caratteri per toot, ma gli admin dell’istanza possono alzarlo a 5.000 o anche illimitato; controlla l’istanza da cui pubblichi
  • Threads usa limiti stile Twitter da 500 caratteri con conteggio per codepoint
  • TikTok le didascalie permettono 2.200 caratteri con circa 100 mostrati sopra la piega

Reddit, Discord, Slack — long-form e default di community

  • Reddit titolo 300 caratteri (i moderatori dei subreddit spesso impongono <60 via AutoModerator); commenti 10.000 caratteri
  • Discord messaggio standard 2.000 caratteri; descrizioni embed 4.096; Nitro alza a 4.000 sui messaggi semplici
  • Slack messaggio 40.000 caratteri; sopra i 2.000 la leggibilità crolla nettamente e molti destinatari ignorano i messaggi lunghi

Target di word count per tipo di contenuto

I limiti di caratteri dominano social e SEO; il word count domina tutto il resto: lavoro accademico, fatturazione, content marketing, manoscritti. La tabella sotto offre un intervallo target e una stima del tempo di lettura (230 wpm, la mediana della meta-analisi di Brysbaert 2019 sulla lettura silenziosa) per ogni tipo di contenuto comune.

Tipo di contenutoTarget di paroleTempo di lettura @ 230 wpmNote
Tweet30-40 parole10 secottimizza per carattere, non per parola
Post LinkedIn (zona ottimale)170-250 parole1 minsopra la piega
Didascalia Instagram (hook)20-25 parole<10 secprimi 125 caratteri
Articolo blog — breve500-700 parole2-3 minlisticle, news, hot take
Articolo blog — standard1.000-1.500 parole4-7 mintutorial, guida approfondita
Articolo blog — lungo2.000-3.000 parole9-13 minguida completa
Pagina pillar SEO2.500-5.000 parole11-22 minautorevolezza topica
Saggio accademico (liceo)500-1.500 parole2-7 minvaria per compito
Saggio accademico (triennale)1.500-3.000 parole7-13 minper compito
NaNoWriMo giornaliero1.667 parole/giorno50K parole in 30 giorni
Romanzo — breve50.000-70.000 paroleYA, giallo
Romanzo — standard80.000-100.000 parolenarrativa adulta
Talk a conferenza (12 min @ 130 wpm)1.500-1.600 paroleparlatoprova in lettura per confermare
Episodio podcast (30 min @ 130 wpm)3.900 paroleparlatoparte scriptata

Il tempo di lettura è l’unità target più utile per il content marketing: i lettori rispondono a un’etichetta “lettura di 5 minuti” in modo più affidabile che a una “1.150 parole”. Il word count resta l’unità per la fatturazione (traduzioni fatturate per parola sorgente), la compliance di piattaforma (i 50K di NaNoWriMo, il tetto accademico di 2.000 parole) e i termini contrattuali. Il Contatore di parole mostra entrambi in tempo reale mentre scrivi, più il tempo di parlato a 130 wpm per talk e podcast.

6 errori di conteggio che rompono app reali

Questi sono i fallimenti ricorrenti visti in codice spedito in produzione e in campagne di marketing già lanciate. Ognuno è abbinato al sintomo, alla causa principale e alla correzione.

Errore 1: usare string.length per la validazione del limite di caratteri

Sintomo: un utente incolla un tweet con tre emoji che in realtà è di 270 codepoint. La tua validazione front-end dice 276 e rifiuta l’invio. Oppure, peggio, il tuo codice accetta una bozza da 285 codepoint perché il budget emoji si annulla, e Twitter la rifiuta lato server.

Causa principale: String.prototype.length in JavaScript restituisce code unit UTF-16. Ogni emoji è una coppia surrogata, costa 2 unità. Ogni carattere del piano astrale (simboli matematici, scritture antiche) fa lo stesso.

Correzione: itera per codepoint con l’operatore spread o Array.from.

// ❌ wrong
function isUnderTwitterLimit(text) {
  return text.length <= 280;
}

// ✅ correct
function isUnderTwitterLimit(text) {
  return [...text].length <= 280;
}

Per pattern più approfonditi di iterazione per codepoint basata su regex (incluso il trattamento dei grapheme cluster), il Cheat Sheet delle Espressioni Regolari copre i flag /u e /v e gli escape di proprietà Unicode.

Errore 2: dividere il testo CJK sugli spazi bianchi per il word count

Sintomo: un articolo cinese da 500 caratteri viene riportato come 1 parola. Il preventivo di traduzione basato su quello sbaglia di 500 volte.

Causa principale: le lingue CJK non usano spazi tra le parole. text.split(/\s+/) restituisce un singolo token che contiene l’intero saggio.

Correzione: conta ogni ideogramma CJK come una parola, la convenzione usata da Microsoft Word, Google Docs e ogni word processor CJK nativo.

function countWordsMixed(text) {
  const cjk = (text.match(/[一-鿿぀-ヿ가-힯]/g) || []).length;
  const latin = (text
    .replace(/[一-鿿぀-ヿ가-힯]/g, ' ')
    .match(/[A-Za-z0-9]+(?:['’-][A-Za-z0-9]+)*/g) || []).length;
  return cjk + latin;
}

Gli intervalli Unicode coprono CJK Unified Ideographs (U+4E00 a U+9FFF), Hiragana e Katakana (U+3040 a U+30FF), e Hangul Syllables (U+AC00 a U+D7AF): i quattro blocchi che il word count di Microsoft Word conta come ideogrammi.

Errore 3: dimenticare la sostituzione URL da 23 caratteri di Twitter

Sintomo: una bozza mostra 320 caratteri nel tuo contatore, incluso un URL da 80 caratteri. Spendi 10 minuti a tagliare, solo per scoprire che Twitter avrebbe accettato l’originale a 263 caratteri.

Causa principale: Twitter sostituisce ogni URL con un link t.co da 23 caratteri al momento della pubblicazione. Il tuo contatore grezzo non lo sa.

Correzione: pre-calcola la lunghezza pubblicata usando raw − URL_length + 23 per ogni URL. Per bozze con più URL, somma le correzioni. Il rilevamento URL nei contenuti pubblicati segue RFC 3986, le stesse regole di parsing che la guida Codifica e decodifica URL attraversa passo passo.

Errore 4: scrivere meta description a 320 caratteri (vecchia linea guida)

Sintomo: hai costruito una meta description da 280 caratteri con la CTA in coda. Nei risultati di ricerca Google, la descrizione viene tagliata a metà frase al carattere 158 e la CTA non appare mai.

Causa principale: tra dicembre 2017 e maggio 2018, Google ha brevemente espanso la visualizzazione della meta description a 320 caratteri. Molti tutorial SEO citano ancora quel numero. Google è tornata a ~160 a metà 2018 e da allora è rimasta lì.

Correzione: scrivi entro 150-160 caratteri. Metti la keyword primaria nei primi 30 caratteri e la CTA negli ultimi 30. Usa un simulatore SERP pixel-accurato per pagine ad alto valore: i glifi larghi (W, M, K) mangiano il budget più in fretta di quelli stretti (i, l, t).

Errore 5: confondere 280 caratteri con 280 parole

Sintomo: qualcuno in team scrive “ci serve un tweet da 280 parole” e produce 1.500 caratteri di prosa perfettamente decente. Il tweet non si pubblica.

Causa principale: confusione tra carattere e parola. Le due unità differiscono di circa 5-6 volte per prosa inglese.

Correzione: fissa la regola per piattaforma. Twitter, SMS e meta SEO contano caratteri. NaNoWriMo, compiti accademici, contratti di traduzione e la maggior parte dei brief di content marketing contano parole. In caso di dubbio, controlla il contatore della piattaforma stessa (la compose box di Twitter, Review > Conteggio parole di Word) prima di bloccare la specifica.

Errore 6: incollare virgolette tipografiche che fanno passare silenziosamente SMS a UCS-2

Sintomo: copi un template di ricevuta cliente da Google Doc nel tuo sender SMS. L’originale era 145 caratteri e partiva come un segmento GSM-7. Dopo l’incolla, sono gli stessi 145 caratteri ma vengono fatturati come 2 segmenti UCS-2. I costi raddoppiano su una campagna da un milione di messaggi.

Causa principale: Google Docs e Word convertono automaticamente " e ' in virgolette tipografiche " " e ' '. Quelle virgolette non sono nel set di caratteri GSM-7, e questo ribalta l’intero messaggio in UCS-2.

Correzione: normalizza prima della trasmissione:

function toGsm7Quotes(s) {
  return s
    .replace(/[“”]/g, '"')   // " " → "
    .replace(/[‘’]/g, "'")   // ' ' → '
    .replace(/[–—]/g, '-');  // – — → -
}

Esegui questo prima degli invii sensibili alla fatturazione. Twilio, MessageBird e Bandwidth espongono tutti un campo encoding sulla risposta: loggalo e fai partire un alert quando UCS-2 compare in template che intendevi come GSM-7.

FAQ

Qual è la differenza tra conteggio caratteri e word count?

Il conteggio caratteri conta ogni carattere inclusi spazi, punteggiatura ed emoji, misurato per codepoint Unicode sulla maggior parte delle piattaforme moderne. Il word count conta token separati da spazi bianchi per le scritture latine e ideogramma per ideogramma per le lingue CJK. Twitter, SMS e meta description SEO usano il conteggio caratteri. I saggi accademici, i manoscritti di NaNoWriMo e le fatture di traduzione usano il word count.

Perché Twitter conta un emoji come 1 carattere ma JavaScript lo conta come 2?

Twitter misura per punto di codice Unicode: ogni emoji è un codepoint, un carattere. string.length di JavaScript misura code unit UTF-16. La maggior parte degli emoji è sopra U+FFFF e viene codificata come coppia surrogata in UTF-16, quindi occupa due code unit e .length restituisce 2. Usa [...text].length o Array.from(text).length per ottenere il conteggio codepoint che Twitter conta davvero.

Perché il limite caratteri SMS a volte è 160 e altre volte 70?

Gli SMS usano di default la codifica GSM-7 a 7 bit, che dà 160 caratteri in un payload da 140 byte. Se il messaggio contiene un qualunque carattere non-GSM-7 (emoji, virgolette tipografiche, CJK, latini accentati oltre a un piccolo insieme), l’intero messaggio passa alla codifica UCS-2 a 16 bit e il limite per segmento scende a 70 caratteri. Un singolo emoji ovunque nel messaggio innesca il passaggio.

Qual è la lunghezza ideale della meta description nel 2026?

Punta a 150-160 caratteri. La SERP desktop di Google tronca intorno ai 155-165 a seconda della larghezza in pixel; il mobile taglia tra 100 e 120. Sotto i 120 caratteri Google spesso sostituisce la tua descrizione del tutto con un passaggio dal corpo della pagina. Apri con la keyword primaria nei primi 30 caratteri e chiudi con la CTA negli ultimi 30, così il messaggio sopravvive al troncamento da entrambi i lati.

Il limite di caratteri include spazi ed emoji?

Sì, su praticamente ogni piattaforma. Spazi, a-capo, punteggiatura ed emoji contano ciascuno come un codepoint Unicode. Due eccezioni che vale la pena conoscere: gli SMS dove gli emoji innescano il passaggio di codifica descritto sopra, e Bluesky che conta grapheme cluster quindi un emoji multi-codepoint come la famiglia 👨‍👩‍👧‍👦 costa 1 carattere invece di 7.

Come si calcola il word count per testo cinese, giapponese, coreano?

Ogni ideogramma CJK conta come una parola, la convenzione usata dal word count in modalità cinese di Microsoft Word, da Google Docs, dagli editor CJK nativi e da ogni sistema commerciale di translation memory. Un saggio cinese da 500 caratteri viene riportato come 500 parole. Il testo misto conta gli ideogrammi CJK per carattere e i token latini per spazi bianchi, sommando i due.

Come gestisce Twitter la lunghezza degli URL nel limite di 280 caratteri?

Twitter avvolge automaticamente ogni URL in uno short link t.co da 23 caratteri al momento della pubblicazione, indipendentemente dalla lunghezza originale. La lunghezza pubblicata segue la formula published = raw − URL_length + 23 per URL. Una bozza da 320 caratteri che contiene un URL da 100 caratteri risulta di 243 caratteri. Twitter riconosce gli URL tramite i pattern RFC 3986, quindi query string e fragment vengono assorbiti nel token URL.

Letture correlate

Articoli correlati

Vedi tutti gli articoli