An orphan page is a URL on your site that no other page on your site links to. It usually loads fine, it is often indexed, and it almost always underperforms, because zero internal links is about the plainest way to tell Google a page does not matter to you. This guide is for anyone holding a crawl export after a migration, a CMS change or a content audit, working out which URLs are genuinely stranded and which are stranded on purpose. It covers where orphans come from, the four data sources you have to compare to find them, and how to decide whether each one deserves a link, a redirect, a noindex or deletion.
The short version
- A link crawl cannot find your orphan pages. They are, by definition, the URLs it never reaches, which is why one crawl is never the whole answer.
- Four sources, four different lists. A crawl, your XML sitemap, Search Console and your analytics or server logs each know a different set of URLs. Your orphans sit in one of those sets and not in the crawl.
- Some orphans are correct. Paid landing pages, thank-you pages and gated download URLs are unlinked on purpose and should stay that way.
- The fix is not always a link. Four observable facts route every orphan to exactly one of four answers: link it, redirect it, noindex it or delete it.
- Orphans arrive in batches. Migrations, faceted URLs and removed pagination generate them structurally, which is why the same site keeps producing them.
What is an orphan page, and is it always a problem?
No, not always, and settling that first saves you from fixing things that are not broken. An orphan page is a URL with zero inbound internal links from anywhere else on the same domain. That is the entire definition. Not low traffic, not thin content, not a page nobody has opened in two years.
Several kinds of orphan are deliberate and correct:
- Paid landing pages: reached from the ad, and kept out of the site structure so they do not compete with the organic page on the same topic.
- Thank-you and confirmation pages: only meaningful after a form submission, and odd to link from navigation.
- Gated asset URLs: the page behind an email wall, reachable only from the download email.
- Test URLs on the live domain: they should not be linked, and mostly should not be crawlable either.
What matters is the gap between intent and reality. An unlinked page you meant to leave unlinked is a design decision. An unlinked page you expected to rank is a defect, and it stays invisible because the URL still returns 200.
A second distinction is worth drawing, because it changes the fix:
| Property | True orphan | Near-orphan |
|---|---|---|
| Inbound internal links | Zero | One or two, often from a single template |
| Appears in an orphan report | Yes | No, which is why it goes unnoticed for longer |
| What it actually needs | Discovery | Priority: fewer clicks from the homepage, better anchors |
A near-orphan at crawl depth six, linked once from a paginated archive, is often in worse shape than a true orphan with a strong external link. Sort your crawl by inlink count ascending and crawl depth descending, and both groups show up in one pass.
Why do orphan pages hurt rankings?
Three mechanisms, and only one of them is a ranking signal.
Discovery: Google finds URLs from links on pages it already knows and from sitemaps you submit. Its documentation on how Search works says plainly that "Googlebot doesn't crawl all the pages it discovered," and that Google does not promise to crawl, index or serve any given page. Remove the links and you have left yourself one discovery path and no assurance behind it.
Crawl scheduling: a URL reached only through a sitemap entry tends to be refetched on a long cycle, so edits take much longer to register. This matters most on large sites; our guide to crawl budget covers where the threshold sits. Below roughly ten thousand crawlable URLs, scheduling is rarely your bottleneck.
Importance: internal links are the main way you tell Google which of your own pages you rate. A page with none is a page you have implicitly ranked last. It bites at every site size, and it is why internal linking work is better started on the orphan list than on anchor text.
The damage compounds quietly rather than arriving as a drop. Orphans rarely vanish from the index; they just lose ground to pages that are wired in.
Where do orphan pages actually come from?
Five structural causes cover the cases that recur, and none is carelessness by an individual writer.
- Migrations that dropped a link source: a category hub, a breadcrumb trail, a sidebar module or a footer column that existed on the old template and was never rebuilt on the new one. Every page it used to link to is orphaned at once.
- Faceted and filtered URLs: combinations generated by query parameters that exist as crawlable URLs but appear in no static link anywhere on the site.
- Pagination removed or replaced: swapping numbered pagination for infinite scroll strands everything from page two onward unless the underlying links are still rendered server side.
- Campaign and paid landing pages: orphaned on purpose at launch, then left in place after the campaign ends, at which point ownership usually lapses.
- Links that only exist after an interaction: a link inside a collapsed accordion, a tab panel or a menu that renders on click. If the link is not in the DOM before anyone interacts with the page, treat it as absent.
From my experience, migrations are the cause that turns up most often, and the one that does its damage silently. The URLs still resolve, so nothing in a redirect audit flags them and nothing in a broken-link check does either. All that changed is that the page lost its parent, and nothing alerts you when a page loses its last inbound link.
Why can't a crawler find orphan pages on its own?
Because a link crawl works by following links. It starts from a seed URL, extracts the links it finds, follows those, and repeats. The one category of page it can never reach is the category defined by having nothing point to it.
That is a logical property, not a shortcoming of any particular tool. Some crawlers do produce an orphan report, by asking you to connect a sitemap, a Search Console property or an analytics export first. Same comparison; the only question is whether you run it or the tool does.
Which data sources do you need to find orphan pages?
Four, and each produces a different orphan list, because each knows your site through a different route.
| Source | What it finds | What it misses |
|---|---|---|
| Site crawl | Every page reachable by following internal links from your seed URL | The orphans themselves, by definition. This is your baseline, not your answer |
| XML sitemaps | Every page you have told Google exists, whether or not anything links to it | Orphans that were never added to the sitemap, which is where a hand-maintained or partially generated sitemap leaves a gap |
| Search Console: Page indexing and URL Inspection | URLs Google knows about however it found them, including through external links you never see | Pages Google has never discovered. The report's example URL list is capped, and URL Inspection checks one URL at a time |
| GA4 landing pages and server logs | URLs that actually received a session or a request, which proves a page is live and wanted | Orphans nobody has visited yet, and anything outside your reporting window |
Two caveats before you trust an export. Google documents that in the Page indexing report, "the list of example URLs in the report is limited to 1,000 items, and isn't guaranteed to show all URLs in a given status, even when less than 1,000 items." Treat what the Page indexing report gives you as a sample rather than a census, and on a large site expect several passes.
In GA4, event-level data retention is set to 2 or 14 months on a standard property, but Google's documentation on data retention states that "the data retention setting does not affect standard aggregated reports." Pull your landing pages from a standard report and retention is not your constraint; build the same list in an Exploration and it is.
If you can get server logs, use them. They record every request Googlebot made, including URLs no other source knows about, which is why log file analysis surfaces the oldest and strangest orphans on a site.
What is the detection workflow, step by step?
Run it in this order. Each step produces one flat list of URLs, and the last is a set of subtractions.
- Crawl the site from the homepage: default settings, JavaScript rendering enabled if your navigation needs it. Export the internal HTML URLs that returned
200. This is your crawl set. - Pull every sitemap URL: fetch the sitemap index and every child sitemap, then flatten them into one list. Do not stop at the index file, which lists sitemaps rather than pages.
- Export the Search Console Page indexing report: take both the indexed and not-indexed tables. The not-indexed statuses matter more, because a discovered-but-unlinked page frequently sits in one of them.
- Export the fourth source, GA4 landing pages or server logs: in GA4, use the longest window your standard reports allow, since anything under twelve months misses seasonal pages. With logs, filter to verified Googlebot requests and extract the distinct URL paths.
- Subtract: for each of the three non-crawl sources, list the URLs present in that source and absent from the crawl set.
Normalize before you compare, or the result is mostly false positives. Strip trailing slashes, unify protocol and subdomain, decide whether query strings count as distinct URLs, and resolve redirects so a URL and its 301 target are not counted as two pages. Then remove everything already excluded on purpose: noindex pages, canonicalized duplicates, and paths blocked in robots.txt.
What is left is your orphan list. A sitemap-only comparison, the quickest version of this, returns only the orphans you had already told Google about. The more interesting ones are usually the URLs that Search Console or your logs know about and your sitemap does not.
What should you do with each orphan you find?
Each orphan gets exactly one of four answers, and four observable facts decide which. Check them in this order:
- Does it still serve a purpose? Is the content current, accurate, and something you would publish today?
- Does it get organic traffic or impressions? Any clicks, or non-trivial impressions, in Search Console over the last twelve months.
- Does anything external link to it? Check referring domains for that specific URL, not for the domain.
- Does anyone still need the URL to exist? Forms, emails or ads that point at it, even though search should not surface it.
| What you found | The answer | What that means in practice |
|---|---|---|
| It still serves a purpose | Link it | Add it to the hub or category page it belongs to, then add references from two or three topically close pages already indexed |
| No purpose, but it has traffic or external links | Redirect it | A 301 to the closest genuine equivalent. Not the homepage, which helps nobody and throws the signal away |
| No purpose, no traffic, no external links, but users still need the URL | Noindex it | Thank-you pages, confirmation screens, gated asset URLs. Leave them unlinked and keep them out of the index deliberately |
| No purpose, no traffic, no external links, nobody needs the URL | Delete it | Return 410 where your stack supports it, 404 otherwise. Removing a page is a valid outcome, not a failure |
The noindex branch has a trap. Google's guidance on blocking indexing with noindex is explicit that "for the noindex rule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler." An orphan is, almost by definition, a page Google has little reason to refetch, so a noindex tag on a page with no internal links and no sitemap entry can sit unread while the page stays in the index.
The practical sequence: request indexing for the URL in URL Inspection, then watch the Page indexing report until the page is reported as excluded by noindex. Do not park it in your sitemap to force the recrawl; a sitemap is for URLs you want indexed. Our guide to noindex covers the meta tag and header variants.
What do you do when the triage facts conflict?
The order above resolves most cases on its own. Three combinations come up often enough to name.
Traffic, but no purpose: redirect, do not delete. Traffic means someone is still arriving, and a 410 turns a working entry point into a dead end. Find the page that now answers the same question and send them there.
External links, but obsolete content: redirect to the nearest live equivalent. If nothing on the site is a genuine match, the honest answer is to rewrite the page rather than point a real recommendation at something irrelevant.
Purpose, but it duplicates a better page: this is a merge, not a link. Move anything unique into the stronger page, then redirect. Linking to a near-duplicate creates a ranking conflict instead of solving one.
In projects I've worked on, the delete branch gets chosen far more often than it should, usually because nobody checked for external links before pulling the page. Deletion feels decisive and a redirect feels like housekeeping, but the redirect is what keeps a real signal alive. Check referring domains for the exact URL before anything gets deleted, and treat one genuine referring domain as enough to make it a redirect.
How do you stop orphan pages coming back?
Treat orphan detection as a structural check rather than a content chore. Three things do most of the work.
Two template-level fixes: first, every content type needs a hub or listing page that links to every item in it, generated from the data rather than hand-curated, and rendered server side. Second, every module that produces internal links (related posts, recent items, breadcrumbs) belongs on your migration checklist as a named component, so a missing one is caught before launch.
A recurring check: run the sitemap-versus-crawl diff monthly if you publish weekly, quarterly if you publish rarely. Once the exports are scripted this is a five-minute job.
An unconditional trigger: run the full four-source comparison after every migration, redesign, CMS change or URL structure change. No exceptions. That is when orphans are created in bulk, and also the only moment when someone still remembers what the old structure looked like.
One limit on cadence: if your site is under a hundred pages and nothing structural has changed, monthly orphan checks are busywork. The check earns its place once no single person holds the whole structure in their head.
The habit worth keeping is narrower than the full workflow: every time you change anything structural, diff a fresh crawl against your sitemap before you call the change finished. That catches the batch failures on the day they happen, while the fix is still a template change rather than an archaeology project.
This week, do the narrow version once. Crawl your site, export the URL list, pull your sitemap into a second list, and look at the first ten URLs that appear in one and not the other. Those ten rows will teach you more about your link graph than any audit summary. If you would rather have that diagnosis run as part of a broader audit, our technical SEO work starts in exactly this place.
Ready to Grow Your Organic Traffic?
If you're looking to improve rankings, increase qualified traffic, and build long-term organic growth, GrowthHasten can help.
Talk to an SEO ExpertFrequently Asked Questions
What are orphan pages?
An orphan page is a URL on your site that no other page on the same site links to. That is the whole test: zero inbound internal links. It is separate from thin content or low traffic, and a page can be well written, indexed and still be an orphan. Some orphans are deliberate, such as paid landing pages and thank-you pages. The ones worth fixing are the pages you expected to rank.
How do you check for orphaned pages?
Compare four lists rather than running one tool. Crawl your site and export every URL the crawl reached, then pull your XML sitemap, your Search Console Page indexing export, and your GA4 landing pages or server logs for the fourth. Any URL that appears in one of those sources but not in the crawl is a candidate. Normalize trailing slashes, protocols and redirects before comparing, then remove the pages you excluded on purpose.
Does Google index orphan pages?
Yes, it can. Internal links are one discovery path, not the only one. Google also finds URLs through the sitemaps you submit and through external links from other sites, so an orphan page can be crawled and indexed normally. What changes is priority. With no internal links, the page carries no signal that you consider it important, so it tends to be recrawled slowly and to rank below pages that are properly connected.
How do you fix an orphan page?
Four facts decide it. If the page still serves a purpose, link it from the hub page it belongs to plus two or three topically related pages. If it has no purpose but does have traffic or external links, redirect it with a 301 to the closest genuine equivalent. If users still need the URL but search does not, apply noindex. If nobody needs it at all, delete it and return 410 or 404.
Is a page with only one internal link an orphan?
No. An orphan has zero inbound internal links, and a single link is enough to fall outside the definition. A page like that is better described as a near-orphan, and it will not show up in an orphan report, which is why it often goes unnoticed for longer. Judge it on crawl depth instead. A page six clicks from the homepage with one link from a paginated archive needs attention even though it is technically connected.
Are orphan pages ever intentional?
Often, yes. Paid landing pages are kept out of the site structure so they do not compete with the organic page on the same topic. Thank-you and confirmation pages only make sense after a form submission. Gated asset URLs are reachable from the download email and nowhere else. Those are correct as they stand, and the usual treatment is to leave them unlinked and keep them out of the index with noindex.

Anshuman Sinha
AI SEO Specialist, GrowthHasten
Anshuman Sinha is an AI SEO Specialist and Computer Science Engineer with over three years of experience in SEO and five years in web development. He specializes in Technical SEO, AI Search Optimization (AEO and GEO), SaaS SEO, and building high-performance websites with modern technologies.
View profile



