How to find orphan pages in Screaming Frog
Screaming Frog can find orphan pages, but not the way most people try. Pointing the spider at your homepage and waiting will never surface a single one, and the reason is definitional rather than technical: an orphan page has no internal links pointing at it, so a link-following crawler has no path to it. To find orphans you have to give Screaming Frog a second source of truth — your XML sitemap, Google Analytics, or Search Console — and then run Crawl Analysis to compare that list against what the crawl actually reached. This guide walks through the exact configuration, the tab and filter where the results appear, and the false positives worth ignoring.
Run the Orphan Page Checker on your site — free, no account.
Why a normal crawl finds zero orphans
Screaming Frog is a link-following crawler. It starts at the URL you give it, extracts every href on the page, queues those, and repeats. That is the same discovery model Googlebot uses, and it has the same blind spot: a URL that nothing links to is unreachable by following links, no matter how long you let the crawl run.
So the crawl frontier and the orphan set are mutually exclusive by construction. Everything the spider found has at least one inbound internal link — that is how it was found. If you want the pages it didn't find, you need a list of URLs that exists independently of your internal linking, and then you subtract.
The subtraction Orphans = (URLs a source says exist) − (URLs the crawl reached by following links). Screaming Frog's Crawl Analysis performs exactly this subtraction; your job is to supply good sources.
Step 1 — connect your sources before crawling
All three sources have to be configured before the crawl starts, not after. Screaming Frog needs them present during collection so it can attribute each URL correctly.
XML sitemap
- Open Configuration → Spider → Crawl.
- Under XML Sitemaps, tick “Crawl Linked XML Sitemaps”.
- If your sitemap is not referenced in robots.txt, tick “Crawl These Sitemaps” and paste the URL directly.
This is the source most people already have, and it is the weakest of the three. A sitemap is generated by your CMS from the same database the site is built from, so it tends to list pages your CMS knows about — which usually includes the orphans, but also includes URLs that were never meant to be indexed.
Google Analytics and Search Console
- Open API Access → Google Analytics (or Google Search Console).
- Connect the account and select the correct property and view.
- Set the date range wide — 12 months catches seasonal pages a 30-day window misses.
- For Search Console, confirm the property matches the protocol and subdomain you are crawling; a mismatch silently returns nothing.
These two sources are stronger than the sitemap because they are behavioural rather than declarative: a URL appears because a real person landed on it or because it drew an impression in search. A page that gets traffic while having no internal links is the highest-value orphan you can find — it is already earning, and it is earning despite your structure rather than because of it.
GA4 note GA4 reports page paths, not full URLs, and Screaming Frog has to reassemble them against the crawled host. Check a handful of matched rows before trusting the totals — a trailing-slash or hostname mismatch shows up as a wall of false orphans.
Step 2 — run Crawl Analysis
Crawl Analysis is a separate post-processing pass, and this is the step people skip. When the crawl finishes, the orphan filters stay empty until you run it.
- Wait for the crawl to reach 100%.
- Open Crawl Analysis → Configure.
- Tick Sitemaps, Analytics, and Search Console (the sources you connected).
- Optionally tick “Auto Analyse At End of Crawl” so you never forget again.
- Click Start and wait for the second pass to finish.
Step 3 — read the right tab
Results appear per source, not in one combined list. Each tab has an “Orphan URLs” filter in the dropdown at the top:
- Sitemaps tab → Orphan URLs — in your sitemap, never reached by the crawl.
- Analytics tab → Orphan URLs — received sessions, never reached by the crawl.
- Search Console tab → Orphan URLs — drew impressions or clicks, never reached by the crawl.
Export each separately and deduplicate in a spreadsheet. A URL appearing in all three is a confirmed orphan that is also earning traffic — start there. A URL appearing only in the sitemap is the weakest signal and the most likely false positive.
source proves orphan signal --------------- ----------------------------- ------------- XML sitemap your CMS knows the URL weak Analytics a human reached it strong Search Console Google indexed and served it strongest
False positives worth ignoring
Not every URL in the orphan filter is a problem, and treating the export as a to-do list wastes a day. Filter these out first:
- Paginated URLs (?page=2) and faceted parameter URLs — usually intentional, often deliberately unlinked.
- Redirected URLs still sitting in a stale sitemap — fix the sitemap, not the link graph.
- Pages blocked in robots.txt — the crawl could not reach them for a different reason entirely.
- JavaScript-rendered navigation — if your menu builds client-side and you crawled in text-only mode, everything below it looks orphaned. Re-crawl with JavaScript rendering enabled before believing the list.
- Login-gated or noindexed utility pages that were never meant to be linked.
The JavaScript case is the one that burns the most time. If your orphan count is implausibly large — say, most of the site — check rendering mode before anything else.
No API access? The sitemap-only workflow
The Google API connections require a paid Screaming Frog licence, and plenty of people hitting this problem do not have one. Sitemap-only orphan detection still works — it is just weaker, and it is worth knowing exactly how.
Configure the sitemap as described above, crawl, run Crawl Analysis with only Sitemaps ticked, then read the Sitemaps tab. What you get is every URL your CMS declared that the crawl could not reach by following links. That is a genuine orphan list. What you lose is the ability to tell which of those orphans anyone actually visits, so you cannot rank the fixes by value — you get the what without the so-what.
Supplying your own URL list instead
If your sitemap is unreliable — plenty are incomplete, stale, or exclude entire post types — you can substitute a list exported straight from your CMS or database. Any list of URLs that exists independently of your internal linking works as the source of truth for the subtraction.
- Export every published URL from your CMS (a database query, an admin export, or a platform API).
- Crawl the site normally in Spider mode, starting from the homepage.
- Export the Internal tab as your reached set.
- Diff the two lists in a spreadsheet. Everything in the export and absent from the crawl is an orphan candidate.
Normalise first Protocol, www, trailing slashes and uppercase paths all cause false mismatches, and a normalisation slip is the difference between four orphans and four hundred. Lowercase and strip trailing slashes on both sides before diffing.
Making the check repeatable
Orphan pages are not a one-off cleanup. Every publishing batch, plugin update and template change creates more, so a single audit is a snapshot with a short shelf life.
Screaming Frog's scheduling (File → Scheduling) can run the crawl on a timer, export the tabs you choose, and — importantly — auto-run Crawl Analysis if you enabled that in the configuration. Point the exports at a dated folder and you get a comparable series rather than a single reading.
The number to watch is not the orphan count on its own. It is the orphan count as a share of total URLs, tracked over time. A site that publishes steadily will always create new orphans; what matters is whether your remediation is outpacing the rate you create them. See how often to audit internal links for a sensible cadence.
List mode: verifying the candidates
The orphan export tells you a URL was never reached. It does not tell you whether the URL still works, redirects, or was deleted six months ago — and a dead URL in a stale sitemap is a sitemap problem, not a linking one. List mode resolves this in one pass.
- Switch Mode → List.
- Paste or upload your deduplicated orphan candidates (Upload → Paste, or Enter Manually).
- Crawl. Because list mode does not follow links, every row is the URL you supplied.
- Sort by Status Code and Indexability.
Now the list splits cleanly. A 200 that is indexable is a genuine orphan worth linking. A 301 means the sitemap is stale — regenerate it. A 404 means the URL should be removed from wherever it is still listed. A 200 marked non-indexable by a noindex tag was probably meant to be unlinked, and belongs in the ignore pile.
List mode also lets you pull word count and title for each candidate in the same pass, which is how you spot the thin auto-generated pages that should be deleted rather than linked.
Orphans versus low-link pages
Screaming Frog draws a binary line — reached or not reached — and that line understates the problem. Sort the Internal tab by the Inlinks column ascending and you will usually find a much larger group sitting at one or two inbound links, every one of them from a sitewide footer or a paginated archive.
Functionally those pages behave like orphans. A single link from page 9 of a blog archive passes almost nothing, and a footer link that appears on every page passes less per link than a contextual one in a paragraph — the distinction covered in contextual vs navigation links. A site with 4 true orphans and 180 pages on one archive link does not have a small orphan problem; it has a large distribution problem that the orphan filter is not built to show.
inlinks what it usually means priority ------- --------------------------------- -------- 0 true orphan high 1 archive pagination or footer only high 2-3 one nav path, no editorial links medium 4+ genuinely supported low
What Screaming Frog will not tell you
You now have a list of URLs with no internal links. The next question is the one the export cannot answer: which page should link to each of them, with what anchor text, and which fix matters most?
Answering that means modelling how authority moves through your link graph — which of your existing pages actually has authority to pass, and which target would gain most from receiving it. That is a different computation from listing unreached URLs, and it is the gap between a crawl export and a plan. RankForge does the same subtraction against its own crawl and sitemap, then ranks the fixes by how much authority each link would move, naming the source page, target page, anchor and paragraph.
Once you have the list, how to fix orphan pages covers the remediation order — and it is not simply “add a link from the sitemap page to everything”.
FAQ
Why does Screaming Frog show 0 orphan pages?
Almost always because Crawl Analysis has not been run, or no external source was connected. The orphan filters are populated by the Crawl Analysis pass comparing your sitemap, Analytics and Search Console data against the crawl. Without at least one of those sources connected before the crawl, the filter is empty by design, not because your site is clean.
Do I need the paid version of Screaming Frog to find orphan pages?
Yes, in practice. The free tier caps crawls at 500 URLs and does not include the API connections to Google Analytics and Search Console, which are the sources that make orphan detection meaningful. Sitemap-only orphan detection is the weakest of the three methods.
Is the Analytics orphan list more reliable than the sitemap one?
Considerably. A sitemap entry only proves your CMS generated the URL. An Analytics or Search Console entry proves a real person or a search engine reached that page, so it exists, works, and has value — while having no internal links pointing at it. Those are the orphans worth fixing first.
Can I find orphan pages without Screaming Frog?
Yes. Any crawler that can compare a crawl against a sitemap performs the same subtraction, and RankForge's free Orphan Page Checker does it in the browser with no install, license, or API configuration. Screaming Frog's advantage is depth and configurability if you are already running it for a full technical audit.
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.