A Manhattan retailer came to us with 40 products and 12,412 URLs in Google’s index. Nothing was broken. Every page returned a clean 200, every product had a canonical tag, and their previous agency’s audit had a green tick next to “Canonicalisation”. The rankings were still nowhere, and the reason was sitting in plain sight in the crawl.
Their canonical tags were correct. Everything else on the site disagreed with them.
This is the most expensive quiet failure in technical SEO, and it is quiet precisely because the tag itself is right. Nothing throws an error. Search Console does not flag it as a problem. The site simply stops accumulating authority anywhere in particular, and the pages that should rank never quite get there.
A canonical tag is a hint, not an instruction
This is the sentence that changes how you read every audit you have ever been handed.
Google’s own documentation on URL canonicalization is unambiguous: when several URLs serve substantially the same content, Google picks one to index and treats the rest as duplicates. Your rel="canonical" declaration is one input into that choice. It is not the choice.
That is by design. The specification that defines the canonical link relation describes it as a way for an author to express a preference about which URL represents a resource. A preference. Google’s guidance on specifying a canonical lists the tag alongside redirects, sitemap inclusion and internal link patterns, and is explicit that these are signals it weighs rather than commands it obeys.
So when your tag says one thing and the rest of your site says another, Google does not stop and ask. It resolves the conflict on its own, usually against you, and the URL it picks is the one your site actually behaves as though it prefers.
How 40 products become 11,520 crawlable URLs
Before the conflict matters, you need to see the scale of what is being conflicted over. Almost nobody publishes twelve thousand pages. They publish forty, and then multiply them.

Six colour filters, four sizes, three sort orders and four pages of pagination. Every combination is a distinct URL that returns a 200 and renders content. None of them is a page anyone meant to publish. Google’s URL structure guidance singles out exactly this pattern, faceted navigation and session or sort parameters, as a leading cause of unnecessary crawling.
Add a tracking parameter from an email campaign and the number doubles again. Add a print view and it doubles once more. The retailer with 40 products and 12,412 indexed URLs had not done anything exotic. They had a filter panel, a newsletter, and eighteen months of trading.
A ninety-second check. Search site:yourdomain.com in Google and compare the reported count to the number of pages you believe you have published. If the first number is more than about twice the second, you have this problem. If it is ten times the second, you have it badly.
The four signals that outvote your tag
Here is what was actually happening on that retailer’s site, and on most sites where the canonical tag is correct but the wrong URL is indexed.

The tag pointed at the clean URL. Every filter link in the navigation pointed at the parameterised one. The sitemap, generated by the same plugin that generated the filters, listed the parameterised one. Three of the four signals agreed with each other, and the one that disagreed was the one the audit had checked.
Google resolved it the way you would expect a voting system to resolve it. The parameterised URL was indexed, the clean URL was treated as the duplicate, and every link the business earned from press coverage and directories landed on a page Google had decided was not the real one.
The five conflicts we find most often
1. Self-referencing tags on every parameter variant
The most common failure by a wide margin. Each URL declares itself canonical, which is technically valid and completely useless. Twelve thousand URLs each insisting they are the original gives Google no consolidation instruction at all. The fix is that parameter variants must point at the clean parent, not at themselves.
2. The sitemap disagrees with the tag
Sitemaps are usually generated by a plugin, and canonical tags are usually set by a different plugin or by a developer. Nobody checks that the two agree. A URL listed in your sitemap is a URL you are formally submitting for indexing, which is a strong signal that it contradicts.
3. Internal links point at the variant
This is the heaviest signal and the one most often ignored. If 2,400 internal links point at ?color=blue and one canonical tag points at the clean URL, Google reads your site’s own linking behaviour as the more honest statement of intent. It usually is.
4. Canonical chains and loops
A canonicals to B, B canonicals to C. Google may follow one hop, but chains degrade and loops are ignored entirely. Every canonical should point at a URL that is canonical to itself and returns a 200.
5. Canonical plus noindex on the same URL
The two directives contradict each other: one says consolidate this into another page, the other says remove it from the index. Google’s robots meta tag documentation covers what each does, and combining them on one URL produces unpredictable results. Pick one. For duplicate variants, the canonical is almost always the right choice, because noindex discards the link equity instead of consolidating it.
Why this hits NYC businesses harder
Duplicate URLs are a universal problem. The reason they cost more here is that the pages being diluted are usually the ones carrying your local specificity.
A New York business that is doing local SEO properly has real depth: separate pages for neighbourhoods, separate pages per service and borough, genuine content on each. That depth is the entire asset. It is also exactly the structure that a filter panel, a location switcher or a store-finder widget will happily multiply into thousands of near-identical variants.
When that happens, Google picks a canonical from within each cluster, and it is very often not the page you wrote to rank. We have seen a carefully written Brooklyn service page lose its own cluster to a sorted, paginated version of itself. The business kept publishing and kept wondering why nothing moved, which is a slower and more expensive version of the same trap that catches multi-location businesses on Google Maps: authority split across variants instead of concentrated in one place.
It also makes your reporting lie to you. A parameterised duplicate that appears at position 40 for a handful of impressions still gets averaged into the number you read, which is one more reason a page can hold position one in Search Console and be invisible in an actual search. Getting this right is a precondition for both SEO in Brooklyn and SEO in Manhattan, though the pages at stake differ in each, for the reasons we set out in Manhattan vs. Brooklyn SEO.
The part most audits leave out: crawl budget is a content budget
This is the strategic point, and it is the one that changes what you should be spending on.
Google allocates a finite amount of crawling to your site. Its documentation on managing crawl budget is written for large sites, and most small businesses read that and stop. They should not. The budget is proportional to your site, so a small site with a parameter explosion burns through its share faster than a large clean one.
The consequence is concrete. Every request Googlebot spends on ?sort=price&page=3 is a request it does not spend on the service page you published last week. We have watched new pages take six weeks to get indexed on parameter-bloated sites and four days on the same site after the parameters were dealt with. Nothing about the new pages changed.
So the return on fixing canonicalisation is not really a ranking bump on existing pages, although that usually follows. It is that your content programme starts working at the speed you are paying for. That reframes the whole spend: if you are funding content on a site with this problem, you are funding pages that Google will get around to eventually.
There is a newer reason to care too. Retrieval systems that generate answers rather than lists have to pick one URL to cite, and a fragmented cluster gives them a weaker, less corroborated candidate to work with, which is why canonicalisation now sits inside AI search optimization rather than beside it.
Key takeaways
- The tag is a hint. Internal links, sitemaps and redirects vote alongside it, and they usually outnumber it.
- Consistency beats correctness. A correct tag contradicted by everything else is worth less than a coherent set of merely adequate signals.
- Parameters multiply, they do not add. Six filters and four sizes is not ten URLs, it is twenty-four per product.
- Crawl budget is the real cost. Bloat is paid for in how long your new pages take to get indexed.
- Never pair canonical with noindex on the same URL. One consolidates equity, the other throws it away.
What to do this week
- Get the real number. Run
site:yourdomain.comand compare it with your actual page count. This takes a minute and tells you whether to read the rest of this list. - Crawl your own site. Screaming Frog or Sitebulb, then group URLs by parameter. You are looking for which parameters generate variants and how many of each.
- Check the four signals on one page. Pick your most important product or service page. View source for the canonical, search your sitemap for the URL, and count how many internal links point at each version. If they disagree, you have found your problem site-wide.
- Fix the internal links first. Not the tag. Links are the heaviest signal and the hardest for a plugin to get wrong once the templates are right.
- Regenerate the sitemap and confirm it matches. A sitemap should list canonical URLs only, and a stale one keeps voting against you long after the tags are fixed.
- Leave the tags until last. Once links and sitemap agree, correcting the tags is a small change that confirms what the site is already saying.
Common questions
Should I block parameters in robots.txt instead?
Usually not. Blocking crawling prevents Google from seeing the canonical tag on those URLs, so it cannot consolidate them and they can still be indexed from links elsewhere. Blocking is a crawl-budget tool for parameters that produce genuinely worthless URLs, not a canonicalisation tool.
How long until this shows an effect?
Google has to recrawl the affected URLs, which on a bloated site is the slow part. Expect weeks rather than days for consolidation to show, and note that indexed counts often rise briefly before falling as Google recrawls.
Does the tag need to be an absolute URL?
Yes. Relative canonicals are technically permitted and cause real damage when a base URL is misinterpreted. Always use the full absolute URL, including protocol and host.
Can I canonicalise a paginated series to page one?
No. Pages two onward contain different items, so they are not duplicates. Let each paginated page be self-canonical and control indexing separately if you need to.
Is this a plugin problem or a code problem?
Both, and that is why it persists. A plugin generates the filter URLs, a second plugin generates the sitemap, and neither knows about the other. Reconciling them is a template and configuration job, which is why it sits across SEO and software development rather than in one of them. On database-driven catalogues it often reaches into the data layer as well.
Will fixing this speed up my site?
Not directly. It speeds up indexing, not rendering. Page speed is a separate question, and a smaller one than it is usually sold as, which we covered in Core Web Vitals in 2026.
Want to know your real URL count? Our free technical audit crawls your actual site, groups every URL by parameter, checks the canonical tag against your sitemap and internal links, and hands you a prioritised fix list. Five business days, no obligation, and the findings are yours whether you work with us or not.
Request your free technical audit
Related: SEO Services · Case Studies · SEO in Manhattan · Why Search Console positions disagree with reality
