Skip to content
Get started

How to find orphan pages on your website

Find pages that visitors cannot reach through site links. A hypothetical nine-page example shows why a sitemap and incoming-link counts can miss the problem.

How to find orphan pages on your website, beside an amber-glass chain with an open gap before an ivory page on a separate travertine block.
In this guide

Find orphan pages by comparing your full list of published URLs with the pages reachable through internal links from your homepage. Review pages missing from that crawl, check whether the crawl overlooked a real link, and give useful public pages a clear route from related content.

An XML sitemap is a good place to start the inventory. It doesn't show whether a visitor can reach a page through your navigation. For a practical audit, check both incoming links and the route from the main site: two pages can link to each other while remaining disconnected from everything else.

What counts as an orphan page?

In this audit, an orphan page means a page with no incoming internal link from another page on the site. A link that the page makes to itself doesn't count. A page with a few incoming links may still be difficult to reach, so keep reachability as a separate check.

Google recommends that every page you care about have a link from at least one other page on your site. Its sitemap guidance also describes a comprehensively linked site as one where important pages can be found by following links from the homepage. Google's internal-link guidance and sitemap guidance

A page can have incoming links from other websites or appear in a sitemap and still lack an internal route for your visitors. “Orphaned,” “not indexed,” and “low traffic” describe different things. Establish the link problem before deciding what to change.

Compare a page inventory with a homepage crawl

Two trays hold different-sized sets of ivory page cards, with one card standing between them, representing an inventory and a link crawl.

Build two lists with different jobs. The inventory tells you which URLs exist. The crawl tells you which ones can be reached by following the site's links.

For the inventory, combine your published-page export with sitemap URLs. Add relevant URLs from historical content lists, analytics, or Search Console when available. These sources can reveal pages that the current navigation no longer reaches; none should be assumed to be a complete inventory on its own.

For the crawl, start from the preferred homepage and follow internal links. Record the starting URL, date, permitted hosts and folders, rendering settings, and any limits or failures. Use a pass that discovers pages through links alone. If the tool also imports every sitemap URL, keep that imported list separate so it doesn't hide a missing navigation path.

Compare the lists using the final preferred URLs. A trailing-slash alias, a redirect, or a duplicate address should not automatically become another page to repair. If versions disagree, review the canonical URL before counting them separately.

For each inventory URL absent from the homepage crawl, record:

  • Its response status, intended audience, and purpose.
  • Whether it should be publicly discoverable.
  • Its incoming internal links, if any.
  • Any crawl restriction, rendering problem, or unfinished pagination that could explain the absence.
  • The action to take and the page that should provide the route, if a route is needed.

Treat the first difference between the lists as a set of candidates for review. A crawl that stopped early cannot establish that a page has no links.

Rule out links your crawl failed to see

Check a suspected source page in a browser and inspect the actual link. Google generally needs an HTML anchor element with an href address to extract a link reliably. A control that runs a script when clicked may not provide the same crawlable link. Google's crawlable-link requirements

If links appear after JavaScript runs, compare the initial HTML with the rendered page. Google documents extracting links both from the fetched HTML and again after rendering; a crawl that reads only the initial response may see a different set. JavaScript SEO basics

Also check whether the crawler excluded a folder, failed to fetch a source page, or stopped before reaching older listing pages. If you find a real link that the crawl missed, correct the audit's settings or scope and repeat the relevant part.

Use Search Console's URL Inspection tool for a separate question: what does Google report about this URL's indexing, and can its live test access the current page? The indexed report describes Google's stored information; it is not a live view of your present site. URL Inspection documentation

Check a nine-page example

Two ivory page tiles connect on a small stone island, separated from a larger connected group of pages by an open gap.

Consider a hypothetical repair business with nine public pages. All nine are assumed to return HTTP 200, use their own preferred URLs, permit indexing, and appear in its sitemap. This is a constructed link model, with no real customer crawl, traffic, or ranking results.

The complete set of internal links in the model is as follows:

  • The homepage links to /services, /guides, and /contact.
  • /services links to /services/repairs. /guides links to /guides/repair-checklist, which also links to /services/repairs.
  • Those five pages other than the homepage each link back to /. The repairs page also links to /contact.
  • /prices links to / and /contact, but no page links to /prices.
  • /archive/autumn-offer and /archive/offer-terms link only to each other.

Count incoming links by distinct source page, excluding self-links. Start at / and follow only these links:

Page Incoming source pages Reachable from /?
/ 6 Yes
/services 1 Yes
/guides 1 Yes
/contact 3 Yes
/services/repairs 2 Yes
/guides/repair-checklist 1 Yes
/prices 0 No
/archive/autumn-offer 1 No
/archive/offer-terms 1 No

A homepage crawl reaches six of the nine pages. Comparing that crawl with the inventory exposes three missing destinations.

Filtering only for zero incoming links finds /prices. It misses the two archive pages because each has a link from the other. The pair is a disconnected group: a visitor following links from the homepage cannot enter it.

The sitemap contains all nine URLs throughout this example. Its completeness doesn't change the link paths. Google says a sitemap helps discovery but does not guarantee crawling or indexing. What a sitemap does

For the hypothetical business, the price page deserves a review for accuracy and a useful link from the repair service page. The archive pair needs a different decision: does the old offer still help visitors, or should the business update or retire it? Adding a link solely to clear an audit warning would skip that decision.

Choose a useful destination for each page

For a current public page, add the link where a reader would reasonably need it. A repair service page can point to its price basis. A guide can point to the service it explains. Use descriptive wording so people understand the destination before following it.

Our guide to building useful internal links covers placement and link wording in more detail.

For outdated pages, review what the reader still needs. Update information that remains useful, or handle the old URL as part of a deliberate retirement or move. When a page has permanently moved to a suitable replacement, Google recommends a permanent server-side redirect where possible. Redirects and Google Search

Keep a URL-change plan with the decision so that internal links and the sitemap agree with the final destination.

Some pages have a specific purpose outside ordinary navigation, such as an account flow or a limited campaign. Record that purpose and review access and indexing deliberately. A missing menu link does not make confidential information private.

Verify the route after making a change

Repeat the link-only crawl from the same starting point with the same relevant settings. For every page you intended to reconnect, record the actual path a visitor can follow. Open the source page and use its link to confirm that the destination loads and answers the promised question.

In the nine-page model, adding a link from /services/repairs to /prices would make seven pages reachable. The two archive pages would remain separate until the business chose what to do with them. That is a specific, checkable result of the link change, without a claim about search performance.

Keep a small record of the reviewed URL, its purpose, the incoming source page, the action taken, and the verification date. If the remaining problem is indexing, continue with an indexing diagnosis rather than assuming another internal link will resolve it.

For help with SEO and AI search visibility, try HoneyWeRank.

References

Back to the journal