How to Clean Up Text Before You Publish It
Publishing something — a post, a page, an email campaign — involves a dozen small text decisions that nobody enjoys making. Most of them have a correct answer, and getting them wrong is the difference between copy that reads as considered and copy that reads as careless.
This is the checklist.
Word counts and the limits that actually apply
Every platform has a limit, and most writers learn them by hitting them.
| Where | Limit | Notes |
|---|---|---|
| SEO title tag | ~60 characters | Search engines truncate by pixel width, not character count — wide characters get cut earlier |
| Meta description | ~155–160 characters | Not a ranking factor, but it is your ad copy in search results |
| X / Twitter post | 280 characters | Links count as 23 regardless of real length |
| LinkedIn post | 3,000 characters | Only the first ~210 show before “see more” |
| Instagram caption | 2,200 characters | Same truncation trick applies |
| Email subject line | ~40–50 characters | Mobile clients cut sooner than desktop |
Character counts are the ones that bite, because a headline that fits in your editor may not fit where it is displayed. The word counter reports characters with and without spaces, which matters for platforms that count one but not the other.
Reading time is a separate estimate, and the numbers differ by language. English prose runs at roughly 200–250 words per minute for comfortable reading. Chinese is usually quoted at 300–500 characters per minute. A 1,000-word English article is about four minutes; a 1,000-character Chinese piece is closer to three. If you are writing for both audiences, do not assume the same length means the same reading time.
One more: word counting is not the same operation in both languages. English counts tokens separated by spaces. Chinese has no spaces between words, so the convention is to count each character as one unit. A counter that applies the English rule to Chinese text will report a number that is wrong by an order of magnitude. Mixed text needs both rules applied to the right segments.
Case, and why title case is a mess
Case conversion looks trivial until you try to automate it, because “correct” depends on which style guide you follow.
Title case has three competing standards. The Associated Press capitalises words of four letters or more. The Chicago Manual of Style uses a different threshold and its own exception list. Many publications now use sentence case for headlines on the grounds that it is easier to read and impossible to get wrong. There is no universal answer — pick the convention your publication uses and apply it consistently.
What automated title-case tools get wrong, consistently: they capitalise prepositions and conjunctions that should stay lowercase under AP and Chicago style. If you are following a style guide, check the output rather than trusting it.
The code conventions have clearer rules, because a machine has to parse them:
camelCase— JavaScript and Java variablesPascalCase— class names, React componentssnake_case— Python, Ruby, SQL columnskebab-case— URLs, CSS class names, HTML attributesCONSTANT_CASE— constants in most languages
The case converter generates all of them at once, which is the useful part — you rarely need just one.
One warning worth stating plainly: all-caps reduces reading speed. It removes the word-shape cues readers rely on, and it reads as shouting. It is fine for a short label or a heading that needs to punch. It is wrong for a paragraph, and it is very wrong for anything longer.
Slugs: short, stable, and set once
A slug is the human-readable part of a URL — the how-to-clean-up-text in a link. Three rules cover almost every case.
Lowercase, hyphen-separated. Not underscores: search engines have historically treated hyphens as word separators and underscores as joiners, so text-case reads as two words and text_case reads as one.
Strip accents and symbols. café becomes cafe. This is not a style preference — percent-encoded characters in a URL are ugly and harder to share. The slug generator strips them automatically.
Decide about stop words and move on. Dropping the, a, of gives you a shorter slug. Modern search engines largely ignore stop words either way, so this is a readability decision, not an SEO one. Shorter is generally better for sharing and for humans retyping it.
And the rule that matters more than the other three: a slug should never change after publication. It is the address of the page. Changing it breaks every existing link, bookmark, and share — unless you set up a redirect, which most static sites do not have by default. Choose carefully the first time.
Placeholder text, and when it lies to you
Lorem ipsum is scrambled Latin from Cicero’s De Finibus Bonorum et Malorum, written in 45 BC. It has been used as filler since the 1500s for a specific reason: its letter distribution looks like natural language, so a layout filled with it shows roughly what the layout will look like with real text.
That is also its limit. Lorem ipsum has no long words and no short words that matter, no proper nouns, no numbers, and no line breaks where a real paragraph would put them. A design that looks balanced with filler can fall apart the moment real content arrives — a 40-character product name where you assumed 12, a headline that wraps to three lines instead of two.
Use the lorem ipsum generator for early layout work, and switch to real content as early as you can. The most expensive design mistakes are the ones discovered after the design is approved.
Encoding: why URLs cannot contain what you think
Paste a space or a Chinese character into a URL and it breaks, because URLs are defined over a restricted character set. Anything outside it has to be percent-encoded — written as % followed by two hex digits. A space becomes %20; the character 中 becomes %E4%B8%AD.
Two functions, two different jobs, and mixing them up is a common bug:
encodeURIComponentescapes everything that is not safe in a URL, including:/?#&. Use it for a value you are inserting into a query string.encodeURIleaves the structural characters alone. Use it for a whole URL you want to make safe without destroying its structure.
Encode a full URL with encodeURIComponent and you get https%3A%2F%2Fexample.com — a string that is no longer a URL. The URL encoder shows both results side by side, which is the fastest way to see why they differ.
Frequently asked questions
How many words should a blog post be? There is no correct number, and the “1,500 words minimum” advice is folklore. Length should follow the question being answered. What matters is that the piece is complete — not padded to hit a target.
Should I use title case or sentence case for headlines? Either, as long as you are consistent. Sentence case is harder to get wrong. If you use title case, follow a named style guide rather than intuition.
Can I change a URL slug after publishing? You can, but every existing link breaks unless you redirect the old one. Treat the slug as permanent and get it right the first time.
Does the word count include spaces? Both counts are useful. Platforms that limit “characters” usually mean with spaces. The counter reports both so you are not guessing.
How long does it take to read 1,000 words? About four minutes of English prose at a comfortable pace. Chinese is measured in characters per minute instead, so the same reading time corresponds to a much larger character count.
Why does my slug contain %20? Because a space was not replaced before the URL was built. Generate the slug first, then use it — never paste raw text into a URL.