WooCommerce products with the brand only in the title

A title like “Nike Air Zoom Pegasus 40” tells a shopper the brand, but if the product's brand field is empty, your store's filters, brand pages and reports don't know it. CatalogLift finds every product whose title names one of your own brands while the brand field stays blank — and drafts the assignment for you to approve.

Categories & attributes Low severity AI proposal

Why a brand stuck in the title holds products back

WooCommerce stores brands as a taxonomy — a structured field, separate from the title. Everything that groups, filters or counts by brand reads that field. When the only place the brand appears is the title text, the product simply drops out of those views.

  • Brand filters skip the product. A shopper who narrows a category to one brand never sees the products that mention that brand only in their titles.
  • Brand pages are incomplete. The archive for a brand lists only products assigned to it, so a chunk of the range is missing from the page that should sell it best.
  • Feeds and reports undercount. Product feeds map the brand attribute from the taxonomy, and sales-by-brand reports can only count what is assigned. Titles don't feed either.

How to find products with the brand only in the title manually

With WP-CLI you can join every published product against your brand terms and keep the ones whose title contains a brand name but which have no brand assigned:

wp db query "SELECT p.ID, p.post_title, b.name AS brand_in_title
FROM wp_posts p
JOIN wp_terms b
  ON p.post_title LIKE CONCAT('%', b.name, '%')
JOIN wp_term_taxonomy bt
  ON bt.term_id = b.term_id AND bt.taxonomy = 'product_brand'
WHERE p.post_type = 'product' AND p.post_status = 'publish'
  AND NOT EXISTS (
    SELECT 1
    FROM wp_term_relationships tr
    JOIN wp_term_taxonomy tt
      ON tt.term_taxonomy_id = tr.term_taxonomy_id
    WHERE tr.object_id = p.ID AND tt.taxonomy = 'product_brand'
  )
LIMIT 50;"

product_brand is WooCommerce's built-in brand taxonomy; if your brands come from a plugin, use its taxonomy name instead. Adjust the wp_ prefix if yours differs.

The query is useful and also generous. LIKE matches inside words, so a brand called “Ion” fires on “Fashion Hoodie”, and the same product appears once per brand that happens to be a substring of its title. It also stops at listing: someone still has to open each product, confirm the brand and assign it, and repeat the whole exercise after the next import.

How CatalogLift finds and drafts it

Every scan starts from your store's own brand list as synced from WooCommerce, not from a dictionary. Brand names that are blank, made only of punctuation, or too short to be a safe signal are left out, and a name that two brands share is dropped as ambiguous rather than guessed at. The scan then reads each product's title and looks for a brand's words standing whole and in order — case-insensitive, and tolerant of the spaces or punctuation between them — so “nike” in “Nike Air Zoom” matches while “Nikeland” does not. Products that already carry any brand are skipped, and a title that names more than one brand yields a single finding for the longest, most specific match.

Each finding is raised at low severity with the matched text and the recognised brand as evidence. Because this check carries an AI proposal, CatalogLift drafts the assignment for you: the proposal names the brand the scan found, is validated against your live brand list, and lands as a before/after diff with the evidence beside it. You approve, edit or skip; only an approved change is written to WooCommerce, and the next scan verifies the brand field is filled. If an import later strips the assignment again, CatalogLift keeps watching and the product returns as a fresh finding instead of a silent regression.

Fair questions, straight answers.

Why does it matter where the brand lives if shoppers can read it in the title?

The title is text; the brand field is data. Layered navigation, brand pages, product feeds and sales reports all read the brand taxonomy, not the words in the title. A product that only names its brand in the title is invisible to every one of them.

Which brands does CatalogLift look for?

Only the brands that already exist in your store. It reads the brand list synced from WooCommerce and looks for those exact names inside titles, so it never guesses a brand from a word it merely thinks looks like one.

Does the AI pick the brand on its own?

The AI drafts a proposal that assigns the brand the scan spotted in the title, and the proposal is checked against your store's own brand list before you ever see it. You review the before/after diff with the matched text as evidence and approve it; nothing is written to WooCommerce before that.

What if a product carries two brands, or the match is wrong?

A product that already has any brand assigned is never flagged. If a proposal is wrong you skip it, and if you would rather fix it in wp-admin, the next scan simply sees the brand field filled and closes the finding.

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.