Title: BKoding – Orphan Page Finder
Author: bkoding
Published: <strong>June 30, 2026</strong>
Last modified: June 30, 2026

---

Search plugins

![](https://ps.w.org/orphan-page-finder/assets/banner-772x250.png?rev=3591630)

![](https://ps.w.org/orphan-page-finder/assets/icon-256x256.png?rev=3591630)

# BKoding – Orphan Page Finder

 By [bkoding](https://profiles.wordpress.org/bkoding/)

[Download](https://downloads.wordpress.org/plugin/orphan-page-finder.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/orphan-page-finder/#description)
 * [Reviews](https://wordpress.org/plugins/orphan-page-finder/#reviews)
 *  [Installation](https://wordpress.org/plugins/orphan-page-finder/#installation)
 * [Development](https://wordpress.org/plugins/orphan-page-finder/#developers)

 [Support](https://wordpress.org/support/plugin/orphan-page-finder/)

## Description

**Orphan Page Finder** scans your entire WordPress site and surfaces every published
post, page, or custom post type that has _zero internal links_ pointing to it from
any other published content.

#### What is an orphan page?

An orphan page is a page that no other page on your site links to. Because search
engines primarily discover new pages by following links, orphan pages are often 
invisible to Google and other crawlers. Even if a page has great content, it may
never rank if nothing points to it.

#### Why does this hurt SEO?

 * **Crawlability** — Googlebot follows links to discover pages. An unlinked page
   may never be crawled or indexed.
 * **PageRank flow** — Internal links pass authority. Orphan pages receive none.
 * **User experience** — Visitors can only reach orphan pages via direct URL or 
   your sitemap, not through natural navigation.
 * **Wasted content investment** — Hours of writing go unread and unranked.

#### What does this plugin do?

 1. Scans all published posts, pages, and custom post types in a single pass.
 2. Searches all other published content for href links pointing to each page — including
    both absolute URLs and relative paths.
 3. Flags any page with zero inbound internal links as an **orphan**.
 4. Displays results in a clean dashboard table with post type, publish date, word 
    count, and status badges.
 5. Lets you **mark pages as “Intentional”** (e.g. landing pages you deliberately exclude
    from navigation) so they don’t clutter your fix list.
 6. Supports **bulk actions** — mark or unmark many posts at once.
 7. Works with Posts, Pages, and **any registered public Custom Post Type**.

#### Performance-friendly design

 * Scans all content in a single optimised query, then processes results in batches
   of 50 with micro-sleeps to avoid overloading shared hosting.
 * A transient flag prevents two simultaneous scans from running at once.
 * Stores results in a dedicated lightweight database table so you can filter and
   sort without re-scanning.

#### Premium features (coming soon)

 * **Scheduled auto-scan** — run weekly scans automatically via WP-Cron.
 * **Email alerts** — get notified by email when new orphan pages are discovered.
 * **Bulk link suggestions** — AI-powered suggestions for where to add internal 
   links.
 * **Multi-site support** — scan across an entire WordPress Multisite network.
 * **White-label PDF report** — export a branded PDF report for clients.

## Screenshots

[⌊The Orphan Page Finder dashboard with stats bar and results table.⌉⌊The Orphan
Page Finder dashboard with stats bar and results table.⌉[

The Orphan Page Finder dashboard with stats bar and results table.

[⌊Per-row actions — View, Edit, Mark Intentional.⌉⌊Per-row actions — View, Edit,
Mark Intentional.⌉[

Per-row actions — View, Edit, Mark Intentional.

[⌊Bulk action bar for marking many posts at once.⌉⌊Bulk action bar for marking many
posts at once.⌉[

Bulk action bar for marking many posts at once.

[⌊Empty state shown before the first scan.⌉⌊Empty state shown before the first scan
.⌉[

Empty state shown before the first scan.

## Installation

 1. Upload the `orphan-page-finder` folder to your `/wp-content/plugins/` directory,
    or install the plugin directly through the WordPress Plugins screen.
 2. Activate the plugin through the **Plugins** screen in WordPress.
 3. Navigate to **Tools  Orphan Pages**.
 4. Click **Scan Now** to run your first scan.
 5. Review the results table and start adding internal links to your orphan pages.

## FAQ

### How long does a scan take?

On most sites (under 500 posts) a scan completes in under 10 seconds. On very large
sites (10,000+ posts) it may take 1–2 minutes. The plugin processes posts in batches
with short pauses to avoid server timeout issues.

### Does the plugin check links in menus or widgets?

Version 1.0 checks links inside `post_content` of other published posts and pages.
Links in navigation menus, widgets, or theme templates are not counted. This is 
by design — content-level internal links are what matter most for SEO.

### What does “Mark as Intentional” mean?

Some pages are deliberately not linked from other content — for example, a paid 
landing page, a thank-you page, or a coming-soon page. Marking a page as “Intentional”
removes it from your action list without deleting the record, so you can focus on
pages that genuinely need fixing.

### Will running a scan affect my site’s performance?

The scan is a background admin operation and only runs when triggered by an admin
user. It uses batch processing with micro-sleeps to stay lightweight on shared hosting.
It does not affect the front end of your site.

### Does it work with custom post types?

Yes. Any post type registered as `public => true` is automatically included in the
scan.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“BKoding – Orphan Page Finder” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ bkoding ](https://profiles.wordpress.org/bkoding/)

[Translate “BKoding – Orphan Page Finder” into your language.](https://translate.wordpress.org/projects/wp-plugins/orphan-page-finder)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/orphan-page-finder/),
check out the [SVN repository](https://plugins.svn.wordpress.org/orphan-page-finder/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/orphan-page-finder/)
by [RSS](https://plugins.trac.wordpress.org/log/orphan-page-finder/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.1

 * Renamed all internal prefixes from `opf` to `bkopf` to meet WordPress.org uniqueness
   requirements.

#### 1.0.0

 * Initial release.
 * Full site scan for orphan posts, pages, and custom post types.
 * Results stored in a dedicated database table.
 * Filter by post type or show/hide intentionally marked pages.
 * Per-row Mark Intentional / Unmark actions (no page reload).
 * Bulk Mark / Unmark actions.
 * Scan-in-progress transient to prevent duplicate scans.
 * Premium hook stubs: bkopf_schedule_scan, bkopf_after_scan.
 * Full i18n support with .pot file.

## Meta

 *  Version **1.0.1**
 *  Last updated **20 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [internal links](https://wordpress.org/plugins/tags/internal-links/)[link building](https://wordpress.org/plugins/tags/link-building/)
   [orphan pages](https://wordpress.org/plugins/tags/orphan-pages/)[seo](https://wordpress.org/plugins/tags/seo/)
   [site audit](https://wordpress.org/plugins/tags/site-audit/)
 *  [Advanced View](https://wordpress.org/plugins/orphan-page-finder/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/orphan-page-finder/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/orphan-page-finder/reviews/)

## Contributors

 *   [ bkoding ](https://profiles.wordpress.org/bkoding/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/orphan-page-finder/)