Differentiate color and variant pages
Use when each color or variant has its own URL and they are all currently running the same text.
Fill in before running
Replace each placeholder with your own detail. The more specific you are, the less the model invents.
- {{PRODUCT_NAME}}
- {{SHARED_DESCRIPTION}}
- {{VARIANT_LIST_WITH_DIFFERENCES}}
- {{VARIANT_SPECIFIC_DATA}}
Getting a better result
- The canonicalisation recommendation is often the real deliverable. Twelve thin color pages beat nothing but rarely beat one strong page.
- Give it variant level review or return data if you have it - that is where genuine differences show up.
- Keep the shared block truly shared so future edits are one change, not twelve.
Questions about this prompt
When should I differentiate rather than canonicalise to the parent?
When variants sit on their own URLs running identical text. Whether those pages should exist at all is genuinely contested, and the prompt does not assume they should, since it ends with an indexing recommendation per variant. Run it where you suspect some variants carry real search demand and others carry none.
What variant data does it work from?
The shared description, a list of what actually differs per variant, and any variant level data you hold. Review or return data broken out by variant is the input worth chasing, because that is where genuine differences surface. Where you cannot name a difference, the prompt is built not to manufacture one.
What comes back per variant?
Per variant a title, meta description, H1, a specific opening paragraph and two bullets, plus one shared block written once, then an indexing recommendation with a reason for each. The indexing call is often the real deliverable: twelve thin colour pages rarely beat one strong page with a variant selector.
What happens if I overrule the no material difference verdict?
Overruling a no material difference verdict and writing a distinction anyway. Copy invented to justify a URL reads as invented and does not earn the page its place. The other slip is editing the shared block separately per variant afterwards, which turns every future change from one edit into twelve.