An orphan page is a URL that no other page on your site links to. It exists, it's in your sitemap, Google can find it, but nothing inside your site endorses it. Orphan pages typically rank poorly because they have zero internal link equity, and they accumulate over time as sites grow. This guide walks through identifying orphans, deciding which to keep, building proper inbound links, and preventing future orphans from being created.
The Site Crawler identifies orphans by comparing what it can reach by crawling internal links against your declared sitemap.xml. Pages in the sitemap that the crawl never reaches are orphans.
sitemap.xml against what it found. URLs in the sitemap but not reached are orphans.
Don't make a global decision. Each orphan is a separate keep-or-delete call based on its traffic potential and strategic role.
| Signal | Decision |
|---|---|
| Has Search Console impressions or clicks last 90 days | KEEP — build inbound links |
| Has external backlinks (Search Console Links report) | KEEP — build inbound links and amplify |
| Zero traffic, zero backlinks, no strategic role | DELETE — 410 Gone |
| Zero traffic but related content exists | 301 REDIRECT to related content |
| Deliberate landing page (campaign, PPC, partner) | KEEP — exclude from sitemap; no-index if appropriate |
site:yourdomain.com [topic] in Google) or your CMS search to find pages about related topics.
For orphans with backlinks but no strategic role, 301 to the closest related live page. Set up via:
# WordPress: Redirection plugin, add rule # nginx: rewrite ^/old-orphan/$ /new-target/ permanent; # Apache: Redirect 301 /old-orphan/ /new-target/ # Shopify: Online Store > Navigation > URL Redirects
For orphans with zero traffic and zero links, 410 is cleaner than 404. It tells Google the removal is intentional, and Google processes 410s faster than 404s.
# nginx
location = /old-orphan/ {
return 410;
}
# Apache .htaccess
Redirect 410 /old-orphan/
Then remove the URL from sitemap.xml to stop Google re-discovering it.