Orphan pages: finding the pages nothing links to
An orphan page is not broken, missing, or badly written. It is a page that no other page on your site links to, which makes it unreachable by the only navigation method a crawler really trusts. Nothing about the page itself will tell you it has this problem.
The short answer
An orphan page has no internal links pointing at it, so a crawler walking your site never arrives. Listing it in a sitemap does not fix this: a sitemap is a suggestion, internal links are the structure, and a page with no inbound links reads as a page the site itself does not consider important.
What makes a page an orphan
One property: zero inbound internal links. Not few, zero. A page linked once from a single buried archive is not an orphan, it is a deep page, and that is a different and much milder condition.
The defining feature is that the defect is relational. You cannot inspect an orphan and see anything wrong, because nothing is wrong with it. What is missing is somewhere else, on whatever page should have linked to it, which is why this is the one check on this list that a single-page audit genuinely cannot answer.
Why a sitemap entry does not fix it
This is the misconception that keeps orphans alive. The page is in sitemap.xml, so it gets crawled, so what is the problem? The page probably does get crawled. The problem is everything else the link would have carried.
A sitemap is a list of addresses. An internal link is an address plus a context: anchor text describing what is there, a position in the site's structure implying importance, and a share of the authority of the linking page. A sitemap entry supplies exactly the first of those and none of the rest.
So a sitemap gets the page discovered. It does not get the page ranked, and it does not get the page found by a human.
There is a human argument too, and it is usually the larger one. A page nothing links to is a page no visitor can navigate to. If it earns traffic from search it earns it alone, with no path in from the rest of the site and no path onward from itself.
Check the outbound links on one page
A single-page audit follows no links, so it cannot see what points at a URL. What it can see is the other direction: how many internal links this page hands out, which is how you spot a dead end. The widget states the limit rather than implying it checked for orphans.
No signup required. Each free search audits one page, paste any URL to see it in action.
How orphans actually get created
Almost never on purpose, and almost always by one of five events. Knowing which one you are looking at tells you whether to fix the page or the template.
- Campaign and landing pages. Built to be linked from an email or an ad, deliberately kept out of the navigation, then never linked from anywhere once the campaign ends. This is the most common orphan on a marketing site and often the highest-value one.
- Pagination that stops. An archive showing ten items per page with links to pages two and three, but a rolling window that drops older pages as new posts arrive. Everything past the window is orphaned progressively, in order, oldest first.
- A removed taxonomy. A redesign deletes category or tag pages, and every item that was only reachable through them loses its only route. The items are untouched; the path to them is gone.
- Product variants and filtered collections. Reachable through a filter interface that emits links via JavaScript rather than anchors, so a crawler sees no route even though a person can click one.
- Migrations. Content moved to new paths, internal links left pointing at the old ones. The new URLs have no inbound links and the old ones redirect, which hides the problem from anyone clicking around.
Finding them
The comparison you need is the set of URLs in your sitemap against the set of URLs a crawler reached by following links. Anything in the first and not the second is an orphan. If you already have both as exports, the diff is a one-liner:
# URLs the sitemap claims exist
curl -s https://example.com/sitemap.xml \
| grep -oP '(?<=<loc>)[^<]+' | sort -u > sitemap.txt
# URLs a link-following crawl actually reached
# (one URL per line, from your crawl export)
cut -d, -f1 crawl-export.csv | tail -n +2 | sort -u > crawled.txt
# In the sitemap, never reached by a link
comm -23 sitemap.txt crawled.txtThat is the whole method, and it is worth understanding even if a tool does it for you, because it explains why the answer requires a crawl: one side of the comparison is a graph traversal and cannot be derived from a list.
Fixing the cause rather than the page
The tempting fix is a links block on some page pointing at each orphan. It works, briefly, and it does not stop the next one appearing. The durable fix is a template that cannot produce an unreachable item.
// Every post links to its siblings by date, so a post
// is reachable from its neighbours even if its category
// page is deleted or the archive window rolls past it.
const { prev, next } = await getAdjacentPosts(params.slug)
return (
<article>
{/* ...post body... */}
<nav aria-label="More posts">
{prev && <Link href={`/blog/${prev.slug}`}>{prev.title}</Link>}
{next && <Link href={`/blog/${next.slug}`}>{next.title}</Link>}
</nav>
</article>
)Adjacent-post links are unglamorous and structurally strong: they form a chain no rolling window can break, so an old post stays reachable from a newer one indefinitely. A full archive page with no pagination limit does the same job for a small site.
Filters that build links in JavaScript are the case worth checking by hand.
Our crawler runs a real browser, so it sees client-side links a plain fetcher would miss. Not every crawler does, and a route that only exists after a click event is a route some of them will never take.
Why an unreachable page is Critical
Because the outcome is binary rather than degraded. Most checks on this list make a page perform worse. This one determines whether the page participates in your site at all: it receives no authority, no anchor-text context and no human navigation.
The other half of the rating is that orphans cluster. The causes above are all systemic, a template, a window, a deleted taxonomy, so finding one usually means finding a set of them created by the same event. That is exactly the blast radius the severity scale is built around.
Does this affect AI search?
Indirectly, and the mechanism is discovery rather than comprehension. An assistant that fetches a URL reads it fine; being an orphan does not make a page harder to parse. What it affects is whether the page is in the index the assistant is drawing candidates from, and whether anything in your site suggests it matters.
There is a more specific effect worth knowing. When an assistant explores a site rather than a single page, it follows links, the same way a crawler does. A page with no inbound links is not in the neighbourhood of anything, so it never comes up as related context for a question about a topic it covers.
The honest summary: this is a search and navigation problem first, with an AI discovery cost attached. Fix it for the ranking and the human path, and the retrieval benefit arrives with them.
Confirming they are connected
Re-crawl and look at the inbound count for the pages you fixed. It should be at least one, and it should come from somewhere sensible: a link from a page nobody visits is technically a pass and practically nothing. The graph view is the faster read here, since a connected node looks obviously different from an isolated one.
Worth repeating after any template or navigation change. This defect is created by structural edits rather than by content edits, so the moment to re-check is a redesign, not a publish.
Questions this check raises
- Will adding the page to my XML sitemap fix an orphan?
- It may get the URL discovered, but it does not fix the underlying signal. A sitemap says the page exists; internal links say the page matters, and the second is what influences how often it is recrawled and how much authority it receives. A page that appears only in a sitemap is a page your own site does not vouch for.
- How do pages become orphaned?
- Almost always through a change elsewhere. A category gets restructured and its children lose their only parent, a campaign landing page is published outside the navigation, a product goes out of stock and drops off the listing while its URL stays live, or a filter that used to expose a set of pages is removed.
- Do orphan pages hurt the rest of the site?
- Not directly, but they waste whatever authority they hold and they usually indicate a structural problem that affects more than the orphan itself. The fix is to repair the link that should exist rather than to link to the page from an arbitrary place, because an artificial link solves the crawl path without solving the reason it was missing.