Orphan Pages

No Comments
Orphan pages

Orphan pages are URLs that exist and resolve but receive no internal links from the rest of the site — crawlers following links will never find them, and whatever authority your site has never flows to them. They're where rankings go to die quietly: the page is live, sometimes even indexed via the sitemap, but it competes with zero internal support and drops out the moment competition shows up.

Why orphans happen (and why nobody notices)

Orphans are rarely created on purpose. They're the residue of normal site life: a redesign drops a nav section and 200 category pages lose every inbound link; a landing page gets built for one campaign and unlinked when it ends; a CMS keeps generating product URLs after the product left the catalog listing; a migration maps old URLs to new ones but nobody re-links the new ones. The page still works when you type the URL, so no monitoring fires. The only symptom is slow decay in impressions — which gets blamed on "the algorithm."

A real detection example: crawl vs. sitemap diff

The core move is set arithmetic: URLs you know exist minus URLs a link-following crawl can reach. With two exports:

# sitemap.txt: URLs from your XML sitemaps
# crawl.txt:   URLs found by a link-following crawl (Screaming Frog export)

sort -u sitemap.txt > s.txt
sort -u crawl.txt   > c.txt
comm -23 s.txt c.txt > orphan-candidates.txt
wc -l orphan-candidates.txt
#  412 orphan-candidates.txt

412 URLs the sitemap promises but no internal link reaches. Screaming Frog automates the same logic: Crawl Analysis with sitemaps connected produces the "Orphan URLs" report directly. Either way, treat the output as candidates — some will be intentionally unlinked (paid landing pages), and those you leave alone or exclude from the sitemap instead.

Detection methods compared

No single source sees all orphans. Each method catches a different slice:

MethodToolingCatchesBlind spot
Crawl vs. XML sitemap diffScreaming Frog + sitemap importOrphans you still declare in sitemapsOrphans missing from sitemaps too — the fully invisible ones
Crawl vs. Google Analytics / GA4 landing pagesSF API integration or manual export diffOrphans still getting traffic from search, email, adsOrphans with zero traffic (most of them)
Crawl vs. GSC performance + index dataGSC export, URL Inspection APIOrphans Google indexed historicallyGSC exports cap out; incomplete on big sites
Crawl vs. server log filesLog analyzer + crawl exportAnything any bot or user requested — widest netLog access is often a fight; CDN logs may be sampled
Crawl vs. CMS/database exportDB query of published URLsGround truth of what exists, including never-visited URLsNeeds dev help; templated URLs may not be in one table

On sites where I can get them, database export plus logs is the honest pairing: one says what exists, the other says what's actually being requested.

How to check it on your own site

  1. Crawl the site with Screaming Frog, starting from the homepage, with sitemaps enabled (Configuration → Spider → Crawl → XML Sitemaps).
  2. Run Crawl Analysis (Crawl Analysis → Start), then open Reports → Orphan Pages. This is the sitemap-vs-crawl slice.
  3. Connect GA4 and GSC via the API tabs and re-run — now you also get URLs with traffic or impressions that the crawl never reached.
  4. Pull a URL list from the CMS (published posts, products, categories) and diff it against the crawl export for the full-inventory view.
  5. Triage the candidates: for each, decide — relink it (it has value), consolidate it (it duplicates something linked), or retire it (it shouldn't exist). Then actually add the internal links; a sitemap entry is not a substitute. The internal linking guide covers where those links should live so they stick.

Common audit mistakes

  • Calling sitemap-only discovery "fine." Sitemap inclusion gets a URL crawled, maybe indexed — it passes no authority and no context. Fix: orphans that matter get real links from crawlable, relevant pages.
  • Fixing orphans by linking them from other orphans. A cluster of pages linking only to each other is still unreachable from the site proper. It's common enough to be its own check: orphans linked only from other orphans. Fix: at least one link from inside the connected crawl graph.
  • Bulk-deleting the whole orphan list. Some orphans still rank and convert — killing them throws away won traffic. Check orphans that still get traffic before touching anything. Fix: triage first, delete last.
  • Counting nofollow or JS-only links as "linked." If the only path to a page is a nofollowed link or one that exists purely post-render, discovery is fragile at best. Fix: verify with a non-rendering crawl that the link exists in served HTML.
  • Running detection once and moving on. Every redesign, migration, and template change mints new orphans. Fix: make the crawl-vs-inventory diff a quarterly job, not a one-off audit line.

FAQ

Can orphan pages rank at all?

Yes — Google can discover them via sitemaps or external backlinks, and pages with strong external links or zero competition do rank while orphaned. They just rank below their potential, and they're the first casualties when a competitor publishes anything decent.

Is a page linked only from the XML sitemap an orphan?

For practical purposes, yes. The sitemap is a discovery hint, not part of your site's link graph. Internal PageRank flows through anchor links on pages; a sitemap entry contributes none of that.

What about pages I deliberately don't link — like PPC landing pages?

Intentional orphans are legitimate. Keep them out of your XML sitemaps, consider noindex if they duplicate organic pages, and mark them as known exclusions in your audit so they stop showing up as findings every quarter.

How many internal links does a de-orphaned page need?

One crawlable link technically ends orphan status, but one link from a footer nobody weighted is barely better than none. Aim for a handful of contextual links from topically related, indexed pages — the fix pattern in the URL-is-orphaned check.

Are orphan pages the same as dead-end pages?

No — mirror images. An orphan has no links pointing to it; a dead-end has no links going out of it. A page can be both, which is about as isolated as a URL can get while still being live.

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog