Home / Blog / How to fix orphan pages in WordPress
Guide
How to fix orphan pages in WordPress
A page with no links pointing to it is invisible to search engines. On WordPress, it is surprisingly easy to publish that page and forget it.
An orphan page is a post or page you published on WordPress that nothing on your site links to. No menu, no sidebar, no related-posts block, nothing. To a reader arriving from Google it looks like any other page. To a search engine crawler, it might as well not exist, because there is no path leading to it.
This is one of the highest-return SEO fixes available, precisely because the page already exists and likely contains good content — it is just stranded. Here is how to fix orphan pages in WordPress, and how to keep new ones from piling up.
What makes a page orphaned in WordPress
WordPress makes it trivial to publish a page without linking to it anywhere. You write a post, hit Publish, and it goes live. The page gets a URL. But unless you link to it from your homepage, a menu, a related-posts section, or another post, nothing on your site points to it.
When search engines crawl your site, they follow links from page to page, like readers might. A crawler lands on your homepage, reads the links there, and follows them to find more pages. A page with no incoming links is invisible from that map. It might be indexed eventually (if Google finds it another way, like through an XML sitemap), but it will not be crawled often, and it will struggle to rank because it has no incoming link authority. This is the core problem internal linking for SEO solves: connecting every page to the crawlable map so it can be found and ranked.
Orphan pages are especially common after a WordPress migration or redesign. You move all your posts, but a few old ones never get linked in the new site structure. They exist in the database. They are publicly accessible. But they are unreachable from the navigation.
How to find orphan pages in WordPress
You cannot fix what you cannot see. There are three main approaches to finding orphan pages, each with different trade-offs.
Google Search Console
Google Search Console has a Links report that shows which pages have internal links. Export your indexed pages from the Coverage report, then cross-reference the Links data: any page with 0 inbound internal links is orphaned. This works best for sites with <500 indexed pages, where hand-audit is feasible.
Screaming Frog or another desktop crawler
Tools like Screaming Frog crawl your entire site (500+ pages feasible) and map the link graph. Filter the export for pages with 0 inbound links. This gives precise crawlable structure but requires separate Google Search Console cross-check to know which orphans actually register in search visibility. Screaming Frog indexes 10K+ URLs on the paid tier.
A dedicated tool like recto
A tool built for this purpose ranks orphans by search visibility, saving auditing time. recto crawls your WordPress site, pulls Google Search Console data, and ranks orphan pages by search impressions. Pages with 5–50 monthly impressions (almost ranking) float to the top — the highest-ROI orphans to fix 1st.
How to fix orphan pages manually in WordPress
For <20 orphans, manual fixing is the fastest path.
Step 1: Choose a source page
Pick a relevant, authoritative page on your site to link from. If you are fixing a post about WordPress caching, link it from a page about WordPress performance optimization. The source page should be well-linked itself, so the destination gets authority. A link from your homepage or a popular guide carries more weight than a link from a page no one reads.
Step 2: Write a natural anchor
Open the source post in the WordPress Block Editor. Find a sentence where the link fits naturally. Highlight a phrase (2–5 words) describing the orphan page's topic. This is critical: anchor text must read as part of the original prose, not appended. For full instructions on adding internal links in WordPress, see our step-by-step guide.
Step 3: Add the link
With text selected, press Ctrl+K (Windows) or Cmd+K (Mac). Paste the orphan page's URL. WordPress auto-suggests pages matching your text. Select the target and press Enter.
Step 4: Verify and publish
Preview the post. Update it. Then — this is the step most people skip — navigate to the published page in your browser and click the link. Edge caches, security plugins, or syntax errors can strip links between the Block Editor and live page.
How to fix orphan pages programmatically in WordPress
For 20+ orphans, the WordPress REST API lets you batch-add links programmatically, eliminating manual repetition.
Prerequisites
You need:
- WordPress 5.6+ with REST API enabled (default).
- Application Passwords enabled (Settings → General, or via host).
- A script (Python, Node.js, or cURL) that POSTs to your site.
The workflow
The basic pattern is:
- Fetch the post you want to link from via REST (its ID and current HTML).
- Inject a link into the post content at the right location.
- POST the updated content back to the REST endpoint.
- Fetch the live page again to verify the link actually landed.
Here is a sketch in cURL:
```bash # Authenticate and fetch the post curl -s -H "Authorization: Basic $(echo user:password | base64)" \ https://yoursite.com/wp-json/wp/v2/posts/123 \ > post.json
# Update post.json to inject the link (in your script)
# POST it back curl -X POST -H "Authorization: Basic $(echo user:password | base64)" \ -H "Content-Type: application/json" \ -d @post.json \ https://yoursite.com/wp-json/wp/v2/posts/123
# Verify the change landed curl -s https://yoursite.com/my-post-slug/ | grep "orphan-page-url" ```
Full reference: WordPress REST API Posts. The advantage: batch-fix 50+ orphans without opening the Block Editor repeatedly.
This mirrors recto's workflow: find orphan, select source, locate an existing phrase, inject via REST, verify the link landed. recto automates discovery + ranking, so you approve links instead of finding them manually.
Why verifying the link is critical
After publishing, re-fetch the page and confirm the link exists. This step is often skipped but catches real failures:
- Edge cache stale data: Serving 2–24 hours of old HTML; link appears broken when it's cached.
- Plugin conflicts: Security or performance plugins strip
<a>tags as spam. - REST request errors: Syntax errors publish garbled posts the editor hides.
- Draft-vs-live: Link published to draft revision instead of published post.
Verification via browser click or curl | grep takes 30 seconds and prevents weeks of invisible failures.
How to prevent orphan pages in your WordPress workflow
Prevent new orphans with 4 practices:
Link on publish: Before hitting Publish, add ≥1 internal link from a relevant existing post. 1 inbound link minimum.
Use related-posts plugins: Auto-suggest plugins like WordPress Related Posts give every post ≥1 link. Lower quality than hand-chosen but prevent isolation.
Navigation + sitemap: Pages in your menu or XML Sitemap are not fully orphaned, even without editorial links. Weaker than direct links but beats zero.
Quarterly audits: Run orphan reports every 3 months. Most sites re-accumulate orphans after content sprees. Early audits catch them before aging impacts rankings.
Tools for the job
Standard tools for orphans:
Google Search Console: Free, real search data, built-in. Manual cross-ref required; no urgency ranking.
Screaming Frog: Powerful link-graph crawl (10K+ URL capacity). Requires desktop app; no live search-visibility tie-in.
Link Whisper / SEMrush Writing Assistant: WordPress dashboard plugins. Good <500 URL sites. AI anchor-rewriting + monthly fees ($10–40/mo).
recto: Built for this task. Ranks orphans by Google Search Console impressions, auto-selects source page, injects anchor from existing prose via REST, verifies live. One-time payment; no AI rewriting.
Quick recap
Orphan pages rank poorly because no site links to them. They spike after WordPress migrations or redesigns. Find them with Google Search Console, Screaming Frog, or a dedicated tool. Fix them manually (<20 orphans) or via REST API (20+ orphans): pick a relevant source, write natural anchor, verify it landed. Prevent new orphans by linking on publish + auditing every 3 months. 1 well-placed link can move an orphan from invisible to ranking in 1 crawl cycle—some of the highest-ROI SEO work available.
Sources
- Google requires crawlable links to discover and index pages — developers.google.com
- WordPress REST API allows programmatic creation and editing of posts — developer.wordpress.org
- Google Search Console Links report shows which pages have internal links — support.google.com