Character Count Lying? 3 Steps Beating Twitter Ad Limits

Strip Before You Count: The 10-Second Trick That Prevents Rejected Copy

Here's something you can use right now: paste your ad copy into a plain text editor, copy it back out, then run your character count. That single paste-roundtrip just killed every hidden formatting character lurking in your draft. You're welcome—and yes, those invisible squatters are exactly why your character counter tool shows 162 characters while Google Ads swears you're at 178.

I'm going to walk you through why that gap exists, how to measure it accurately, and how to build a counting workflow that means you never get a "copy exceeds limit" rejection again. Seven steps. No fluff. By the end, you'll have a repeatable system that makes your word counter and the platform agree—every single time.

1. Understand What "Raw Character Count" Actually Includes

Raw character count is the brute-force number. It counts everything—every letter, space, punctuation mark, and, critically, every invisible formatting tag your text editor dragged along like barnacles on a ship hull.

When you draft copy in Google Docs, WordPress, or a rich-text email editor, your text carries hidden passengers. Non-breaking spaces ( ), zero-width joiners, soft hyphens, paragraph markers, and HTML entity codes all ride along invisibly. A basic character counter that reads your clipboard will often tally these stowaways. The platform you're pasting into? It counts them too—sometimes.

Here's the kicker: different platforms count differently. Google Ads counts visible characters but strips most HTML. Twitter counts Unicode code points, which means an emoji can eat 2-7 characters depending on its encoding. Facebook's meta description preview truncates at a pixel width, not a character count. So "raw" isn't just one thing—it's a moving target depending on where your copy lands.

2. Grasp What "Visible Text Character Count" Really Means

Visible text character count is what a human reader sees on the finished page. No HTML tags. No hidden Unicode formatting. No zero-width spaces. Just the letters, numbers, punctuation, and spaces that actually render on screen.

Think of it this way: raw count is what your text contains. Visible count is what your audience reads. In copywriting—especially for character-limited formats like meta descriptions, PPC ads, social posts, and SMS—visible count is the number that matters. It's the number that determines whether your headline gets cut off mid-sentence or your call-to-action survives the truncation guillotine.

Most online word counter tools attempt to show you visible text count by stripping HTML before counting. But they vary wildly in how aggressively they clean your text. Some remove HTML tags but keep non-breaking spaces. Others strip everything but miss Unicode formatting characters entirely. This inconsistency is why two different counters can give you two different numbers for the same copy.

3. Calculate the Hidden Gap with a Real Example

Let's get concrete. Say you write this Google Ads headline in Google Docs:

"Spring Sale — Save 40% Today"

You copy it into your favorite character counter. It reports 28 characters. But when you paste it into Google Ads, the platform flags you at 31 characters—over the 30-character headline limit. What happened?

That em dash (—) is the culprit. In Unicode, it's encoded as U+2014, which some systems count as a single character and others as three bytes. Google Docs may also insert a non-breaking space before or after it automatically. So your "28 characters" becomes 31 in Google's counting logic.

Here's the math breakdown:

  • Visible characters you see: S-p-r-i-n-g- -S-a-l-e- -—- -S-a-v-e- -4-0-%- -T-o-d-a-y = 27 visible characters
  • Raw count with non-breaking space: 28 characters
  • Google Ads byte-counted total: 31 characters (em dash counted as 3 bytes + 1 non-breaking space)

That 4-character gap between what you see and what the platform counts is enough to get your copy rejected. And most copywriters never trace it back to the source.

4. Audit Your Copy for the Four Invisible Culprits

Now let's hunt down the specific characters that inflate your raw count without adding visible value. There are four repeat offenders:

Culprit #1: Non-Breaking Spaces

These look identical to regular spaces but encode as   in HTML and count as 6 raw characters in some systems. Google Docs inserts them automatically after abbreviations, before em dashes, and in other spots it deems "grammatically sticky." Strip them by pasting through a plain text editor.

Culprit #2: Smart Quotes and Em Dashes

Word processors auto-convert straight quotes (" ") to curly quotes (" ") and hyphens to em dashes (—). These "smart" characters are multi-byte in Unicode. A straight quote is 1 byte. A curly quote can be 3 bytes. Multiply that across a 160-character meta description with 12 quotes and 3 dashes, and your raw count balloons by 30+ invisible characters.

Culprit #3: Zero-Width Characters

Zero-width spaces, zero-width joiners, and zero-width non-joiners are invisible formatting characters used in complex text rendering. They show up when you copy text from certain websites, PDFs, or design tools. They contribute zero visible width but add raw character count. Sneaky, persistent, and almost impossible to spot without a character inspector.

Culprit #4: Line Breaks and Carriage Returns

A line break in Windows encodes as two characters (carriage return + line feed). On Mac, it's one (line feed only). If your text character counter counts line breaks—and most do—your raw count includes these invisible structural characters. A 5-line ad with 4 line breaks could carry 4-8 hidden characters depending on your operating system.

5. Build a Foolproof Counting Workflow

Enough diagnosis. Here's the treatment. Follow these steps in order, every time you finalize copy for a character-limited platform:

Step 1: Draft in Plain Text

Write your initial draft in a plain text editor—Notepad, TextEdit in plain mode, or a code editor like VS Code. No rich text. No auto-formatting. This eliminates 90% of hidden character issues before they start.

Step 2: Run Your Character Count

Paste your plain text into a reliable character counter tool that explicitly strips HTML and Unicode formatting. Check whether the tool counts spaces, line breaks, and multi-byte characters. Know its rules before you trust its number.

Step 3: Verify Against Platform Logic

Before finalizing, paste your copy directly into the target platform's input field. Google Ads, Twitter, Facebook, and your CMS all have built-in counters that reflect their specific counting rules. That platform counter is the only number that truly matters—treat your external word counter as a draft-stage guide, not a final authority.

Step 4: Adjust and Re-Verify

If the platform shows a different number than your counter, don't argue with it. Trim characters until the platform's counter says you're within limit. Then copy that final version back into your plain text file for record-keeping.

6. Match Your Counter to the Platform's Logic

Here's where most copywriters give up and just guess. But if you understand each platform's counting logic, you can predict the gap and adjust preemptively:

Google Ads: Counts visible characters, strips HTML, but counts multi-byte Unicode characters by byte length. Em dashes, curly quotes, and accented characters can inflate your count. Stick to ASCII characters whenever possible.

Twitter/X: Counts Unicode code points. Most characters count as 1, but emojis range from 2-7 code points. A tweet with 3 emojis might have 15-21 fewer usable text characters than you think.

Meta descriptions (Google SERP): Truncation is pixel-based (roughly 920 pixels on desktop), not strictly character-based. Google typically displays 155-160 characters, but wide characters (W, M, uppercase) eat more pixels. A 155-character meta description full of wide letters might truncate at 145.

SMS marketing: GSM-7 encoding gives you 160 characters. But switch to a single emoji or accented character, and encoding flips to UCS-2, dropping your limit to 70 characters. One emoji doesn't cost you 1 character—it costs you 90.

7. Lock In Your Final Number with a Double-Check System

You're almost done. One last safeguard prevents the final "but it looked fine in my counter" disaster.

After your copy passes the platform's built-in counter, screenshot the approved version. Save it alongside your plain text file. This creates an audit trail: if the platform later rejects your copy (and some do, due to secondary review processes), you have proof it passed the initial count and can troubleshoot what changed.

Also, build a personal reference sheet. Track which characters cause count discrepancies on each platform you work with regularly. After 2-3 weeks, you'll internalize the patterns—em dashes cost +2 on Google Ads, curly quotes cost +2 each on Twitter, emojis cost +4 on average—and you'll adjust your drafts automatically before you ever reach for a character counter.

That's the system. Seven steps, zero guesswork, and a counting workflow that finally matches what platforms actually see. The gap between raw and visible character count isn't mysterious—it's just invisible until you know where to look. Now you know.

Frequently Asked Questions

What is the difference between raw character count and visible character count?

Raw character count includes every single character in your text, such as HTML tags, formatting codes, and invisible whitespace. Visible character count only measures the text that readers actually see on the screen, ignoring underlying code and hidden formatting elements.

Why does my word counter show a different character count than my text editor?

Different tools use varying algorithms to process text, meaning some might count invisible formatting characters while others ignore them. If you are pasting text from a word processor into a web-based counter, hidden styling tags can inflate your raw character count significantly.

Does character count include spaces?

Yes, both raw and visible character counts typically include spaces because they are essential for text structure and readability. However, some specific platforms or word counter tools offer a toggle to exclude spaces if you only need to count the actual letters and punctuation marks.

What are invisible characters in text?

Invisible characters include spaces, tabs, line breaks, paragraph marks, and non-breaking spaces used in HTML formatting. While you cannot see them on a standard webpage, they are registered by the system and contribute to the total raw character count.

How do HTML tags affect character count?

HTML tags like <b> or <br> add hidden weight to your text that the reader never visually perceives. When checking limits for databases or backend systems, these tags are counted in the raw character total, which can cause unexpected limit rejections.

Which character count do social media platforms use?

Social media platforms like Twitter and Instagram rely on the visible character count to enforce their posting limits. They strip away most HTML formatting and hidden tags, meaning you only need to worry about the text your followers will actually read.

Why is my social media post rejected when my character counter says I'm under the limit?

If you copied text from a rich text editor like Microsoft Word, hidden formatting codes were likely pasted along with it, causing the platform's raw counter to exceed the limit. To fix this, paste your text as plain text first to strip away invisible characters before counting.

How do I count only visible characters in my text?

To count only visible characters, you need to strip away all formatting and HTML tags before pasting your text into a character counter. Using a plain text editor like Notepad or utilizing a 'paste as plain text' function ensures you are measuring only the readable content.

Does Google Docs count invisible characters?

Google Docs primarily displays a visible character count that includes spaces and punctuation but excludes underlying document formatting. However, if you export your document as an HTML file, the resulting code will contain a much higher raw character count due to added tags.

What is a raw character count used for in copywriting?

Raw character counts are primarily used by developers and database administrators to calculate storage requirements and data transfer sizes. It helps them understand the exact payload size of a text string, including all hidden formatting and structural code required for the backend.