How to Allow Duplicate Slugs in WordPress?

WordPress prevents duplicate slugs by automatically adding numeric suffixes to your URLs. When you create a second page titled "Contact", WordPress changes its permalink, creating awkward URLs such as "contact-2".

Permalink Manager does not alter WordPress’s native slugs. It creates its own permalink layer, so you can use the same slug for multiple pages and categories' custom permalinks without breaking the native slug system.

The plugin works by dynamically overwriting original URLs everywhere on your site's front-end, in menus, sitemaps, and canonical tags, while keeping the native slugs intact in the database for compatibility.

Example URLs with duplicated slugs

How WordPress Handles Duplicate Slugs

When you publish a post, page, or taxonomy term, WordPress creates a slug from the title. The slug is the part of the URL that identifies the item, for example (for "About us" page):

https://example.com/about-us/

WordPress requires each slug to be unique within the same content type and hierarchy. If a slug is already in use, WordPress handles this inside wp_unique_post_slug() function and adds a number at the end inside, e.g.:

  1. First page titled "About us"about-us
  2. Second page titled "About us"about-us-2
  3. Third page titled "About us"about-us-3

This can be frustrating when you want to use the same title for multiple child pages or subcategories that belong to different parent items. You may want to use the same slug for e.g.:

  • Hierarchical structures
    Child pages under different parents, for example /marketing/contact/ and /sales/contact/.
  • Multilingual sites
    Similar pages in different languages, such as /en/contact/ and/ /fr/contact/ when using WPML or Polylang.

The Mapping Process

When a visitor goes to e.g. https://example.com/about-us/, WordPress processes the request and extracts the slug (about-us). Using its rewrite rules, it determines which content type the URL matches and performs a database query based on that slug.

If multiple pages used the same slug (post_name), the query would return more than one result and WordPress could not determine which of them should be displayed.

To prevent this, WordPress requires each slug to be unique so that every single URL always points to a single page. Without this, WordPress would need to analyze other URL parts, such as categories or parent pages, to decide which item to display.

This would increase DB query complexity and reduce performance. Enforcing a unique slug avoids that overhead and allows to parse the URLs using a single, efficient query.

Permalink Manager does not modify WordPress’s built-in slugs. Instead, it lets you define custom permalinks while keeping the slugs intact. It overwrites original URLs with custom permalinks that you can adjust freely.

If you do not modify the plugin settings, the original slug is used also for new custom permalinks. You can remove numeric suffixes like "-2" from these URLs by choosing one of two available solutions.

  1. You can manually remove the numerals appended to the individual permalinks.
  2. You can make Permalink Manager use the actual titles instead of native slugs in the custom permalinks.

Method 1: Manually Remove Numeric Suffixes

The easiest way to duplicate the slug is to remove the numerals directly in the content editor when changing the permalink. This method works well if you only need to update a few URLs, but it can take longer if your site has many pages using the same slug.

Current URI
Duplicated post: You can make the custom permalink completely different. It means that, you can reuse the original slug (hello-world) even if the native slug is different (hello-world-2).
Sample permalinks with slug duplicates
You can also duplicate the slugs in Bulk URI Editor.

Method 2: Use Titles Instead of Slugs Automatically

Instead of adjusting each permalink by hand, you can make the process much faster. To simplify it, enable “Use actual titles as slugs (Force custom slugs)” under "Slugs mode" in the plugin settings.

Use actual titles as slugs

This changes how the plugin generates new custom permalinks for all content types. When enabled, Permalink Manager will always use the actual title (eg. “Shoes“) instead of the native slug (eg. “shoes-2“) in the custom permalink.

Existing URLs
To apply the modifications to existing URLs, you must "regenerate" them using "Regenerate/reset" tool.

If you prefer not to apply this globally, you can adjust the slug mode for selected post types or taxonomies by replacing default tags like %product% or %product_cat% with %native_title%:

Native title

Troubleshooting

Why Is WordPress Adding a “-2” to the Slug Even Though the Page Doesn’t Exist?

If you try to use a specific slug, such as /services/, but WordPress changes it to /services-2/ even though no other post or page uses that slug, it means the original slug is already "reserved" in the database. This usually happens in one of two cases:

  1. Trashed Pages and Posts
    When you move a post or page to the Trash, WordPress does not delete it immediately from the database. It remains there for 30 days (by default) so you can restore it if needed. Even though it is not "live", the slug (post_name) is still kept in the wp_posts table.
  2. Media Attachments Using the Same Slug
    Every image or file you upload to the Media Library is treated as an attachment (built-in post type) and gets its own entry in the wp_posts table just like posts and pages. To fix it, you must find the image in the Media Library and either change its slug or remove it to "unlock" the slug.

Permalink Manager can detect permalinks with duplicated slugs because it uses a custom algorithm to detect the URLs. Shortly, it checks the full URL address instead of the native slug (part of URL). Hence, the slugs can be reused, but still you need to make sure that the full URL address is unique.

Duplicated permalink alert in URI Editor
If your new custom permalink is not unique, a duplicate notice will appear below the input area.

Concurrently, you can always check if any of custom permalinks is duplicated in "Permalink Duplicates" section. To display it, please go to “Tools -> Permalink Manager -> Tools -> Permalink Duplicates” admin page.

"Permalink Duplicates" section

Last updated by Maciej Bis on: January 18, 2026.


Maciej BisFounder of Permalink Manager & WordPress Developer

The developer behind Permalink Manager, a plugin for managing permalinks, has been working with WordPress, creating custom plugins and themes, for more than a decade.

Go up