Indexing and canonicals

Canonical links, robots rules, redirects and the server HTML vs rendered page differences that decide what search engines index.

Guides

Every indexing and canonicals check SEOSnip runs 17

The canonical link points to an invalid address

Search engines may ignore a canonical link they can't read, so they can pick the wrong version of the page.

How to fix
FixPoint the canonical link at the full, correct web address of this page.
For developersSet the <link rel="canonical"> href to a valid absolute URL for the preferred version of the page.
Read the guidecanonical-invalid

The page doesn't say which version is the main one

Without a canonical link, search engines have to guess which address to show when several lead to the same page.

How to fix
FixAdd a canonical link that points to the preferred address of this page.
For developersAdd <link rel="canonical" href="https://..."> to the head with the absolute preferred URL.
Read the guidecanonical-missing

The page names more than one main version

Several canonical links can contradict each other, so search engines may ignore all of them.

How to fix
FixKeep one canonical link and remove the others.
For developersLeave a single <link rel="canonical"> in the head; check whether a plugin and the template both add one.
Read the guidecanonical-multiple

The page gives conflicting instructions to search engines

Contradictory instructions, such as index and noindex together, mean search engines may not treat the page as intended.

How to fix
FixMake the instructions agree, so the page is either allowed or blocked, not both.
For developersReconcile the meta robots directives and any X-Robots-Tag header; remove contradictory values.
Read the guiderobots-conflict

Crawlers that skip JavaScript see different page details

Google usually runs JavaScript, but most AI crawlers don't, so they see a generic or missing title, description or canonical.

How to fix
FixMake sure each page's own title, description and canonical are in the page before any scripts run.
For developersRender the page's own <title>, meta description and rel=canonical in the server HTML, not only via JavaScript.
Read the guidesource-rendered-mismatch

The page redirects or reloads itself with a timer

Timed refreshes pass search signals less reliably than server redirects and interrupt visitors.

How to fix
FixUse a proper server redirect instead, or remove the automatic reload.
For developersReplace <meta http-equiv="refresh"> with a 301 redirect, or remove it.
Read the guidemeta-refresh

The page's code and server name different main versions

When the HTML and the server headers disagree, search engines may ignore both.

How to fix
FixName the same main address in both places, or only in one.
For developersMake the <link rel="canonical"> and the Link: rel="canonical" response header the same URL, or drop one.
Read the guidecanonical-header-mismatch

The page tells search engines to index a different page

This address is unlikely to appear in search results while its canonical points elsewhere.

How to fix
FixCheck this is intended; if this page should rank, point its canonical at itself.
For developersSet the canonical to this page's own absolute URL unless it is a deliberate duplicate.
Read the guidecanonical-points-elsewhere

The page and server give different indexing instructions

Search engines follow the stricter instruction, which may hide pages the team wants found.

How to fix
FixSet indexing instructions in one place, or make both say the same.
For developersAlign the robots meta tag with the X-Robots-Tag response header, or remove one of them.
Read the guiderobots-header-meta-mismatch

The page asks search engines not to show it

A noindex instruction keeps the page out of search results entirely.

How to fix
FixCheck this is intended; remove the instruction if the page should be found.
For developersRemove noindex from the robots meta tag or X-Robots-Tag header if the page should be indexed.
Read the guiderobots-noindex

Search engines are told not to crawl this page

Google can't read a blocked page, so its content can't rank and it may show in results with no description.

How to fix
FixUnblock the page if it should be found; use a noindex instruction instead to keep it out.
For developersRemove or narrow the robots.txt Disallow rule that matches this URL for Googlebot.
Read the guiderobots-txt-blocked

Search engines can't load files this page needs

Google renders pages with their scripts, styles and images; blocked files can make it see a broken page.

How to fix
FixLet search engines load the page's scripts, styles and images.
For developersRemove the robots.txt Disallow rules that block the page's JS, CSS and image paths for Googlebot.
Read the guiderobots-txt-blocked-resources

The page's main version is an error page

Search engines ignore a canonical that leads to an error and choose the main version themselves.

How to fix
FixPoint the canonical at the working version of this page.
For developersSet the canonical to a URL that returns 200 and is indexable.
Read the guidecanonical-target-error

The page's main version redirects elsewhere

A canonical should name the final address; one that redirects sends mixed signals.

How to fix
FixPoint the canonical at the address it ends up on.
For developersChange the canonical href to the redirect's final URL.
Read the guidecanonical-target-redirects

The page's main version asks not to be indexed

The page defers to a version that hides itself, so neither may appear in search.

How to fix
FixMake the main version indexable, or point the canonical at one that is.
For developersRemove noindex from the canonical target, or change the canonical to an indexable URL.
Read the guidecanonical-target-noindex

The page's main version points to yet another page

Search engines may not follow a chain of canonicals, so the intended main version can be lost.

How to fix
FixPoint the canonical straight at the final main version.
For developersSet the canonical to the URL the target's own canonical names.
Read the guidecanonical-target-canonicalised

Find these issues on any page

SEOSnip checks the page in your browser, compares the server HTML with the rendered page, and turns each issue into a ticket with the evidence attached.

Get started free