All checks
SEO & AI Visibilitymediumcanonical-points-to-homepagechecked on every page we scan

Sub-page canonicalises to the homepage

This page declares the homepage as its canonical URL, which tells search engines it is a duplicate of the homepage and should not appear in results in its own right.

0% · n=31 · as of 15 September 2026 of sites ShipReady scanned had this, counted across sites where this check completed.

Why it matters

This page declares the homepage as its canonical URL, which tells search engines it is a duplicate of the homepage and should not appear in results in its own right. When a layout sets one hardcoded canonical for the whole site — the usual cause — every route inherits it, and the entire site collapses to a single indexable page: blog posts, pricing and docs all stop ranking while the homepage looks fine. If this page really is a duplicate of the homepage, this is correct and can be ignored.

How ShipReady detects it

Search-engine basics, deliberately shallow. Lighthouse does SEO auditing thoroughly, for free, from Google, built into every browser. This module does not try to compete with that and should never grow to. It exists so a ShipReady report is not conspicuously silent on the subject, and it covers exactly the things a founder is likely to have got wrong without knowing — chiefly a `noindex` left over from staging, which makes a site invisible to search entirely. Every rule reads only the page HTML and response headers already fetched by PageContext. The module issues **no HTTP requests of its own**, which is why it can be this cheap: it is pure analysis of bytes the scan already has. Deliberately NOT covered: keyword analysis, backlinks, content quality, Core Web Vitals, and anything else that needs crawling or a second data source. Also not duplicated here: title, description, og:title, robots.txt, sitemap.xml and custom 404, all of which the readiness check already reports.

Detection is deterministic. ShipReady reports this only when it observes the condition directly, and prefers to miss a real problem over inventing one. Rule version 1.3.0.

How to fix it

This is the prompt ShipReady puts in your report — written to be pasted straight into Cursor, Claude Code, or whichever assistant built the app.

This sub-page declares the homepage as its canonical URL, which tells search engines it is a duplicate of the homepage and removes it from search results in its own right. This is almost always one hardcoded canonical set in a shared layout that every route then inherits — collapsing your whole site to a single indexable page. Make the canonical per-page and self-referential: each page should declare its own absolute URL. In Next.js, set `alternates: {{ canonical: '/the-page' }}` in each page's metadata (with metadataBase set once) rather than a fixed canonical in the layout. Verify by loading two different routes and confirming each reports its own URL.

Frequently asked questions

What does "Sub-page canonicalises to the homepage" mean?
This page declares the homepage as its canonical URL, which tells search engines it is a duplicate of the homepage and should not appear in results in its own right.
How serious is it?
ShipReady rates this medium. Fix soon. Meaningfully weakens a defence or degrades how the site works.
How common is this?
Across the sites ShipReady has scanned where this check completed, 0% · n=31 · as of 15 September 2026.
How do I fix it?
Paste the fix prompt on this page into Cursor, Claude Code or your AI editor. It is the same prompt ShipReady puts in your report.
Can I check my own site?
Yes — ShipReady scans up to ten pages of any public site for free and reports this alongside every other check. The free report lists every issue it finds and shows full evidence and a fix prompt for the critical and high-severity ones; medium and low findings are counted and unlock on Pro.

Related checks

Run this check on your site

ShipReady checks this and 193 other things across up to ten pages of your site, with an AI-ready fix for each. Free, no signup.