How orphan pages happen
- A redesign or new theme drops old menu items.
- A product moves out of a category but stays live.
- A landing page was built for an ad and never linked.
- Old blog posts slide off paginated archives.
- A page builder creates links with JavaScript and no
href, so they don't count as links.
What you need
| Tool | Cost | What it gives you |
|---|---|---|
| A crawler, e.g. Screaming Frog SEO Spider | Free up to 500 URLs (source) | Every page reachable by links |
| Your XML sitemap | Free | Every page you want indexed |
| Google Search Console | Free | Every page Google shows in search |
| A spreadsheet | Free | The comparison |
The paid Screaming Frog licence can pull Search Console data in and build an orphan report for you. You don't need it. The free method below gets the same answer with a formula.
Step 1: Crawl from the homepage
Enter your homepage in the crawler and run it to 100%. In Screaming Frog, open the *Internal* tab, filter to *HTML*, and export. Paste the URL column into a tab called Crawl.
This list is every page a visitor or Googlebot can reach by following links.
Step 2: Export your sitemap URLs
Open yoursite.com/sitemap.xml (WordPress plugins often use /sitemap_index.xml). Copy every page URL into a tab called Sitemap. If the sitemap is split into several files, open each one.
Step 3: Export your Search Console pages
In Search Console, open *Performance > Search results*, set the date to the last 3 months, open the *Pages* tab and export. Paste the URLs into a tab called GSC. The export holds at most 1,000 rows, so on a big site filter by folder and export each one (Google on row limits).
Step 4: Clean the URLs so they match
Small differences will hide matches. Make sure every list uses:
- the same protocol (
https://) - the same host (with or without
www) - the same trailing slash rule
- no tracking parameters like
?utm_source=
Step 5: Flag the orphans
In the Sitemap tab, in column B, add this and fill down:
=IF(COUNTIF(Crawl!A:A, A2)=0, "ORPHAN", "linked")Do the same in the GSC tab. Every row marked ORPHAN is a page you want indexed, or a page Google shows, that no link on your site reaches.
Step 6: Check near-orphans too
A page with one link from a footer is barely better than an orphan. In your crawl export, sort by *Unique Inlinks*. Flag pages with 0 to 2. Also sort by *Crawl Depth*: our rule of thumb is to keep pages that earn money within 3 clicks of the homepage.
In Search Console you can double-check one URL: run it through URL Inspection and look under *Discovery* for *Referring page* (Google lists up to 4 candidates, help page). If none is a page on your own site, that is a hint, not proof, that your links don't reach it.
Step 7: Fix each orphan
| The orphan is... | Do this |
|---|---|
| Useful and indexable | Add 3 to 5 in-body links from on-topic pages that already get clicks |
| Useful but noindexed, redirected or canonicalized elsewhere | Fix indexing first. Links to a non-indexable URL are wasted |
| Outdated or a duplicate | Redirect it to the closest useful page and remove it from the sitemap |
| A page you don't need at all | Remove it, return 404 or 410, and drop it from the sitemap |
For the useful ones, the source page matters. Our playbook shows how to pick source pages that already get clicks, write the anchor and place the sentence, with a worked example.
Step 8: Re-crawl to confirm
Run the crawl again. Every fixed page should now appear in the Crawl tab, with more unique inlinks and a lower crawl depth. Then save each page's impressions and clicks and compare in 4 weeks.
How to use this with an AI assistant
Connect SEOmatic at https://seomatic.ai/mcp and ask: "Compare site_pages inventory for mysite.com with gsc_performance top_pages for the last 3 months. List pages that get no impressions, then run site_audit and tell me which of them have no internal links pointing to them." Sign in with connect_seomatic; reading is free, and any links SEOmatic drafts wait for your approval.
More from the internal linking playbook
- The checklistInternal link SEO: the 1-week playbook
- GuideWhat is an internal link? The HTML, real examples and a 30-second test
- GuideInternal link anchor text: rules and examples
- GuideHow many internal links per page?
- GuideHub and spoke internal linking, with diagrams
- GuideHow to use the Search Console internal links report


