Title: Duplicate Title Validator
Author: hasan movahed
Published: <strong>8 oktobra, 2014</strong>
Last modified: 18 junija, 2026

---

Search plugins

![](https://ps.w.org/duplicate-title-validate/assets/banner-772x250.png?rev=3577035)

![](https://ps.w.org/duplicate-title-validate/assets/icon-128x128.png?rev=3207980)

# Duplicate Title Validator

 By [hasan movahed](https://profiles.wordpress.org/wallfa_hm/)

[Download](https://downloads.wordpress.org/plugin/duplicate-title-validate.1.8.zip)

 * [Details](https://sl.wordpress.org/plugins/duplicate-title-validate/#description)
 * [Reviews](https://sl.wordpress.org/plugins/duplicate-title-validate/#reviews)
 *  [Installation](https://sl.wordpress.org/plugins/duplicate-title-validate/#installation)
 * [Development](https://sl.wordpress.org/plugins/duplicate-title-validate/#developers)

 [Support](https://wordpress.org/support/plugin/duplicate-title-validate/)

## Description

**Duplicate Title Validator** is a robust WordPress plugin designed to ensure the
uniqueness of post titles across all post types and taxonomies. By preventing duplicate
titles, this plugin enhances both SEO and user experience. Whether you use Gutenberg
or the Classic Editor, it seamlessly integrates to maintain title uniqueness.

### Key Features

 * **Comprehensive Duplicate Detection:** Scans selected post types (including custom
   ones) and taxonomies to identify duplicate titles. Case-insensitive comparison
   catches duplicates regardless of capitalisation.
 * **Post Type Selection:** Choose which post types are included in duplicate title
   checking from the settings page.
 * **Gutenberg Publish Lock:** In the block editor, the Publish button is fully 
   disabled when a duplicate title is detected, with a pre-publish warning panel
   showing the conflicting titles.
 * **Classic Editor Protection:** Automatically saves posts with duplicate titles
   as drafts to prevent accidental publishing, with a dismissible admin notice.
 * **Forbidden Words Filter:** Define a list of words or phrases that must not appear
   in post titles. Choose to block publishing entirely or show a warning while allowing
   publishing.
 * **Admin Email Notifications:** Configure one or more admin email addresses to
   receive an alert whenever a post with a duplicate title is published. Includes
   5-minute throttling to prevent spam.
 * **Duplicate Title Report:** A dedicated report page lists all published posts
   with duplicate titles, grouped by title, with direct edit links.
 * **Real-time Similar Titles:** As you type a title, a live list of similar existing
   titles appears below the input field in both editors.
 * **Dashboard Widget:** A dedicated widget on the WordPress dashboard identifies
   similar or potentially duplicate titles using cosine similarity, with colour-
   coded scores and direct edit links.
 * **Redesigned Settings Page:** A clean, card-based settings UI with toggle switches,
   inline field descriptions, and a test email button.
 * **Result Caching:** Dashboard widget results are cached for one hour to avoid
   performance issues on large sites.
 * **Mobile Optimised:** All admin pages and widgets are fully responsive at the
   782px WordPress mobile breakpoint.
 * **Localization Support:** Fully translated into 6 languages – English, Persian,
   Spanish, Portuguese (Brazil), German, and Arabic – with support for adding more.

### New in Version 1.8

 * **Forbidden Words Filter:** Block publishing or show a warning when a post title
   contains configured words or phrases. Integrated into both Gutenberg and the 
   Classic Editor.
 * **Admin Email Notifications:** Notify one or more admins when a duplicate title
   is published. Configurable email list with a Send Test Email button. 5-minute
   throttling prevents notification spam.
 * **Post Type Selection:** Choose which post types are checked for duplicate titles.
   Leave all unchecked to check all public post types.
 * **Duplicate Title Report Page:** A new submenu page lists all published posts
   with duplicate titles, grouped by title, with post type badges and direct edit
   links.
 * **Case-insensitive Comparison:** Duplicate detection now uses LOWER() in SQL 
   so “Hello” and “hello” are treated as the same title.
 * **Mobile Optimisation:** Settings page, report page, and dashboard widget are
   now fully responsive.
 * **Bug Fixes:** Fixed WooCommerce notice disappearing too quickly, fixed similar
   titles box hiding on exact duplicate match, fixed pair_key duplication bug in
   dashboard widget, fixed textdomain loading timing.
 * **All Language Files Updated:** All 5 translations (fa_IR, ar, de_DE, es_ES, 
   pt_BR) updated with all new strings.

### Supported Languages

This plugin ships with built-in translations. No extra installation required – activate
the plugin and set your WordPress language.

 * English (en_US) – Built-in
 * Persian / فارسی (fa_IR) – Complete
 * Spanish / Español (es_ES) – Complete
 * Portuguese Brazil / Português (pt_BR) – Complete
 * German / Deutsch (de_DE) – Complete
 * Arabic / العربية (ar) – Complete

Want to add your language? Translate the `.pot` file in the `languages/` folder 
using [Poedit](https://poedit.net/) and send the `.po` and `.mo` files to hasan.
mova@gmail.com.

### Translators

 * **Persian (fa_IR):** [Hasan Movahed](http://www.tazechin.com/)
 * **Spanish (es_ES):** Hasan Movahed
 * **Portuguese Brazil (pt_BR):** Hasan Movahed
 * **German (de_DE):** Hasan Movahed
 * **Arabic (ar):** Hasan Movahed

### Special Thanks

A heartfelt thank you to **May** for her generous financial support – you believed
in this project when it needed it most and kept it alive. This plugin exists because
of your kindness. Thank you.

### Support & Donations

This plugin is free and open-source, built and maintained entirely in spare time.
If it saves you time or helps your site stay organised, please consider supporting
its development.

Every contribution, no matter how small, helps keep this project alive and growing.

To send a donation or get in touch: hasan.mova@gmail.com

### License

This plugin is licensed under the GPLv2 or later license.

### Contributing

Contributions are welcome! Fork the repository and submit a pull request. Ensure
your code adheres to WordPress coding standards.

### Support Forum

For assistance, visit the [WordPress.org support forum](https://wordpress.org/support/plugin/duplicate-title-validator).

## Screenshots

[⌊Settings page - General Settings, Post Type selection, Forbidden Words, Email 
Notifications, and Dashboard Widget configuration.⌉⌊Settings page - General Settings,
Post Type selection, Forbidden Words, Email Notifications, and Dashboard Widget 
configuration.⌉[

Settings page – General Settings, Post Type selection, Forbidden Words, Email Notifications,
and Dashboard Widget configuration.

[⌊Duplicate Title Report page - all published posts with duplicate titles grouped
by title, with post type badges and direct edit links.⌉⌊Duplicate Title Report page-
all published posts with duplicate titles grouped by title, with post type badges
and direct edit links.⌉[

Duplicate Title Report page – all published posts with duplicate titles grouped 
by title, with post type badges and direct edit links.

[⌊Gutenberg block editor showing a duplicate title warning banner when a conflicting
title is detected.⌉⌊Gutenberg block editor showing a duplicate title warning banner
when a conflicting title is detected.⌉[

Gutenberg block editor showing a duplicate title warning banner when a conflicting
title is detected.

## Installation

### Steps to Install the Plugin

 1. **Upload the Plugin:**
 2.  * Upload the `duplicate-title-validate` folder to the `/wp-content/plugins/` directory.
 3. **Activate the Plugin:**
 4.  * Go to **Plugins > Installed Plugins** in your WordPress dashboard.
     * Locate **Duplicate Title Validator** and click **Activate**.
 5. **Configure Settings (Optional):**
 6.  * Navigate to **Duplicate Title Validator > Settings** in the WordPress admin 
       menu to adjust the plugin settings.

## FAQ

### Does this plugin support custom post types and taxonomies?

Yes, it checks for duplicate titles across all registered post types and taxonomies,
including custom ones. You can also limit checking to specific post types from the
Settings page.

### What happens in Gutenberg when a duplicate title is detected?

The Publish button is locked via the official `lockPostSaving` API and a warning
panel appears in the pre-publish checklist listing all conflicting titles. The lock
is released as soon as the title is changed to a unique one.

### What happens in the Classic Editor?

The post is saved as a draft instead of being published, and an admin notice is 
displayed explaining the duplication source.

### Can I allow duplicate titles if I need to?

Yes. Go to **Duplicate Title Validator > Settings** and enable “Allow Duplicate 
Titles.” In Gutenberg this shows a dismissible warning instead of blocking publishing.

### What are Forbidden Words?

You can define a list of words or phrases that must not appear in post titles. In
Block mode, publishing is prevented entirely. In Warn mode, a notice is shown but
the post can still be published.

### How do admin email notifications work?

Enter one or more admin email addresses in the Settings page. Whenever a post with
a duplicate title transitions to “published”, the configured admins receive an email
alert. A 5-minute throttle per post prevents duplicate notifications.

### Is duplicate title detection case-sensitive?

No. Comparison uses LOWER() in the database query, so “Hello”, “hello”, and “HELLO”
are all treated as the same title.

### Can I translate this plugin into other languages?

Absolutely. The plugin is translation-ready with a `.pot` file in the `languages/`
folder. Create `.po` and `.mo` files using [Poedit](https://poedit.net/) and place
them in the `languages/` directory.

### Does the plugin affect site performance?

The plugin is optimised for performance. Dashboard widget results are cached for
one hour. On very large sites, the similarity scan limit can be reduced in the settings.
Duplicate checking queries are lightweight and indexed.

### How do I update the plugin?

Updates can be done directly via the WordPress dashboard. Always back up your site
before updating.

## Reviews

![](https://secure.gravatar.com/avatar/250559df2e8b8b3f872efda84d750c3f46b7d7045e53fbdba161885fa94e7aa5?
s=60&d=retro&r=g)

### 󠀁[Is it compatible with 4.2.2Hi,](https://wordpress.org/support/topic/is-it-compatible-with-4-2-2hi/)󠁿

 [iasgharalikhan](https://profiles.wordpress.org/iasgharalikhan/) 8 februarja, 2017

Hi I really want this plugin, But before that I need some information about it..
Does it work well with 4.2.4? And how does it verify the title everytime its entered?
Does it send a query to check all the post titles each time? And if that is the 
case. Doesnt that slow down the database and the website?

 [ Read all 4 reviews ](https://wordpress.org/support/plugin/duplicate-title-validate/reviews/)

## Contributors & Developers

“Duplicate Title Validator” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ hasan movahed ](https://profiles.wordpress.org/wallfa_hm/)

“Duplicate Title Validator” has been translated into 1 locale. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/duplicate-title-validate/contributors)
for their contributions.

[Translate “Duplicate Title Validator” into your language.](https://translate.wordpress.org/projects/wp-plugins/duplicate-title-validate)

### Interested in development?

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

## Changelog

### 1.8

 * **New:** Forbidden words/phrases filter – block publishing or show a warning 
   when a title contains configured words. Integrated into Gutenberg (lockPostSaving)
   and Classic Editor (AJAX + server-side).
 * **New:** Admin email notifications – notify one or more admins when a duplicate
   title is published, with 5-minute transient throttling to prevent spam.
 * **New:** Post type selection – choose which post types are included in duplicate
   title checking from the settings page.
 * **New:** Duplicate Title Report submenu page – lists all published posts with
   duplicate titles grouped by title, with post type badges and edit links.
 * **New:** Send Test Email button on the settings page to verify mail server configuration.
 * **New:** Case-insensitive duplicate detection using LOWER() in SQL queries.
 * **Fix:** WooCommerce duplicate notice was disappearing too quickly – removed 
   premature transient deletion so it persists for 60 seconds.
 * **Fix:** Similar titles box was hiding when the user typed an exact duplicate
   title – removed the erroneous exact-match filter from get_matching_titles().
 * **Fix:** pair_key bug in dashboard widget causing the same similar-title pair
   to appear twice – replaced min/max logic with sort() on full ID|type strings.
 * **Fix:** load_plugin_textdomain was called inside a plugins_loaded callback hooked
   from init, which meant it never fired – changed to a direct call in the constructor.
 * **Fix:** Removed em dashes from all UI strings for better cross-font compatibility.
 * **Mobile:** Settings page, report page, and dashboard widget are fully responsive
   at the 782px WordPress admin breakpoint.
 * **i18n:** All 5 language files (fa_IR, ar, de_DE, es_ES, pt_BR) updated with 
   all new strings from v1.8.

### 1.7

 * **New:** Gutenberg Publish button fully locked via `lockPostSaving` when a duplicate
   title is detected and “Allow Duplicate Titles” is off.
 * **New:** Pre-publish panel in the block editor showing conflicting titles and
   a clear explanation.
 * **New:** Colour-coded meta box result panel in the block editor sidebar (red 
   for duplicates, green for clean).
 * **New:** Completely redesigned settings page with a card-based UI, dark header,
   and toggle switches.
 * **New:** Completely redesigned dashboard widget with similarity score badges 
   and grouped title cards.
 * **New:** Donation and support section added to both the settings page and the
   dashboard widget.
 * **New:** Added full translations for Spanish (es_ES), Portuguese Brazil (pt_BR),
   German (de_DE), and Arabic (ar).
 * **Fix:** Corrected `load_plugin_textdomain` path (was pointing to `inc/languages`
   instead of `languages`).
 * **Fix:** Fixed wrong text domain `'textdomain'` in `class-title_checker.php`.
 * **Fix:** Replaced flawed `strpos`-based similar title filter with a direct equality
   check.
 * **Fix:** Removed duplicate `wp-plugins` entry from Gutenberg script dependencies.
 * **Fix:** Added `sanitize_text_field()` and `absint()` to Gutenberg REST API request
   handlers.
 * **Fix:** Removed unused `/check-titles` REST API endpoint.
 * **Fix:** Dashboard widget now checks for `WP_Error` return from `get_terms()`.
 * **Fix:** Removed `error_log()` calls from production code.
 * **Performance:** Dashboard widget results cached with a one-hour transient.
 * **Performance:** Duplicate pair tracking in similarity scan avoids redundant 
   comparisons.

### 1.6

 * Restructured plugin architecture for better performance and maintainability.
 * Added a dashboard widget to identify and manage similar titles.
 * Introduced a feature to display previously used titles.
 * Improved compatibility with Gutenberg and Classic Editor.
 * Enhanced localization support for English and Persian.

### 1.5

 * Standardization based on the structure required by WordPress support.

### 1.4

 * Enhanced taxonomy duplication checks.
 * Improved localization support for Persian.
 * Refined error message clarity.
 * Optimized performance for larger datasets.

### 1.3

 * Refactored plugin structure to object-oriented.
 * Added comprehensive taxonomy support.
 * Improved compatibility with WordPress updates.

### 1.2

 * Introduced localization.
 * Enhanced duplication source identification.

### 1.1

 * Improved handling of complex REST API responses.
 * Enhanced Classic Editor support.

### 1.0

 * Launched with core functionality for duplicate title detection.

## Meta

 *  Version **1.8**
 *  Last updated **2 tedna ago**
 *  Active installations **300+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/duplicate-title-validate/) in [Persian](https://fa.wordpress.org/plugins/duplicate-title-validate/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/duplicate-title-validate)
 * Tags
 * [duplicate](https://sl.wordpress.org/plugins/tags/duplicate/)[duplicate checker](https://sl.wordpress.org/plugins/tags/duplicate-checker/)
   [localization](https://sl.wordpress.org/plugins/tags/localization/)[taxonomy](https://sl.wordpress.org/plugins/tags/taxonomy/)
   [title](https://sl.wordpress.org/plugins/tags/title/)
 *  [Advanced View](https://sl.wordpress.org/plugins/duplicate-title-validate/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  4 5-star reviews     ](https://wordpress.org/support/plugin/duplicate-title-validate/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/duplicate-title-validate/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/duplicate-title-validate/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/duplicate-title-validate/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/duplicate-title-validate/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/duplicate-title-validate/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/duplicate-title-validate/reviews/)

## Contributors

 *   [ hasan movahed ](https://profiles.wordpress.org/wallfa_hm/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/duplicate-title-validate/)