GUIDES / THE REDIRECT MAP

Finding the urls nothing links to before a relaunch

the pages a crawler cannot reach are usually the ones still holding rankings.

by Max Lorenz, Goodaim · updated 10 sep 2026

where the old urls come from
  • crawl
    1 100 urls
  • sitemap index, 11 files
    1 640 urls
  • search console exportcapped
    1 000 rows
  • union, normalised
    1 890 urls

SHORT ANSWER

An orphan url is a page that still exists — indexed, linked to from other sites, sometimes still getting traffic — but that nothing on your own site links to any more. A crawler follows links, so it cannot reach one by construction, and any redirect map built from a crawl alone is missing them. You find them by reading the lists that were written before the links disappeared: sitemaps, robots.txt, Search Console, server logs and the web archive.

What counts as an orphan url?

Any page that no longer has a path of links leading to it from the homepage. They accumulate quietly, in a handful of recognisable shapes:

  • old blog posts that fell off the last page of the archive, or whose category page was removed in a previous redesign.
  • campaign landing pages that were only ever reached from an ad, an email or a printed qr code — never linked from the site at all.
  • discontinued products pulled from the catalogue but left online, which is common in shops where the url is also the invoice reference.
  • pdf files — datasheets, price lists, manuals. They rank, they get linked, and no crawler configuration finds them if the page that linked to them is gone.
  • language variants that survive only as an hreflang alternate after the language switcher was rebuilt.

What they have in common is the reason they matter: a page nobody links to internally is often precisely the page other people link to externally. Age is what created both.

EXAMPLE

a shop relaunch crawls 1 100 urls. The sitemap lists 1 640. The 540 missing ones are products discontinued between 2019 and 2023 — six of which still receive organic traffic every week.

sitemap.xml, and the shapes it comes in

The sitemap is generated by the cms rather than by the navigation, so it keeps listing pages long after the last link to them was removed. It is the single most productive source, and it comes in three shapes you have to handle:

a plain sitemap — one file, a list of <loc> entries. Nothing to do but read it.

a sitemap index — a file that only points at other sitemap files, usually because the site went over the 50 000-url limit or splits by content type. Each of the referenced files has to be fetched in turn, and forgetting to follow the index is the classic way to end up with an empty list.

gzipped files — sitemap.xml.gz. Large sites serve them compressed; a tool that only reads .xml silently finds nothing.

One more thing sitemaps hide: hreflang alternates. An entry can carry <xhtml:link rel="alternate"> elements pointing at the same page in other languages, and those urls often appear nowhere else in the file. They need a redirect just as much as the url they hang off.

EXAMPLE

/sitemap.xml turns out to be an index of eleven files, three of them .xml.gz. Following all eleven yields 1 640 urls where the first file alone had 200.

robots.txt tells you where the sitemaps are

Before guessing at /sitemap.xml, read /robots.txt. It may carry several Sitemap: lines, and they are absolute urls — so they can point at a file with a name you would never have guessed, or at another host entirely, such as a shop system on a subdomain.

The disallow rules are worth a glance too, for a different reason: a directory blocked from crawling still exists, still answers, and still needs a target if it was ever public.

EXAMPLE

robots.txt lists sitemap_index.xml, sitemap-news.xml and https://shop.example.com/sitemap.xml. Only the first would have been found by guessing.

Search Console: the pages Google actually has

This is the only source that reports what is in the index and how much traffic each url gets, which makes it both a url source and a priority list. Export the pages report for the longest period available and you have the urls that would actually cost you something if they broke.

The limitation to plan around: the export in the interface caps at 1 000 rows. For a site with more indexed pages than that, the export is a sample of the best-performing urls rather than the full list — useful for prioritising, not sufficient as the url source on its own. The Search Console API returns up to 25 000 rows per request, which is the way to get past it.

Cross-check the export against the sitemap in both directions. Urls in Search Console that are not in the sitemap are usually orphans. Urls in the sitemap that Search Console never reports may simply not be indexed, which is a decision waiting to be made about whether they deserve a redirect at all.

EXAMPLE

the export returns exactly 1 000 rows — a reliable sign that you are looking at a cap rather than at a complete list.

Server logs: what is actually being requested

The access log is the only source that records requests nobody planned for. Filter for responses with status 200 over the last twelve months, strip out assets and bots, and you have a list that includes things no crawler and no sitemap will ever produce: pdf downloads, feed urls, endpoints that an old app still calls, campaign urls with parameters.

Twelve months is the useful window because seasonal pages — a christmas landing page, an annual report — only appear once a year and are exactly the kind of url that gets forgotten in a spring relaunch.

EXAMPLE

the log shows steady traffic to /downloads/datenblatt-2021.pdf from a supplier’s site. It is in no sitemap, no navigation and no crawl.

What if the old site is already offline?

It happens more often than it should: the domain gets switched over before anybody thinks about redirects, and there is nothing left to crawl. The urls still exist as records elsewhere.

  • the Wayback Machine — archived copies of the site, including, very often, /sitemap.xml and /robots.txt as they were. Fetch the archived sitemap and you have the old url list back.
  • Search Console — the old property keeps its data after the site goes down, so the page export still works.
  • the server logs — the hosting was usually still running last month even if the site was not.
  • the old cms — a database export or a backup that still holds the slug of every page.

Silentfrog has a mode for this: old site already offline? takes the old site’s pages from a sitemap file or a url list and crawls only the new site (when the old site is gone). Several sitemap files at once are fine, hreflang alternates inside them are read, and a sitemap index is rejected with a message rather than silently producing nothing — those referenced files cannot be fetched from a site that no longer answers, so you have to supply them yourself.

What it costs: a url list carries no titles and no headlines, so matching runs on the url alone. Expect more rows in needs review and read them rather than trusting them.

old site already offline

the old site is not crawled — its pages come from this list. upload the old sitemap.xml (several files at once are fine), a crawler or search console export, or paste the urls. paths like /blog/post work once the old domain is filled in above.

5 urls · https://acme-werkzeuge.de

a url list has no titles or headings, so matching runs on the url alone — expect more rows in the review bucket.

free up to 50 pages per site

the crawl form in offline mode: the old site field is empty, the uploaded sitemap.xml sits in the list field, and below it the tool reports how many urls it read and which domain it derived.

the crawl form in offline mode: the old site comes from an uploaded sitemap.xml, and only the new site is crawled.

EXAMPLE

the Wayback Machine has a capture of alte-domain.de/sitemap.xml from two months before the switch. Saving that one file recovers 900 urls that nobody had a record of.

Putting the sources together

The sources overlap, which is the point — you want the union, deduplicated on a normalized form of the url so that www., a trailing slash, index.html and case differences do not turn one page into four rows.

In Silentfrog the sitemap sources are read alongside the crawl by default, following sitemap indexes and unpacking .xml.gz, and you can paste or upload anything else on top: one url per line, or a csv with the url in the first column, so a crawler export, a Search Console export or a log extract goes in unchanged. Bare paths like /blog/post work too (starting a run). If the old site sits on an intranet or behind an ip allowlist, the desktop app reaches what your own machine reaches.

The last check comes after the map exists. Import the Search Console export as traffic data and the urls that get traffic but were never found by any source are listed separately, so they can be added as rows instead of being forgotten (traffic data). If that list is long, a source is missing.

traffic import

traffic data

import a search console page export (or any csv with a url column and a number column) to see which redirects actually matter — the table gets a clicks column you can sort by.

10 urls imported · 8 matched onto crawled pages

2 urls get traffic but were not found by the crawl — they still need a redirect.

  • /blog/werkstatt-tipps · 587 clicks
  • /produkte/wasserpumpenzange · 233 clicks

the traffic import panel after a search console export was read: how many rows were joined onto matches, and the list of urls that have clicks but were never found by the crawl.

the traffic import after a search console export: rows joined onto matches, and the urls with clicks that no source found.

EXAMPLE

crawl 1 100, sitemap 1 640, Search Console 1 000, logs 1 380. The union after normalisation is 1 890 urls — 790 more than the crawl found on its own.

In short

  • An orphan url is a live, indexed page nothing on your site links to any more — and a crawler cannot reach it.
  • Read robots.txt first: its Sitemap lines point at files, and hosts, you would not have guessed.
  • Follow sitemap indexes, unpack .xml.gz, and pick up hreflang alternates inside sitemap entries.
  • The Search Console page export caps at 1 000 rows in the interface; the api returns up to 25 000 per request.
  • Server logs are the only source for pdfs, feeds and seasonal campaign urls — use a twelve-month window.
  • If the site is already offline, the Wayback Machine usually still has its sitemap.xml.
  • Merge the sources on a normalized url, then check which trafficked urls no source found. A long list means one is missing.