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.