Cosmetics DTC brand · E-commerce

+38% CTR on rich-result PDPs, then the rankings followed

Broken variant handling and dead Product schema were costing a cosmetics store both rich results and crawl budget. Fixing the plumbing lifted click-through first — rankings came after.

+58% Monthly organic traffic
18 Links built
6 Months time span

Where they started

A DTC cosmetics brand with a deep catalog, most products sold in six to twelve shades. The theme generated a near-duplicate PDP for every shade, so a single lipstick existed as nine competing URLs, none canonicalized. Worse, the theme’s “upgrade” had quietly broken the Product markup: offers pointed at a price field that no longer existed, and the review block emitted JSON-LD that failed validation on every page. Google saw thin duplication and zero eligible rich results across the whole store. Rankings were flat but not tanking, which is exactly the trap. Nothing looked broken enough to explain the ceiling.

What we did

  • Canonicalized shade variants to one PDP each. Collapsed nine duplicate URLs per product to a single indexable page with in-page shade selection. Crawl budget stopped draining into duplicates and consolidated signals onto the pages that could actually rank.
  • Rebuilt Product/Offer/Review schema so it validates. Fixed the price mapping, restored aggregateRating, and got every product page eligible for review-star rich results. This is what moved CTR before anything moved position.
  • Rewrote PDP titles into buyer language. Swapped internal SKU-style titles for how people actually search (finish, skin type, shade family), which lifted CTR further on the same positions.
  • Built 18 editorial links to hero categories. Beauty and ingredient-science placements only, aimed at the category pages feeding the PDPs.

The sequence is the whole story. CTR rose first, on pages that hadn’t moved a position. The stars and better titles earned more clicks at the same rank. Google reads that preference, and rankings caught up from month two onward. DR barely moved; this was a technical and on-page win, not a link-volume one.

Organic traffic 6 months
41k month 1 month 6

The results

  • CTR up 38% on PDPs that earned review-star rich results

  • Ranking keywords grew from 5.5k to 8.2k in 6 months

  • Every shade variant now canonicalizes to one indexable PDP

  • Valid Product/Offer/Review schema on 100% of product pages

“The tell was CTR climbing on pages that hadn't moved a single position. Rich-result stars did that. Rankings only followed once Google saw those pages getting picked over the ones above them.”

More case studies

See our E-commerce SEO approach →