Technical SEO
Canonical vs Noindex: When to Use Each (with Examples)
What is the difference between canonical and noindex?
rel="canonical"andnoindexanswer two different questions, and confusing them is one of the most common ways to accidentally delete a page from Google. A canonical says “this page is a duplicate of another one — consolidate them and index the preferred URL.” It keeps the content in the index; it just picks which URL represents it.noindexsays “drop this page from the results entirely.” It removes the content from the index altogether. One is a de-duplication instruction that preserves a page’s ranking signals under a chosen URL; the other is a removal instruction that throws those signals away. They are not two flavours of the same control, and they should almost never sit on the same URL.
I do both halves of this — I write the code that emits these tags and I run the SEO that lives or dies by them — and the canonical-versus-noindex mix-up is the one I clean up most often. It usually looks harmless: a plugin stamps a noindex on a paginated or filtered page that already carries a canonical, and someone reasons “both of these hide the page, so belt and braces.” They don’t do the same thing, and stacked together they send Google contradictory instructions. This piece is about telling them apart: what each one actually does according to Google’s own documentation, why putting both on one URL is self-defeating, and a short decision list for which tag a given page needs.
TL;DR — Key takeaways
-
Canonical consolidates duplicates; it does not remove pages.
rel="canonical"tells Google which URL to treat as representative among duplicates so it can consolidate their signals into one preferred URL. The content stays indexed — under the canonical URL. -
noindexremoves a page from the index entirely. When Googlebot crawls a page and extracts the rule, Google drops that page from Search results regardless of who links to it. It is a removal directive, not a consolidation one. -
A canonical is a hint;
noindexis closer to a directive. Google states plainly that indicating a canonical preference is “a hint, not a rule,” and it may pick a different canonical than you declared.noindex, once crawled, is obeyed. -
Don’t use
noindexto control canonicalization. Google’s guidance is explicit: it does not recommend usingnoindexto prevent selection of a canonical page, because it completely blocks the page from Search.rel="canonical"is the preferred solution. -
Both tags need the page to be crawlable. A canonical and a
noindexare only seen if Googlebot can fetch the page — a URL disallowed in robots.txt has its indexing rules ignored because the crawler never reads them.
What rel=“canonical” actually does
Canonicalization is Google’s process of choosing the representative URL from a set of duplicate or near-duplicate pages. Duplicates arrive for mundane reasons: HTTP and HTTPS versions, ?gclid= tracking parameters, sort-and-filter variants of a category page, a print stylesheet URL. Left alone, Google clusters them and picks one on its own. rel="canonical" lets you state your preference for which URL wins.
Two things about it matter for the comparison here.
First, it preserves the page — it just relabels which URL is canonical. The point of a canonical is to consolidate the signals (like links) from duplicate URLs into a single preferred URL so ranking strength isn’t split across copies. Nothing is removed from the index; the content still ranks, under the canonical URL. Google crawls the canonical most regularly and the duplicates less often.
Second, it is a hint. Google is direct that a canonical preference is “a hint, not a rule” and that it may choose a different canonical than you declared — for content-quality reasons, conflicting signals, or a stronger competing signal. Google ranks the declaration methods by strength: redirects are the strongest, rel="canonical" annotations are also strong, and sitemap inclusion is weak, and they stack when combined. Google also recommends adding a self-referential canonical — a canonical pointing at the page’s own URL — on the canonical page itself.
<!-- On the preferred URL and on every duplicate of it -->
<link rel="canonical" href="https://example.com/dresses/green-dress" />
The canonical link element is only accepted inside the <head>, and Google recommends absolute URLs, not relative paths. For non-HTML files like PDFs, the same instruction can be sent as a rel="canonical" HTTP header.
What noindex actually does
noindex is a robots rule you set with either a <meta> tag or an HTTP response header. Its job is removal: when Googlebot crawls the page and extracts the tag or header, Google drops that page entirely from Search results, regardless of whether other sites link to it. There is no “keep the content but under a different URL” here — the page leaves the index.
The <meta> tag form goes in the <head>:
<meta name="robots" content="noindex" />
The content="robots" name applies to all crawlers; swap in googlebot to target only Google. The same rule can travel as an X-Robots-Tag HTTP header, which is how you noindex non-HTML resources like PDFs, images, or video files that can’t carry a <meta> tag:
X-Robots-Tag: noindex
A few operator details that matter when you’re deciding between this and a canonical:
noindexcan combine with other robots rules — but not with canonical logic. You can pair it withnofollow(content="noindex, nofollow"), andnoneis shorthand fornoindex, nofollow. When robots rules conflict with each other, the more restrictive rule applies.- The page must be crawlable for
noindexto work. If the URL is blocked by robots.txt, Googlebot never sees the rule and the page can still surface in results. Specifyingnoindexin robots.txt itself is not supported by Google. - Recrawl lag is real. Google has to crawl the page again to notice a newly added
noindex, and for a low-priority URL that can take a while.
Why you shouldn’t put canonical and noindex on the same URL
Here is the core of the confusion. A canonical and a noindex on the same page issue instructions that pull in opposite directions.
The canonical says: this page is a duplicate; fold its signals into the preferred URL and keep that content in the index. The noindex says: remove this page from the index. If Google honours the noindex, the page is dropped — and a dropped page has nothing left to consolidate, so the canonical becomes moot. If Google leans on the canonical instead, the noindex is what’s being ignored. Either way one of the two tags is wasted, and you’ve made Google resolve a contradiction you created.
Google addresses this directly. In its canonicalization guidance:
We don’t recommend using
noindexto prevent selection of a canonical page within a single site, because it will completely block the page from Search.rel="canonical"linkannotations are the preferred solution.
Read that against the two definitions and the rule falls out cleanly. If your goal is “pick which of these duplicate URLs Google should show,” the tool is rel="canonical", because it consolidates rather than deletes. If your goal is “this page should not be in Google at all,” the tool is noindex, and you don’t also need a canonical — there’s nothing to consolidate into. The mistake is reaching for both because they both sound like “hide the page.” They don’t hide the same way, and stacking them is not belt-and-braces; it’s two controls fighting.
Note also that Google does not recommend robots.txt for canonicalization either — it may still index a disallowed URL without its content. Blocking crawl is a third, separate lever, and it interacts badly with both of the others.
When to use each — decision examples
Match the tag to the intent, not to the vague goal of “make this page go away.”
Use rel=“canonical” when the page is a duplicate you want consolidated
Reach for a canonical when the URL is a genuine variant of another page and you want its ranking signals to flow to a preferred version that stays indexed:
- Tracking-parameter variants (
?gclid=,?utm_source=) of a real page. - HTTP and HTTPS, or
wwwand non-www, versions of the same URL (a redirect is stronger here, but a canonical is the annotation form). - Sort, filter, and pagination variants of a category page that should consolidate to the main view.
- A syndicated or cross-posted copy that should credit the original.
In all of these, the content deserves to rank somewhere — you’re just choosing which URL. That’s consolidation, so it’s a canonical.
Use noindex when the page should not be in Google at all
Reach for noindex when there is no “preferred version” to point at — the page simply shouldn’t appear in results, ever:
- Internal search results pages and thin, auto-generated tag or filter archives.
- Thank-you, order-confirmation, and other post-conversion pages.
- Staging or demo URLs accidentally left crawlable.
- Gated or low-value PDFs (via the
X-Robots-Tagheader, since they can’t carry a<meta>tag).
None of these is a duplicate of a page you want indexed instead. There’s nothing to consolidate, so noindex is correct and a canonical adds nothing.
The “both” case: pick one
If you find yourself wanting both on one URL, the wanting is the bug. Decide the actual intent. Is this a duplicate whose signals should survive under another URL? Canonical, no noindex. Should this content leave the index entirely? noindex, no canonical needed. Google’s own line — don’t use noindex to prevent canonical selection — is the tiebreaker.
What about a canonical that points to a noindexed URL?
The subtler version of the conflict is spread across two pages: page A carries rel="canonical" pointing at page B, and page B itself is set to noindex. This is a mechanical trap that a site-wide canonical template or a misconfigured plugin creates easily — the incorrect-canonical-element issue Google names when a CMS points canonicals at undesired URLs.
The instructions cancel out. Page A says “the real version is page B.” Page B says “drop me from the index.” So you’ve aimed page A’s consolidation at a target you’ve simultaneously told Google to remove. Because a canonical is only a hint while noindex deindexes the target outright, the likely outcome is that both pages end up out of results — B is removed, and A has been told B is the version that matters. The fix is to make the canonical point at a URL that is actually meant to be indexed, and to reserve noindex for pages that no other page canonicals to.
How to tell which tag Google is actually honouring
You can’t see a canonical or a noindex conflict by looking at the rendered page — you have to read the source and check what Google decided. Two moves:
-
URL Inspection in Search Console. It reports the Google-selected canonical, which can differ from the one you declared, and shows whether the page is indexed. If you declared a canonical but the page is dropped, look for a stray
noindex; if younoindexed a page that’s still indexed, it probably hasn’t been recrawled or is blocked in robots.txt so the rule was never read. -
Budget for the lag after you fix it. Once you resolve a conflict, Google may hold pages in a duplicate cluster for up to two weeks before re-evaluating, and pages separate faster when the content difference is clear. Verify the corrected tags in URL Inspection and let the re-crawl run rather than editing again on day three.
This is the same discipline I apply across the crawl-and-indexing layer in the technical SEO audit methodology: the tag states your intent, and Search Console tells you what Google did with it.
Where this fits
Canonical and noindex are two of the indexation-control levers, and most of the damage I see comes from treating them as interchangeable. A site migration is where they most often collide at scale — URLs move, templates re-stamp canonicals, and a default noindex on a staging environment can ride along into production if the deploy isn’t checked. Keeping the two tags doing their separate jobs, on the right pages, is exactly the kind of drift a recurring technical SEO audit is meant to catch before it costs traffic.
FAQ
Can you use canonical and noindex together on the same page?
You can technically place both tags, but you shouldn’t, and Google recommends against using noindex to influence canonicalization. They give contradictory instructions: the canonical says “consolidate this duplicate into a preferred URL and keep it indexed,” while noindex says “remove this page from the index.” If Google honours the noindex, the page is dropped and there’s nothing left for the canonical to consolidate. Decide the intent and use one tag.
Does a canonical tag remove a page from Google?
No. A canonical is a consolidation instruction, not a removal one — it tells Google which URL to treat as representative among duplicates and consolidates their signals into that URL. The content stays indexed under the canonical URL. To actually remove a page from results, use noindex.
Is noindex a directive or a hint?
noindex is obeyed once Google crawls the page: extracting the rule causes Google to drop the page from Search entirely. A canonical, by contrast, is explicitly a hint, not a rule — Google can choose a different canonical than you declared. That difference in authority is a big reason the two shouldn’t be stacked.
Why is my noindexed page still showing in Google?
Almost always because Google hasn’t read the rule. The page must be crawlable for noindex to take effect — if it’s blocked by robots.txt, Googlebot never sees the tag and the URL can still appear in results. It can also simply be waiting for a recrawl. Confirm crawlability, make sure noindex isn’t set only in robots.txt (which Google doesn’t support), and use URL Inspection to request a fresh crawl.
Should I use canonical or noindex for duplicate content?
Use rel="canonical" if the duplicate should still rank — under a preferred URL — because canonical consolidates the duplicates’ signals instead of deleting anything. Use noindex only if the page should not appear in Google at all, with no preferred version to consolidate into. For most true duplicates (parameters, protocol variants, filter views), canonical is the right tool.
Can I noindex a PDF or image?
Yes — use the X-Robots-Tag HTTP header with a value of noindex, since non-HTML files can’t carry a <meta> tag. You can apply it site-wide through your server configuration (for example, an Apache or NGINX rule matching .pdf files) to keep whole file types out of the index.
Next step
Canonical and noindex are two tags with one rule between them: canonical picks which duplicate URL Google indexes, noindex removes a page from the index, and you match the tag to the intent instead of stacking both. Get that right and each page carries exactly the signal it needs; get it wrong and you either split your ranking strength or delete pages you meant to keep. For the audit cadence that keeps indexation tags from drifting, see the technical SEO audit framework; and if you’d rather have the crawl-and-indexing layer designed and monitored end-to-end than reconciled by hand, that’s part of what I do in GEO and technical SEO consulting.