Text Tools

How to Count Words and Characters: Why Counters Disagree, SMS Limits and Reading Time

The same sentence can have 8, 10 or 12 words, depending on who counts. We tested how browsers split words, counted our own guides in four languages and worked out when an SMS shrinks from 160 to 70 characters.

By Published 7 min read

Limits are everywhere: an essay with at most 1,500 words, a meta description of about 155 characters, an SMS reminder that must fit into one message, a translation quote per word or per line. But counting is less obvious than it seems. We tested how browsers split text into words, counted the ten guides on this website in English, German, Spanish and Persian, and calculated SMS lengths with the rules of the GSM standard. You can check any text with our word counter, which now also shows how many SMS it needs.

What counts as a word?

The simplest rule is the one most people expect: everything between two spaces is a word. Browsers also have a built-in word segmenter (Intl.Segmenter), which follows the Unicode rules for word boundaries and splits text at many punctuation marks. We counted the same sentences both ways:

"Between spaces" counts every piece between spaces or line breaks that contains at least one letter or digit.
TextBetween spacesChrome 141 segmenterNode.js 22 segmenter
Don't e-mail the U.S. office before 9:30 a.m.81210
Visit https://omid57.eu/en-US/guides today.388
Das E-Mail-Postfach ist voll.466
Die Donaudampfschifffahrtsgesellschaft hat z. B. 1.234,5 Tonnen geladen.888

The segmenters split "e-mail" into two words, a time like 9:30 into two numbers and a web address into up to eight parts. Chrome and Node.js, which both use the V8 engine, did not even agree with each other on the first sentence: Node.js kept "U.S" and "a.m" together, Chrome did not. For a word limit, that is not helpful. Our word counter therefore uses the rule "between spaces, at least one letter or digit", which is also the basic rule of word processors. Only for languages written without spaces between words, such as Chinese, Japanese and Thai, does it ask the browser's segmenter.

German compounds show the other side of the rule: "Donaudampfschifffahrtsgesellschaft" is one word with 34 letters. That is why German texts have fewer but longer words, as our four-language comparison below shows.

Persian: the half-space decides

In Persian, prefixes and plural endings are attached with a half-space, the zero-width non-joiner (ZWNJ, U+200C). The letters stay apart visually, but the word is not broken. If a normal space is typed instead, every counter sees two words:

Counted with our word counter. The half-space itself is invisible and is not counted as a character, but in an SMS it takes a place like any other character.
TextWordsCharacters (visible)
«می‌خواهم کتاب‌ها را بخوانم.» (with half-spaces)425
«می خواهم کتاب ها را بخوانم.» (with spaces)627

The same sentence therefore has 50% more words when it is typed with spaces instead of half-spaces. If a Persian text has to meet a word limit, check its half-spaces first.

Characters: what you see is not what is stored

Counting characters is just as tricky. What looks like one character on screen can consist of several code points, and JavaScript's simple length counts something different again:

Measured in Node.js 22. How X counts is taken from its developer documentation: every emoji counts as two characters, however many code points it has.
CharacterVisibleJavaScript lengthUnicode code pointsCounted by X
👍1212
🇩🇪 (flag)1422
👨‍👩‍👧 (family)1852

Simple counters that use length count the family emoji as eight characters. Our counter counts the characters you actually see (graphemes), so each emoji is one. Platforms have their own rules on top: on X, every emoji counts as two and every link as 23 characters, regardless of its real length.

Many forms and translation agencies also distinguish between characters with and without spaces. Our counter shows both. If a limit does not say which one it means, assume spaces are included.

The same content in four languages

How much longer does a text become when it is translated? We counted the running text and FAQs of the first ten guides on this website in all four languages, using the same rules as our word counter:

Body text, tables and FAQs of ten guides, without code blocks and tool cards. Our versions are adapted rather than translated word for word and contain a few local additions, which also influence the numbers.
LanguageWordsCharacters without spacesCharacters per wordWords compared with EnglishCharacters compared with English
English13,73664,7484.71––
German13,10974,9145.71−4.6%+15.7%
Spanish15,03171,8344.78+9.4%+10.9%
Persian14,51261,1484.21+5.6%−5.6%

German needed slightly fewer words but almost 16% more characters, because of its long compounds. Spanish needed more of both. Persian needed more words but fewer characters: its words are short, and short vowels are usually not written. In practice, this means: if an English text just fits into a button, a heading or a form field, the German version will often not. Plan about 15 to 20% extra space for German and Spanish.

SMS: 160 or 70 characters?

An SMS has room for 140 bytes. With the 7-bit GSM alphabet defined in 3GPP TS 23.038, that is 160 characters. This alphabet contains the Latin letters, digits and common punctuation, and also ä, ö, ü, ß, é, è, ñ and ç. Some characters, such as the euro sign € and square or curly brackets, are in an extension table and count twice.

If the text contains even one character outside this alphabet, the whole message is sent in Unicode (UCS-2) with two bytes per character: then only 70 characters fit into one SMS. That applies to Persian and Arabic letters, to every emoji and, in the basic alphabet, to the Spanish á, í, ó and ú. Longer messages are split into parts and joined again on the phone; the joining header takes some room, so each part holds 153 GSM characters or 67 Unicode characters. An emoji outside the basic Unicode range takes two of those places.

We calculated the same appointment reminder in all four languages:

Calculated with the rules of 3GPP TS 23.038, without national language tables.
MessageCharactersEncodingSMS needed
English reminder94GSM1
German version (with "ä" in "Bestätigung")107GSM1
Spanish version with "SÍ" and "llámanos"98Unicode, because of "Í"2
The same Spanish text without accents98GSM1
Persian version104Unicode2
English reminder plus one 🙂96Unicode, because of the emoji2

A single smiley doubled the cost of the English message. The standard also defines a Spanish extension table that contains á, í, ó and ú; whether it is used depends on the phone and the network. Without it, the message falls back to Unicode.

How long does it take to read?

A meta-analysis by Marc Brysbaert (2019) evaluated 190 studies on reading speed with more than 18,000 participants. Adults read English non-fiction silently at an average of 238 words per minute and fiction at 260; most readers are between 175 and 300 words per minute for non-fiction. Reading aloud averaged 183 words per minute.

Our word counter estimates reading time with 220 words per minute, a little below the average, so that slower readers and people reading in a second language are not left behind. For speaking it uses 140 words per minute, a calm pace for a presentation. A ten-minute talk therefore needs about 1,400 words. According to Brysbaert, rates in other languages depend on how many words a language needs to say the same thing, which our comparison above shows can differ by around 10% in either direction.

Common limits at a glance

SMS: 3GPP TS 23.038. X: developer documentation. Google cuts titles and descriptions by width; see our guide on titles and meta descriptions.
WhatLimitCounted in
SMS, GSM alphabet160 per message, 153 per partcharacters (€ and brackets count twice)
SMS, Unicode (Persian, emoji, á)70 per message, 67 per partUTF-16 units (an emoji counts twice)
Post on X280characters; emoji count as 2, every link as 23
Title tag in Google resultsabout 50–60 characters before it is cut offpixels, not characters
Meta description in Google resultsabout 120–155 characterspixels, not characters

How titles and descriptions are cut off in search results is explained in our guide how to write a title tag and meta description.

Checklist before you submit a text

  1. Find out what the limit counts: words, characters with spaces, characters without spaces or SMS.
  2. Paste the final text into a counter, not a draft with comments or tracked changes.
  3. For Persian texts, check that prefixes and plural endings are joined with half-spaces.
  4. For SMS, check the encoding: one emoji or one Persian letter reduces the limit from 160 to 70 characters.
  5. When a text is translated, plan 15 to 20% extra space for German and Spanish.
  6. For talks and videos, use the speaking time rather than the reading time.

Word CounterCount words, characters (with and without spaces), sentences and paragraphs instantly, plus reading and speaking time.Open tool

Tools used in this guide

Frequently asked questions

Why do word counters show different numbers for the same text?

Because they use different rules. Some count everything between spaces, others use the Unicode word boundary rules and split hyphenated words, abbreviations, times and web addresses. In our test the same sentence had 8, 10 or 12 words. Our counter counts everything between spaces that contains a letter or digit as one word.

Does a hyphenated word like "e-mail" count as one word?

In our word counter, yes. Counters that rely on the browser's word segmenter count it as two words.

How many characters fit into one SMS?

160 characters if the text only uses the GSM alphabet, which includes German umlauts. As soon as one character is outside it, for example an emoji, a Persian letter or a Spanish á, only 70 fit. Longer messages are split into parts of 153 or 67 characters.

How are emoji counted?

Our word counter counts each emoji as one character, as you see it. JavaScript's length counts some emoji as up to eight, X counts each emoji as two, and in an SMS an emoji switches the whole message to Unicode.

Does the Persian half-space count as a space?

No. A half-space (ZWNJ) keeps a word together, so «می‌خواهم» is one word. If it is typed with a normal space, it becomes two words.

Is the text I paste into the word counter uploaded?

No. The word counter runs entirely in your browser. Your text is counted on your device and is not sent anywhere.

Sources and further reading

  1. ETSI TS 123 038 / 3GPP TS 23.038 – Alphabets and language-specific information (GSM 7-bit alphabet) (www.etsi.org)
  2. Unicode Standard Annex #29 – Unicode Text Segmentation (word boundaries) (www.unicode.org)
  3. X Developer Platform: Counting characters (docs.x.com)
  4. Brysbaert, M. (2019): How many words do we read per minute? A review and meta-analysis of reading rate. Journal of Memory and Language 109 (doi.org)
All guides