DANA: Today’s is a markup call that sounds tidy and isn’t. A developer on an e-commerce shoe store wants to stamp a self-referencing canonical tag on every single page, each page pointing to itself, as a blanket fix for duplicate content worries. The reasoning is “if every page claims itself as the original, nothing looks duplicated.” It’s neat. Is it right?
ELENA: It’s right in the boring cases and wrong in exactly the cases that matter. For a normal standalone page, a self-canonical is correct and is genuinely best practice. The problem is the word “every.” This store has product variants, the same shoe in eight colors, filtered listing pages, sort orders, tracking parameters on URLs. Those are the pages where duplication actually happens, and those are precisely the pages where a self-canonical is the wrong answer. So “self-canonical everything” gets the easy pages right and the hard pages backwards.
HANNAH: And here’s the mechanism, which is the part the developer is missing, and I can state it without overreaching because it’s documented behavior. A canonical tag is not a command. It’s a hint. You’re telling search engines “I consider this the preferred version,” and they weigh it alongside other signals. So if eight color variants each canonical to themselves, you’re sending eight “I’m the original” signals for what is largely the same content. You haven’t resolved the duplication, you’ve just declined to consolidate it. The tag did something, it just didn’t do what they think.
MARCUS: Let me defend the developer before you bury them, because the instinct has a real fear underneath it. They’ve heard “duplicate content is bad,” they’re scared of it, and self-canonical feels like insurance. That fear isn’t irrational, near-identical pages competing with each other is a genuine problem. So the developer is right that duplication needs handling. They’re wrong that one blanket tag handles it. The honest critique is “you’ve correctly identified the disease and reached for a bandage that doesn’t cover the wound.” So what actually covers it?
SOFIA: And before the fix, there’s a cost to the blanket approach nobody’s pricing. Self-canonicalling the variants doesn’t just fail to consolidate, it can actively scatter your strength. If those eight color pages each insist they’re canonical, whatever ranking signals and links they individually earn stay fragmented across eight near-duplicates instead of pooling into one page that could actually rank. The developer thinks they’re protecting the pages. They’re quietly weakening them.
NOAH: There’s also a pattern in how this request is shaped. “Put the same tag on every page” is the same instinct as “use the same anchor everywhere” or “delete everything at once,” it’s a single rule applied across a mixed set to avoid having to think page by page. The tell is the word “every.” Duplicate handling is inherently a per-template decision, product pages behave differently from filtered listings, which behave differently from blog posts. One tag across all of them is the mistake before we even get to which tag.
GRACE: I’ll stay in my lane, but there’s a content-truth angle. A canonical is a claim about which version is the real one. Eight color variants each saying “I am the original” is the page lying about its own relationship to its siblings. If the blue and red shoe pages are genuinely distinct, with unique content worth ranking separately, then they aren’t duplicates and self-canonical is honest. If they’re the same page with a swatch changed, one of them is the canonical and the rest should say so. The tag should tell the truth about which case you’re in, and “every page to itself” refuses to make that distinction.
PRIYA: Strategically that distinction is the whole decision. The right move depends on what the store actually wants to rank. If customers search by color, “red running shoes,” then color variants deserve to be distinct, indexable pages, and self-canonical is correct for them. If nobody searches by color and the variants exist only for the cart, they should canonical to one main product page so the authority pools there. The canonical strategy follows the search demand, not a blanket rule. Same tag, opposite correct answer, depending on intent.
THEO: Process layer, and it’s the same shape as before. The developer reached for a universal rule because they don’t have a way to decide per case. So the deliverable isn’t “here are the right canonicals for these pages.” It’s the question they ask of any template: is this page meaningfully unique and worth ranking on its own? If yes, self-canonical. If it’s a variant or parameter version of another page, canonical to that page. If they internalize that test, they handle the next URL pattern correctly without us. If we just fix the tags this once, they’ll blanket-apply the next rule they hear.
AIKO: And the systems note. Canonicals tend to get set once at template build and then never revisited, which is how a store ends up with a blanket rule nobody questions. The durable fix is that canonical logic is decided per template with the search-demand question in mind, written down, and rechecked whenever a new page type is added, variants, filters, a new parameter. Otherwise the next developer inherits “self-canonical everything” as if it were law.
MARCUS: Closing my loop, since I opened defending them. Their fear of duplication is valid and we honor it by actually consolidating where it exists. But on the blanket tag itself, there’s no real tradeoff, because a self-canonical on a true duplicate doesn’t reduce a risk, it preserves the duplication while looking like a fix. That’s worse than doing nothing, because it feels solved. So we don’t split the difference. We keep self-canonical where pages are genuinely unique and we point variants and parameter URLs at their real canonical.
DANA: That’s the call, and the reason matters more than the rule. We do not blanket self-canonical every page. Self-canonical is correct for genuinely unique pages, and wrong for variants, filtered listings, and parameter URLs, which is exactly where this store’s duplication lives. The deciding question on each template is whether the page is meaningfully unique and worth ranking on its own. If it is, it points to itself. If it’s a version of another page, it points to that page so the store’s strength pools instead of scattering. We tie that decision to what customers actually search, because Priya’s right that color variants are distinct pages or disposable duplicates depending entirely on demand. We set it per template, write down the logic, and recheck it when new page types appear. The developer’s instinct to handle duplication was sound. The blanket tag was the part that quietly didn’t.
HANNAH: Which is the cleanest way to say it. The tag wasn’t doing nothing. It was confidently doing the wrong thing on the only pages that needed the right thing.