Skip to content
Innovialabs

What Are Orphan Pages and How to Find Them

Basics4 min

In short

An orphan page is a page that no internal link on your site points to. Search engines find it rarely and treat it as unimportant; you find orphans by comparing URL lists from the sitemap, a crawler and analytics.

What an orphan page is

An orphan page is a page that exists and loads, but no other page on your site links to it. The only ways in are a direct URL, the sitemap or an external source.

Why that is a problem:

  • Crawlers struggle to find it. Search engines mostly discover pages by following links. Without links, only the sitemap is left, and a sitemap is a hint, not a guarantee.
  • It is recrawled rarely. Changes on the page take a long time to reach the index.
  • It receives no internal weight. Internal links signal which pages matter. A page with none looks unimportant.
  • Visitors cannot find it either. There is no path to it from the menu or other sections.

Where orphans come from: a section removed from the menu while its pages stayed live; ad landing pages; old pages after a redesign; products dropped from categories; broken pagination; pages a CMS generates on its own.

How to find them, step by step

The idea is simple: collect URL lists from several sources and find the ones that appear elsewhere but are missing from the crawl.

Step 1. Crawl the site

Run Screaming Frog, Sitebulb or a similar tool from the homepage. A crawler follows links just like a search bot, so orphans will not appear in its results. Export every URL that returned 200.

Step 2. Collect URLs from the sitemap

Export all addresses from sitemap.xml. Many crawlers can load the sitemap separately and directly list URLs that are in the sitemap but were not reached through links.

Step 3. Add analytics and webmaster data

  • From Google Analytics or Yandex Metrica — landing pages over a long period.
  • From Google Search Console — pages from the performance and indexing reports.
  • From Yandex Webmaster — pages in search.
  • If you have access, server logs — which URLs bots request.

Step 4. Compare the lists

Normalize the URLs: one protocol, consistent trailing slash, no UTM parameters. Then find addresses present in the sitemap, analytics or logs but absent from the crawl. These are your orphan candidates.

For a small site a spreadsheet with a lookup function is enough. For a large one a short script is easier:

crawl = set(open("crawl.txt").read().split())
other = set(open("sitemap.txt").read().split()) | set(open("analytics.txt").read().split())
orphans = sorted(other - crawl)
print("\n".join(orphans))

Step 5. Check each candidate by hand

Not every result is a true orphan. Some may redirect or return 404, others are parameter duplicates. Check the status code and the content.

What to do with them

PageAction
Useful, has traffic or demandAdd internal links from categories, menus, related posts
Outdated, but a replacement exists301-redirect to the current page
Not needed, no links or trafficDelete it (404 or 410) and remove it from the sitemap
Needed only for adsKeep it, add noindex and remove it from the sitemap

When adding links, follow the site's logic: the page should be reachable from the section where a visitor expects it, not from a random footer block.

How to prevent orphans

  • Review internal links whenever you remove a section or change the menu.
  • Generate the sitemap automatically from CMS data and compare it with a crawl at least once a quarter.
  • Use related-content blocks and breadcrumbs in blogs and catalogs.
  • After a redesign or migration, always compare the old and new URL lists.

FAQ

Yes. A sitemap tells the crawler the page exists but does not replace internal links. A page listed in the sitemap with no links from the site is still an orphan.

We can help with this

If you'd rather get the result than figure it all out yourself — this is what we do every day.

Discuss a project

Read next

Have an idea or a task? Tell us about it

We'll reply within one business day and propose a solution. The consultation is free.