Discuss project

Orphan Pages: How to Find Pages With No Internal Links

An orphan page has no internal links pointing to it. Here is why that hurts SEO, how to find orphan pages with a crawler, sitemap and Search Console, and what to do with them.

Vladislav KrivorutskoAugust 12, 202610 min read
Contents

TL;DR - key points

  • An orphan page is a page with zero internal links pointing to it — you can only reach it by direct URL or through the sitemap
  • A crawler alone cannot find them: crawling follows links, so orphans only surface when you compare the crawl against the sitemap, server logs and Search Console
  • Orphans come in two kinds: valuable pages that fell out of the structure by accident, and junk that should never have been indexed — the fixes are different
  • The usual sources are site migrations, catalogue cleanups, paid-ad landing pages and auto-generated CMS archives
  • Correct order of work: first decide whether the page should exist at all, then add links to it

Short answer

An orphan page is a page on your site with no internal links pointing to it. You can open it by typing the URL or find it listed in the sitemap, but neither a visitor moving through the site nor a crawler following links will ever get there.

The danger is not a penalty — there is none. The danger is that such a page receives no internal link equity, gets crawled rarely, and any change you make on it is noticed weeks late. And you cannot find orphans with a crawler alone: you have to diff the link crawl against URL lists from your sitemap, Search Console, server logs and analytics.


How an orphan differs from other problem pages

These terms get mixed up constantly, and the fixes are not the same.

Page typeWhat is wrongStatus code
Orphan pageNo inbound internal links at all200
Broken pageDoes not exist, links point nowhere404 / 410
Deep pageLinks exist, but it sits 5+ clicks from home200
De-indexed pageLinks exist, but noindex or a canonical removes it200
Dead-end pagePages link to it, but it links to nothing200

The practical difference: a broken page shows up in every error report, while an orphan looks perfectly healthy. It returns 200, it has a decent title, it may even bring traffic — just a fraction of what it could. That is exactly why orphans survive on sites for years.

It is also worth separating a true orphan from a page with a single footer link. Technically the latter is not an orphan, but in terms of the equity it receives the difference is small — I covered that in detail in the article on internal linking for SEO.


Why orphan pages are a problem

Three effects, of very different sizes.

The page gets almost no internal equity. Equity arrives through external links and spreads through internal ones. A page with no inbound links sits outside that flow: all it has is whatever it earns directly from outside, and a typical service page or product card has no external links at all.

The crawler rarely visits. Googlebot walks the site through links and treats the sitemap as a list of candidates. In my experience, pages without inbound links are re-crawled noticeably less often: Google notices edits after weeks rather than days. On a small site that is tolerable; on a catalogue with tens of thousands of URLs it becomes a crawl budget and technical SEO question.

Junk slips into the index unnoticed. The flip side: orphans are not only useful pages. Test copies, old landing page versions, WordPress attachment pages, tag archives — these usually exist precisely as orphans. Nobody sees them in the structure, so nobody notices they are being indexed.

There is a fourth, organisational effect that stings the most. An orphan page usually means somebody spent time building it and then it fell out of the structure. That is work you already paid for that returns nothing.


How to find orphan pages: five sources

The key point: a crawler alone will not do it. Screaming Frog, Sitebulb or my own crawler all follow links — a page with no inbound links simply does not exist for them. You need a diff across several URL lists.

  1. A link crawl of the site. Start at the homepage and let the crawler collect everything it can reach. This is your "connected pages" list — the baseline for comparison.
  2. Sitemap.xml. Load it separately and compare with the crawl. Anything in the sitemap that the crawler never reached is a direct candidate. Fastest method, but it only sees what the CMS put in the sitemap.
  3. The Page indexing report in Search Console. Export the URLs Google knows about. This surfaces pages neither the sitemap nor the crawler knows — old URLs that still have external links pointing at them, for instance.
  4. Server logs. The most complete source: every URL Googlebot actually requested. On large sites this is the only way to see the full picture, but it is also the most work.
  5. GA4 landing pages report. Shows URLs people actually arrived on. If a page brings traffic but the crawler never found it, that is a valuable orphan.

From there the whole job is list subtraction: URLs from sources 2–5 minus URLs from the crawl = candidates. Candidates, not a verdict — some will drop out on inspection.

What to discard immediately so you do not waste time:

  • parameterised URLs (?utm_source=, ?sort=) if they are consolidated with canonicals;
  • pages blocked in robots.txt — the crawler skipped them for a different reason;
  • pagination and filters generated by scripts, if the crawler did not execute JavaScript;
  • pages whose links live in JS-rendered blocks. This one is common: the link exists in the markup, but a crawler without rendering never sees it, so the page looks like an orphan without being one.

Always check that last point before fixing anything: on sites with a heavy front end, half of the "orphans" are false positives from a crawler that did not run JavaScript.


Where orphan pages come from

SourceWhat it looks likeUsual fix
Site migrationURLs moved, links to them never restoredReturn to structure or consolidate with 301
Catalogue cleanupCategory dropped from the menu, product pages stayedDecide the fate of the product pages
Paid-ad landing pagesDeliberately kept out of navigationKeep them, but remove from the index
CMS auto-generationDate, tag and author archives, attachment pagesNoindex, drop from sitemap
Old campaign pagesCampaign ended, links removed, page remained410 or redirect to the current section
Product importsProducts loaded into the database but never assigned a categoryAssign a category
Manual template editsA link was removed from a block during a redesignPut the link back

A word on Google Ads landing pages. Keeping them out of navigation is deliberate and fine — as long as they are excluded from the index. The trouble starts when an ad landing page gets indexed and starts competing with your main service page for the same query. Then orphaning is joined by keyword cannibalization, and you are untangling two problems at once.


What to do with the orphans you find

Order matters: decide the page's fate first, add links second. The reverse order means you carefully link up pages that should not be on the site at all.

  1. Rank candidates by value. Does the page have impressions in Search Console, did it receive traffic, does it have external links? A page with impressions is definitely not junk.
  2. Answer one question: does this page have its own keyword cluster? If yes, it is needed. If it answers the same intent as another page, it is a duplicate.
  3. Weave the needed pages back in. A slot in the right category, contextual links from two or three relevant pieces, a menu entry if it earns one. Depth target: no more than three clicks from the homepage.
  4. Consolidate duplicates. A 301 to the main page if the content really is the same; a canonical if both versions must stay live.
  5. Remove the junk. Pages that should not be indexed get noindex and leave the sitemap; pages that should not exist get 410. Do not set noindex while keeping the URL in the sitemap — that sends Google contradictory signals.
  6. Check whether it will happen again. If the orphans came from a template or an import, fixing them individually solves nothing; fix the source.

Step 3 is best done in batches: if 40 product pages of one category fell out of the structure, that is one change to the category template, not forty manual edits.


What I see on my own projects

I will not quote a "fixing orphans gives +N% traffic" figure — no such number exists, and any specific one here would be invented. But the patterns repeat.

Orphans almost always appear in batches, never one at a time. Find one and go looking for the rest of its batch: they usually share a source, whether a migration or an import. Fixing them individually is the worst possible use of your time.

On a typical site, more than half of the orphans you find turn out to be junk. Tag archives, attachment pages, test copies. That is not a disappointment but a normal outcome: cleaning them out of the index is worth more than linking up a couple of forgotten posts.

The valuable orphans are usually hiding in old content. An article that was in the blog three redesigns ago still collects impressions — nobody links to it any more. Those pages give the fastest payoff from being reconnected, because they already have history in the index.

On limits. For a 20-page site this whole method is overkill: reading the sitemap with your eyes is enough. It starts paying off at around a hundred URLs and becomes a mandatory recurring routine on catalogues in the tens of thousands. And one more thing: reconnecting an orphan will not make it relevant if it never matched the intent. If the site structure was not built around real demand, that is where you start instead.

The most honest orphan test: try reaching the page from the homepage using links only. If you cannot do it in five minutes, neither can Google.


Checklist: clear your orphans in one pass

  1. Crawl the site from the homepage, with JavaScript rendering if your front end needs it.
  2. Export sitemap.xml and compare it with the crawled URLs.
  3. Export the Page indexing report from Search Console and add it to the comparison.
  4. Pull landing pages from GA4 for the last 12 months — those reveal the valuable orphans.
  5. Subtract everything the crawler found through links from the combined list.
  6. Filter out false positives: robots.txt, parameters, links inside JS blocks.
  7. Split what is left into needed and junk, based on whether the page owns a keyword cluster.
  8. Reconnect the needed ones — category, menu, contextual links.
  9. Kill the junk with noindex or 410 and remove it from the sitemap.
  10. Find the shared source of the batch and fix that, not just the symptoms.
  11. Repeat the check next quarter — and always after a migration or a redesign.

If it turns out orphans reappear after every catalogue update, the problem is no longer SEO but how page generation is built: that is web development, and it is solved at the template level rather than by manual linking.

Frequently asked questions

What is an orphan page in simple terms?
It is a page on your site that no other page of the same site links to. It exists and opens fine at its direct URL, but neither a visitor navigating the site nor a crawler following links can reach it. Do not confuse it with a broken page: an orphan returns a healthy 200 status, the problem is purely one of connectivity.
Do orphan pages hurt SEO?
There is no penalty for them as such, but they receive almost no internal link equity and get crawled rarely, so they rank well below their potential. A separate risk is orphans that were never meant to be indexed: test pages, old landing page versions, duplicate product URLs. Those dilute your site's topical focus and waste crawl budget.
How do you find orphan pages on a website?
Not with a crawler alone: a crawler follows links and by definition cannot see a page with no inbound links. You need to compare the crawled URL list against other sources — sitemap.xml, the Page indexing report in Search Console, server logs, the landing pages report in GA4, or a URL export from your CMS. Anything present in those lists but missing from the link crawl is an orphan candidate.
Does a link in sitemap.xml count as an internal link?
No. A sitemap is a hint to Google about which URLs exist, not a part of your site structure. Google states that sitemaps help with discovery but do not replace links: crawl priority and internal link equity are driven by connectivity. A page that lives only in the sitemap is still an orphan.
Should orphan pages be deleted or linked to?
Decide whether the page is needed first. If it has its own keyword cluster and matches a real intent, weave it back into the structure: links from relevant sections and articles, a slot in the right category. If it duplicates another page, consolidate with a 301 or a canonical. If nobody needs it — neither users nor search — return 410 or noindex it and drop it from the sitemap.
Where do orphan pages come from in the first place?
Mostly from four sources: migrations, where URLs were moved but the links to them were not restored; catalogue cleanups, where a category was pulled from the menu but its product pages stayed; paid-ad landing pages deliberately kept out of navigation; and CMS auto-generation — date, tag and author archives, plus WordPress attachment pages.

Conclusion

Orphan pages are not a disease of their own — they are a symptom that your site structure and your actual content have drifted apart. That is why fixing them one by one is pointless: the next migration or catalogue cleanup produces a fresh batch. It pays more to assemble every URL you have once — from the crawl, the sitemap, Search Console and analytics — split the result into 'needed' and 'junk', and then re-check that seam once a quarter. If there is no time for that, it is part of the technical work I start [SEO projects](/en/seo) with anyway.

About the author

Vladislav Krivorutsko — founder of ADLAB
Vladislav Krivorutsko

Founder of ADLAB OÜ · SEO and Google Ads

Over 20 years in search traffic and monetization, and on the Estonian market since 2017. I work solo: I run the audit, build the strategy and deliver the project myself — no subcontractors, no templates. I only write about what I have tested on my own and client sites.

  • 20+ years in search traffic
  • 50+ end-to-end projects
  • Own sites in competitive niches
  • SEO for ru/et/en in one market
More about me

Read next