Technical9 min read

How to find orphan pages in Google Search Console

Google Search Console will not show you a list of orphan pages, because it has no idea which of your pages are internally linked and which are not — it reports on indexing and performance, not on your link graph. What it does have is the one thing a crawler can never produce on its own: a list of URLs Google knows about, built independently of your internal links. Combine that with a crawl and you can identify orphans for free. This guide covers the exact reports, the subtraction, and the point where the method runs out of accuracy.

Run the Orphan Page Checker on your site — free, no account.

Skip the spreadsheet — run the free Orphan Page Checker

The two reports that matter

Search Console holds your URLs in several places, and only two are useful for this.

The Pages report (Indexing → Pages)

This is the authoritative list of URLs Google has encountered on your site, split into indexed and not-indexed with a reason for each. Export the full list. Pay particular attention to two not-indexed reasons: “Discovered — currently not indexed” and “Crawled — currently not indexed”. A page in either bucket that also turns out to have no internal links is a textbook orphan — Google found it (usually via your sitemap), looked at it, and decided it was not worth indexing, which is exactly what a page with no internal support looks like from the outside.

The Links report (Links → Internal links)

This shows your top internally linked pages, ranked by inbound internal link count. It is genuinely useful and genuinely limited: it lists your most-linked pages, not your least-linked ones, and it is sampled rather than exhaustive. You cannot read orphans off it directly. What you can do is treat absence from a long export as a signal — a URL that appears in the Pages report but nowhere in the internal links export is a candidate.

Why absence isn't proof The Links report truncates, and Google samples which links it reports. A page missing from it might have two internal links rather than zero. Treat the output as a candidate list to verify, never as a finished answer.

The subtraction, step by step

  1. Export the full Pages report (Indexing → Pages → Export). This is your “URLs that exist” column.
  2. Crawl your own site with any link-following crawler, starting from the homepage. This is your “URLs reachable by internal links” column.
  3. Put both in a spreadsheet and use a lookup to flag every URL present in the first column and absent from the second.
  4. Normalise before comparing: protocol, www, trailing slashes and query strings all cause false mismatches. This step is where most of the errors come from.
  5. Cross-reference the survivors against Performance → Search results. A flagged URL with impressions is a confirmed, valuable orphan.

That last step is the one worth the effort. A URL Google is already serving impressions for, while your own site links to it zero times, is ranking despite your structure. Adding two or three contextual internal links to a page in that state is among the cheapest ranking improvements available, because the page has already proven it can earn impressions.

Where this method breaks down

The free method is real, but be honest about its edges before you rely on it:

  • Search Console only knows URLs Google has discovered. A page with no internal links and no sitemap entry may be invisible to both Google and your crawl — it will not appear at all.
  • The Pages report has a 1,000-row export cap in the UI. Larger sites need the Search Console API or a sampled approach.
  • Data lags by roughly two to three days, so a page you linked this week may still look orphaned.
  • The report covers one property. Separate http/https or www/non-www properties split your data and produce phantom orphans.
  • It tells you a page is orphaned. It does not tell you which page should link to it, or which fix is worth doing first.

If your sitemap is generated from the same CMS database as your pages, comparing sitemap to crawl finds the same orphans with far less spreadsheet work — and it does not depend on Google having discovered them first.

Narrowing the search with the Sitemaps report

Before diffing anything, Indexing → Sitemaps will often tell you which part of the site the problem is in — and that turns a whole-site spreadsheet exercise into a targeted one.

The report lists each submitted sitemap with a discovered-URL count. If your CMS splits sitemaps by post type — most do, and Yoast and Rank Math both do by default — click into each one and compare its URL count against how many of those URLs are indexed. A post type where a large share sits unindexed is where your orphans are concentrated.

  • A products or custom-post-type sitemap with poor indexing usually means the type has no archive page linking its entries.
  • A posts sitemap with the oldest entries unindexed is the classic archive-pagination pattern — depth, not absence of links.
  • A pages sitemap with unindexed entries often means campaign or landing pages that were never linked from anywhere.
  • A sitemap whose count is far below what you know exists means the sitemap itself is incomplete, and it is the wrong source of truth for the diff.

That last case matters. If the sitemap is missing pages, a sitemap-versus-crawl diff will silently miss exactly the orphans you most want — the ones neither linked nor declared. Fix the sitemap before trusting any comparison built on it.

URL Inspection: the closest thing to direct evidence

For any single candidate, the URL Inspection tool gives you something no export does: the referring page Google used to discover that URL.

Paste the URL into the inspection bar at the top of Search Console, open the coverage detail, and look at the Discovery section. It reports the sitemap the URL was found in and the referring page, if there was one. When the referring page is blank and the only discovery source is your sitemap, you have direct confirmation from Google that it found this page through a declared list rather than through a link on your own site.

What this proves Discovery via sitemap only, with no referring page, is as close as Search Console gets to saying "nothing on your site links to this". It is per-URL and manual, so use it to confirm your top candidates rather than to build the list.

This is also why sitemap-discovered pages tend to index worse. A URL that arrives only through a sitemap carries no context — no anchor text describing it, no linking page vouching for it, no position in a hierarchy. Google has to evaluate it cold. How Google discovers new pages covers why link discovery and sitemap discovery are not equivalent inputs.

Getting past the 1,000-row export cap

The Pages report exports 1,000 rows from the interface, which is fine for a small site and useless for anything above a few thousand URLs. Two routes get you the full set.

The Search Console API

The URL Inspection API returns indexing state per URL at 2,000 queries per day per property. That is enough to audit a mid-sized site over a few days, and it returns the same coverage state the interface shows, plus the referring page Google used for discovery — which is exactly the field you want when deciding whether a page has any real inbound path.

Bulk data export to BigQuery

Search Console can stream performance data to BigQuery daily with no row cap. This does not give you the Pages coverage report, but it gives you every URL that earned an impression, which for orphan-hunting is the more valuable half. Any URL in that export that your crawl never reached is a page Google is actively serving while your own site links to it zero times.

Which to use If you only want the high-value orphans, skip the coverage report entirely and use impressions. A page with no internal links and no impressions is worth far less of your time than one with no internal links and 400 impressions a month.

Ordering the fixes by impression data

Search Console's real advantage over a sitemap comparison is that it tells you which orphans already matter. Once you have the candidate list, pull Performance → Search results for each URL and sort by impressions.

  • High impressions, low CTR, position 8-20 — the best possible fix. The page is already relevant enough to be served; it is short of the authority to place higher, and internal links are the fastest way to supply it.
  • High impressions, position 1-5 — already working despite the orphaning. Link it anyway; it costs one paragraph and protects the position.
  • Low impressions, indexed — link it, but do not expect movement until the content earns relevance. Structure will not rescue a page nobody searches for.
  • No impressions, not indexed — decide whether the page should exist at all. Linking a thin page just spreads authority thinner.

That ordering matters more than the length of the list. Ten well-chosen links from pages that hold authority will outperform two hundred links from a hub page nobody visits, because a page with two hundred outbound links passes almost nothing through each — the arithmetic behind link equity.

A worked example

Concretely, on a 900-page site: the Pages report exports 780 indexed URLs. A crawl from the homepage reaches 690. The diff leaves 90 candidates.

  1. Normalise both columns — lowercase, strip trailing slashes, drop query strings. 90 falls to 71; the other 19 were formatting mismatches, which is typical.
  2. Remove paginated, faceted and noindexed URLs. 71 falls to 48.
  3. Join against the Performance export by URL. 31 have zero impressions; 17 have impressions.
  4. Sort those 17 by impressions descending. The top 5 account for most of the opportunity.

The output is five pages, not ninety. That is the point of the exercise — the raw diff feels like a crisis and mostly is not, and the value is concentrated in the handful of pages that already earn impressions while nothing on your site links to them.

Do step 1 before you panic at the number. Almost every "my site has 400 orphan pages" result is a normalisation failure, not a structural collapse.

From list to fix

The subtraction produces a column of URLs. Turning that into ranked work means knowing which of your existing pages hold internal authority worth passing, and which orphan would gain most from receiving it — a question about how authority flows through your link graph, not about which URLs are missing.

RankForge connects to the same Search Console property, crawls the site, and does the comparison automatically — then ranks each orphan by the authority a link would actually move, and names the source page, anchor text and paragraph. If you would rather do it by hand, how to fix orphan pages covers the remediation order, and how Google discovers new pages explains why sitemap-only discovery produces weak indexing in the first place.

FAQ

Does Google Search Console have an orphan pages report?

No. Search Console reports on indexing and search performance, and has no visibility into your internal link structure, so it cannot label a page as orphaned. You get there by exporting the Pages report and subtracting the URLs your own crawl reached by following links.

Does “Discovered — currently not indexed” mean a page is orphaned?

Not on its own, but it is a strong hint. That status usually means Google found the URL — most often through your sitemap — and chose not to spend crawl budget on it. Weak or absent internal linking is one of the most common reasons a page ends up in that state, so it is a good bucket to check first.

Why does the internal links report not show my orphan pages?

Because it is ranked by inbound internal links descending and it is sampled, so it shows your most-linked pages rather than your least-linked ones. A page with zero internal links has nothing to rank it by and simply never appears. Absence is a candidate signal, not proof.

Is comparing the sitemap to a crawl better than using Search Console?

For finding orphans, usually yes. Your sitemap is generated from your CMS, so it lists pages regardless of whether Google has discovered them, and the comparison needs no export limits or property matching. Search Console's advantage is that it adds impression data, which tells you which orphans are already earning and should be fixed first.

Sources

Put this into practice

Run the Orphan Page Checker to see this on your own site, or run the full structural audit for the complete picture — both free, no account required.

What the fix list looks like

82

Health

B+

Grade

Strong structure with a few high-impact internal links to add. Acting on the list below could unlock a meaningful lift in organic visibility.

Internal links to add

example.com/blog/how-to-improve-seoexample.com/features/internal-linking
High

Anchor: internal linking strategy

Placement: Paragraph 3, sentence 2

example.com/blog/content-marketing-guideexample.com/pricing
Moderate

Anchor: structural SEO platform

Placement: Paragraph 6, sentence 1

example.com/guides/keyword-researchexample.com/blog/topic-clusters
Moderate

Anchor: build topic clusters

Placement: Paragraph 2, sentence 4

14

Quick wins

12

Orphan pages

9

Anchor gaps