by WPX Plugin · version 2.8.0
WPX Remove Duplicate Post — Documentation
IntroductionRequirementsInstallation
DashboardFind & Remove DuplicatesSettingsLicense & PRO
How Detection WorksDeletion & SafetySchedulingNotificationsAdmin Notices
Data & PrivacyFAQTroubleshootingSupport
Documentation · Version 2.8.0
Find posts with duplicate titles, review them on a live dashboard, and clean them up manually or automatically — always keeping the original post safe.
WPX PluginDeveloper
PHP 7.4+Minimum version
Free & PROLicensing model
WPX Remove Duplicate Post is a WordPress plugin that scans your site for posts, pages, or any public custom post type entries that share an identical title, and gives you a safe, guided way to clean them up. It never guesses which copy to keep — the oldest post in every duplicate group is always treated as the original and is never selected for removal, whether you're cleaning up manually or on an automatic schedule.
The plugin is organized into four screens, reachable from the Duplicate Posts menu in your WordPress admin sidebar: Dashboard, Find & Remove, Settings, and License.
RequirementDetailsWordPress5.0 or laterPHP7.4 or higherDatabaseStandard WordPress database — no custom tables are createdUser capabilitymanage_options is required to access any plugin screenWP-CronMust be enabled and firing regularly for scheduled auto-run, the weekly digest, and daily license checksOutbound HTTPSRequired to bestplugintheme.com for license activation and to your Slack webhook if Slack notifications are enabledEmail deliverywp_mail() must be working (via host mail or an SMTP plugin) if email notifications are enabled
No Composer packages, external PHP extensions, or JavaScript frameworks are required — the plugin is built entirely on core WordPress APIs.
To update the plugin, deactivate and delete the old version, then repeat the upload steps with the new zip. Your settings, license, and activity history are stored in the WordPress options table and are not affected by reinstalling the plugin files.
The Dashboard is the plugin's home screen and gives you a live snapshot of your site's duplicate-content status.
A dark banner at the top shows a health-score ring — the percentage of your published posts that are not flagged as removable duplicates — alongside the total number of published posts scanned.
A bar chart shows how duplicates are distributed across your site's post types, so you can see at a glance whether the problem is concentrated in Posts, Pages, or a custom post type.
A log of the most recent cleanup runs (both manual and automatic), showing the date, run type, post types involved, and how many duplicates were removed in that run.
This screen is where you manually review and clean up duplicate content, one post type at a time — choose the post type from the dropdown at the top to switch what's being scanned.
Each group of posts sharing the same title is shown in its own table, listing the post ID, title, date, status, and an edit link for each copy. The oldest post in the group is marked as the original with a checkmark and cannot be selected — every other row has a checkbox so you can choose exactly which duplicates to remove.
Use Select all duplicates to quickly check every removable duplicate across every group on the page, while leaving all originals untouched.
Once you've made your selection, submitting the form deletes the checked posts according to your current delete mode — Trash by default, or permanently if PRO is active and Permanent Delete is selected in Settings. A confirmation dialog always appears before anything is deleted.
The Settings screen has three sections: Schedule, Deletion, and Notifications.
Controls automatic cleanup runs:
These fields are visible to everyone but only interactive with an active PRO license — without one, auto-run always stays off, no matter what's shown or previously saved.
A choice between two delete modes, shown as radio buttons:
This setting applies consistently everywhere posts are deleted: manual bulk-delete, Run Now, and every scheduled auto-run.
Optional summaries of cleanup activity, available on both Free and PRO:
Per-run notifications only fire when a run actually deleted something. The weekly digest sends on its own schedule regardless of activity, summarizing what happened over the past week plus what's currently outstanding — so you know the plugin is still working even during quiet weeks.
The License screen manages your PRO license key and this site's data-sharing preference.
Paste your license key into the field and click Activate License. Once active, the screen shows the license status, when it was last checked, and a Deactivate License option that frees up the activation for use on another site.
Don't have a key yet? Click Buy Now (in the top bar, or the PRO unlock banner on this screen) to purchase one from the product page.
Exactly two features are gated behind a license: Scheduled auto-cleanup and Permanent delete mode. Everything else — the dashboard, manual review and cleanup, notifications, and telemetry — is available for free.
Your license is checked daily in the background. If it lapses, the plugin doesn't break — scheduling simply stops running and delete mode falls back to Trash automatically, everywhere, including for any setting that was previously saved as "permanent."
Separately from licensing, you can choose whether to share this site's admin email so WPX Plugin can reach out if something needs your attention. This is asked once via a dismissible notice and can be changed at any time from radio buttons on this screen — it defaults to not sharing until you explicitly opt in.
Two post titles are considered duplicates if they match after normalization: HTML entities are decoded, tags are stripped, surrounding and repeated whitespace is collapsed, and the comparison is case-insensitive. Only published posts are scanned by default.
Within each matching group, posts are sorted by publish date — the single oldest post is always the protected original, regardless of which screen or automation triggered the scan.
A few safeguards apply no matter how a deletion is triggered:
Scheduled auto-cleanup runs on WordPress's built-in cron system (WP-Cron), which is triggered by site visits rather than a true system clock. On low-traffic sites, the actual run time may drift slightly from what's configured.
Saving a weekly or monthly schedule locks in the day of week or day of month based on when you save the setting — for example, saving a weekly schedule on a Tuesday will repeat every Tuesday going forward.
Use Run Now on the Dashboard at any time to trigger an immediate cleanup using the same post types configured here, without waiting for or affecting the schedule.
Notifications are independent of PRO and available to every user. They cover two situations:
Both can be delivered by email, Slack, or both at once, depending on what's enabled in Settings.
Whenever duplicates currently exist on your site, a dismissible warning notice appears across the WordPress admin (except on the plugin's own screens, where the same information is already visible) with a direct link to review them. Dismissing it hides it for 24 hours for that admin user, after which it reappears if duplicates are still present.
A one-time notice asks whether to share this site's admin email. It only appears once, and the choice can always be revisited later from the License screen.
The plugin automatically shares basic install information — domain, plugin version, plan (free/PRO), WordPress and PHP version, multisite status, and site language — so that installs can be tracked for licensing and support purposes. No prompt is shown for this, as it's covered under the site's existing terms of use.
The one piece of data that is never sent without explicit, revocable consent is the site's admin email address, which is opt-in only and can be turned on or off at any time from the License screen.
No. The oldest post in every duplicate group is automatically protected and can never be selected for deletion, regardless of which cleanup method is used.
Yes, if it was moved to Trash (the default) — restore it from the Trash like any other WordPress post. Permanent deletion, which skips Trash, is an optional PRO feature that always requires explicit confirmation before use.
Yes. Any public post type registered on your site — not just the default Post type — can be scanned and cleaned up.
Scheduled auto-runs stop firing, and any delete mode previously set to Permanent Delete automatically falls back to Trash. No duplicates are deleted unexpectedly, and nothing needs to be manually reconfigured — reactivating your license restores the previous behavior.
No. Scans run on-demand or via WP-Cron, and the plugin adds no measurable overhead to normal front-end site performance.
Confirm WP-Cron is enabled and the site receives regular visits, since WP-Cron only runs on page loads. Also confirm your PRO license is active — scheduling silently stays off without one.
Confirm wp_mail() is working on your host — many hosts block PHP's default mail function, so an SMTP plugin is often required for reliable delivery.
Double-check the Incoming Webhook URL was copied correctly and that outbound HTTPS requests aren't being blocked by your hosting provider's firewall.
This option requires an active PRO license. Activate one from the License screen to unlock it.
Only published posts are scanned by default, and titles must match exactly after normalization (case and whitespace are ignored, but the wording itself must be identical).
Confirm the key was copied without extra spaces, and that your server allows outbound HTTPS requests to bestplugintheme.com.
For help with WPX Remove Duplicate Post, or to explore other WPX Plugin products, visit wpxplugin.com. To purchase or manage a PRO license, visit the product page.
WPX Remove Duplicate Post — a WPX Plugin product · Documentation v2.8.0