WooCommerce product titles written in all caps

A product title typed in capitals reads as a marketplace listing, not a name a shop chose. CatalogLift finds every shouted title across the synced catalog, shows which words triggered it, and prepares a sentence-case version for you to approve.

Content & SEO Low severity Fix in CatalogLift

Why all-caps titles hold products back

Titles arrive in capitals for ordinary reasons: a supplier feed, a bulk import from a marketplace, a colleague who wanted a product to stand out. The habit sticks because nothing in WooCommerce objects to it. Yet the title is the line that carries the product everywhere it goes, and capitals make it work against itself.

  • Search engines rewrite it. Shouted headlines are a known pattern that result pages tidy up on their own — so the title shown to a searcher is no longer the one you wrote.
  • It reads as noise, not as a name. Next to properly cased results, “STAINLESS STEEL WATER BOTTLE 750ML” looks like a listing scraped from somewhere else, and shoppers skim past it.
  • It leaks into every channel. Order emails, invoices, comparison feeds and category grids all repeat the title verbatim, so one shouted product shouts in five places.
  • Inconsistency is its own signal. A catalog where some titles are cased and some are capitals looks unmaintained, which is what a buyer quietly infers about the store as a whole.

How to find all-caps titles manually

WordPress compares strings case-insensitively by default, so the query has to force a binary comparison. With WP-CLI, this lists products whose title contains no lower-case letters at all:

wp db query "SELECT ID, post_title
FROM wp_posts
WHERE post_type = 'product'
  AND post_status IN ('publish', 'draft', 'private')
  AND post_title = UPPER(post_title) COLLATE utf8mb4_bin
  AND post_title <> LOWER(post_title) COLLATE utf8mb4_bin
ORDER BY post_title
LIMIT 100;"

Adjust the table prefix if yours isn't wp_; use the binary collation that matches your tables' character set.

The query only catches titles that are entirely capitals. A title like “PREMIUM ORGANIC COTTON Shirt” slips through, while “USB-C Cable” would be flagged the moment you loosen the condition, because SQL has no idea that USB is an acronym and not shouting. It cannot tell your own brand name from a shouted word either. And it answers once: the next supplier import brings the same titles back and nobody is running the query again.

How CatalogLift finds and repairs it

Every scan reads the title of every synced product, whatever its status, and splits it into words. Words of four characters or fewer are set aside entirely — that is what USB, XL, 4K and LED look like — so they neither trigger a finding nor dilute one. Hyphens split, so “USB-C” is two short tokens rather than one long one. Any word the store itself writes in capitals as a brand name is allowlisted from the store's own brand data, never from a hardcoded list, which is also why a title is found the same way in every language.

Among the words that remain, a title is flagged when at least two are written entirely in capitals and those shouted words clearly outnumber the rest — a bare majority is not enough, most of the title has to be shouting. A single emphatic word is a choice, several are a pattern. The finding carries the field, a preview of the current title, how many words were shouted and a sample of them as evidence, and it is raised at low severity, alongside everything else the scan surfaced.

The fix stays inside CatalogLift and involves no AI. CatalogLift recases the title to sentence case — shouted words go to lower case, the title's first word keeps its capital, short tokens in capitals stay exactly as they were — and shows the before and after next to the evidence. Nothing is typed: the repair is derived from the title the store currently holds, so you review the before and after and either approve it or leave the finding open. The title reaches WooCommerce on that decision and never before it, and the next scan verifies it landed. Because CatalogLift keeps watching, a future import that brings the capitals back becomes a fresh finding instead of a silent regression.

Finding a shouted title needs no language; lowering one does. The language your store declares — in your playbook, or the site language your connector synced — is what you intend to write in, not proof of what one title holds: a Turkish shop sells “PREMIUM LEATHER WALLET” too. So a title is cased the Turkish way, “KIRMIZI İPEKLİ” to “kırmızı ipekli”, only when it carries a letter only Turkish writes. A shouted word with an I and no such letter nearby could be either language, and CatalogLift reports it rather than guess between “premıum” and “kirmizi”. Two orthographies cannot be rebuilt from capitals at all: German writes every noun with a capital, and nothing short of a dictionary tells a noun from an adjective, and Greek capitals drop the accent its lower case is misspelled without. In a store that declares one of them the title is still reported, with the same evidence, and the recasing stays in your store: a repair that is wrong by construction is worse than a report.

Fair questions, straight answers.

Are all-caps product titles bad for SEO?

They are a weak signal rather than a penalty. Search engines increasingly rewrite shouted titles before showing them, so you lose control of your own headline, and a capitalised snippet next to normal ones draws fewer clicks. Feeds and marketplaces treat the same pattern as low-quality listing text.

Will CatalogLift flag brand names or acronyms like USB or LED?

No. Tokens of four characters or fewer are never counted, which is what acronyms and sizes look like, and any word the store itself writes in capitals as a brand name is allowlisted from the store's own brand data. Only long words in capitals count, and a title needs several of them before it is flagged.

Does the AI rewrite the titles?

There is no AI in this fix. CatalogLift recases the title deterministically to sentence case — the shouted words go to lower case and only the first word keeps a capital — and shows you the before and after. Nothing is typed here: you review the diff and either approve it or leave the finding open, and the title reaches WooCommerce on that decision and never before it.

Why sentence case and not Title Case?

Title Case is a convention of English headlines and is wrong in Polish, German, French and Spanish, so the repair lowers the shouted words and keeps one capital, on the first word. Where the title itself shows its language the repair follows it — a Turkish title with an İ or a Ş lowers I to a dotless ı, a Dutch title opens with IJ — and short tokens in capitals are left untouched, so a real acronym in the middle of a title survives. In German and Greek no repair is offered: German nouns keep a capital no rule can find again, and Greek capitals drop accents that lower case needs, so CatalogLift reports the title and leaves the recasing to you.

See it on your own catalog.

Create a free account, connect your WooCommerce store and this check runs on your real products, along with the rest.

No card required. The free plan never writes to WooCommerce.