ShipworkSite inspection
Checks

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Page DoctorWhy is this page not doing well?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit

+1 free check

Welcome to Shipwork

Sign in free and your next check this month is on us.

Continue with GoogleContinue with email

We email you a 6-digit code. No password.

No card needed. Reports and watches follow you to any device.

How Shipwork checks a page’s canonical tag

When several URLs serve the same content, the canonical tag names the one to keep. Missing it lets parameters spawn duplicates. Having two of them is worse, because search engines can ignore both. A cross-domain canonical hands the ranking to someone else.

Runs the Canonical tag check against a set of key pages, from outside your network. Nothing is stored.

What this check inspects

Shipwork reads every rel=canonical link on the page, along with the robots meta value, and reports the situation. It distinguishes no canonical, exactly one, and more than one. It flags the contradiction of a noindex tag on a page whose canonical points at itself, and notes when the canonical is a self reference, which is the correct default for the primary URL.

What a failure means

No canonical is a warning: the page can still rank, but URL variants are free to compete with it. More than one canonical is an error, because the declaration becomes ambiguous and search engines may ignore all of them. A canonical plus noindex contradicts itself: one signal says keep this URL, the other says drop it.

How to fix it

  1. Give every indexable page exactly one canonical, always absolute, always https.
  2. Make it self-referential on the primary URL so variants resolve to it.
  3. When two systems both inject a canonical, a theme and an SEO app for example, remove one at the source rather than hoping search engines pick the right one.
  4. Never point your canonical at another domain unless you deliberately want that domain credited for the content.

A typical failure, worked through

The setupA theme emits a self-referencing canonical, and a recently installed app adds its own canonical pointing at the collection. Both render into the head.

What the check reportsThe check reports 2 canonical links and the plain warning that search engines may ignore all of them. In Search Console the page can flip between URL variants as Google picks one.

The pointOne page, one canonical. Find which template or app emits the second and disable it there.

Questions

Should the canonical point to itself?
Yes, on the primary URL. A self-referencing canonical is the safe default and stops parameterised or trailing-slash variants being treated as separate pages.
What if a page has no canonical?
It can still be indexed. Without a canonical, search engines pick a version themselves, which is why duplicates from filters and tracking parameters cause problems on pages that lack one.
Can a canonical be ignored?
Yes. It is a hint, and a cross-domain canonical in particular is often treated as a suggestion. Search Console shows the canonical Google actually chose.

Related checks and guides