Title: Slug-Free Permalinks &#8211; Simple ID-Based URLs
Author: Kodo
Published: <strong>March 29, 2026</strong>
Last modified: October 10, 2026

---

Search plugins

![](https://ps.w.org/slug-free-permalinks/assets/icon-256x256.png?rev=3521185)

# Slug-Free Permalinks – Simple ID-Based URLs

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

[Download](https://downloads.wordpress.org/plugin/slug-free-permalinks.1.7.0.zip)

 * [Details](https://srd.wordpress.org/plugins/slug-free-permalinks/#description)
 * [Reviews](https://srd.wordpress.org/plugins/slug-free-permalinks/#reviews)
 *  [Installation](https://srd.wordpress.org/plugins/slug-free-permalinks/#installation)
 * [Development](https://srd.wordpress.org/plugins/slug-free-permalinks/#developers)

 [Support](https://wordpress.org/support/plugin/slug-free-permalinks/)

## Description

Choosing a new slug for every post, term, or language version is extra URL design
work. Slug-Free Permalinks lets you move that work out of the publishing flow by
using an item’s ID in the permalink instead.

Select the public post types and taxonomies you want to change, choose a URL format,
and keep the rest of your site on its existing permalink structure. The plugin is
intentionally focused: it changes URL structure without adding content features 
or front-end UI.

### Why use ID-based permalinks?

 * Reduce the number of slug decisions and maintenance steps as your content grows.
 * Keep the URL pattern consistent even when titles, translations, or editorial 
   wording change.
 * Apply the change selectively instead of switching every post type at once.

You can choose between:

 * `/post/123/`
 * `/post-123/`

The plugin only affects the post types and taxonomies you enable in the settings
screen.

What you can configure:

 * Select individual public post types
 * Select individual public taxonomies
 * Use each selected type’s registered rewrite slug for the ID-based route
 * Choose slash or hyphen based ID permalink format
 * Optionally redirect legacy slug URLs to the current ID-based permalink when WordPress
   can resolve the request
 * Preserve Polylang language URLs using the language home URLs Polylang actually
   exposes
 * Flush rewrite rules automatically when settings change

### A focused, predictable change

Legacy slug redirects are optional and only run when WordPress can already resolve
the request. Slug-Free Permalinks does not guess at every 404, so it avoids turning
an ID-based permalink plugin into a site-wide slug lookup system.

The plugin is intended for new sites, structured-content sites, or projects that
are still defining a permalink policy.

If your site already has many established slug-based URLs, review existing inbound
links, search traffic, social shares, and editorial workflow assumptions before 
enabling it.

 * [Plugin page (English)](https://happas.jp/en/slug-free-permalinks/)
 * [Plugin page (Japanese)](https://happas.jp/slug-free-permalinks/)
 * [Development repository](https://github.com/1008k/slug-free-permalinks)

Slug-Free Permalinks is completely free to use. If you find it useful, you can [support the project on GitHub Sponsors](https://github.com/sponsors/1008k).

Known limitations:

 * The settings screen rejects selected post types or taxonomies with identical 
   registered rewrite slugs.
 * Only path prefixes exposed by Polylang language home URLs are registered as prefixed
   ID routes; arbitrary prefixes are not accepted.

## Screenshots

[⌊Settings screen for choosing the ID permalink format, target post types, target
taxonomies, and optional legacy redirect behavior.⌉⌊Settings screen for choosing
the ID permalink format, target post types, target taxonomies, and optional legacy
redirect behavior.⌉[

Settings screen for choosing the ID permalink format, target post types, target 
taxonomies, and optional legacy redirect behavior.

## Installation

 1. In the WordPress admin screen, go to `Plugins > Add New`.
 2. Search for `Slug-Free Permalinks`.
 3. Click `Install Now`, then activate the plugin.
 4. Go to `Settings > Slug-Free Permalinks`.
 5. Choose a permalink format.
 6. Check the post types and taxonomies you want to convert to ID-based permalinks.
 7. Optionally enable legacy permalink redirects.
 8. Save changes.

If you prefer manual installation, upload the plugin folder to `/wp-content/plugins/`
and activate it from the `Plugins` screen.

## FAQ

### Does this change every post type automatically?

No. Only the post types and taxonomies you check in the settings screen are affected.

### Does it redirect every old slug URL?

No. Slug-Free Permalinks avoids aggressive 404 slug guessing.
 Redirects only run
when WordPress can already resolve the request.

This keeps the plugin lightweight and predictable.

### Why not attempt slug lookups for every 404?

Performing slug lookups on every 404 can introduce unnecessary database queries 
and unpredictable behavior.

The plugin prioritizes performance and compatibility with WordPress routing.

### Does it support pages?

No. Pages are intentionally excluded to avoid conflicts with typical WordPress page
permalink structures.

### Does it support taxonomies too?

Yes. Public taxonomies with UI support can be switched to the same ID-based format.

### Can a post type and taxonomy share the same slug?

The settings screen rejects selected post types or taxonomies with identical registered
rewrite slugs, keeping the ID-based routes unambiguous.

### Does it work with Polylang or language-directory URLs such as `/en/`?

Yes. Polylang integration uses the language home URL returned by Polylang instead
of accepting arbitrary path prefixes.

For example, when Polylang exposes `/en/` as a language path, the plugin registers`/
en/post/123/` and `/en/category/45/` alongside the base routes. Domain-based or 
query-based language modes continue to use the URL returned by Polylang without 
inventing an extra path prefix.

### How can I deactivate the plugin without changing regular post URLs?

When regular posts are enabled, the settings screen shows the equivalent WordPress
Custom Structure for the current ID URL format. The displayed value follows the 
site’s current trailing-slash policy.

Copy that value to `Settings > Permalinks` before deactivating the plugin. Slug-
Free Permalinks does not change WordPress permalink settings automatically.

Custom post types and taxonomies have their own rewrite settings and need to be 
checked separately before deactivation.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Slug-Free Permalinks – Simple ID-Based URLs” is open source software. The following
people have contributed to this plugin.

Contributors

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

“Slug-Free Permalinks – Simple ID-Based URLs” has been translated into 1 locale.
Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/slug-free-permalinks/contributors)
for their contributions.

[Translate “Slug-Free Permalinks – Simple ID-Based URLs” into your language.](https://translate.wordpress.org/projects/wp-plugins/slug-free-permalinks)

### Interested in development?

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

## Changelog

#### 1.7.0

 * Improve target selection and guidance on the settings screen
 * Refine Polylang language-path handling for more predictable ID URLs

#### 1.6.0

 * Add pre-deactivation guidance for preserving regular post ID URLs
 * Reduce rewrite checks and permalink processing overhead

#### 1.5.1

 * Update compatibility metadata for WordPress 7.1
 * Improve CI and distribution validation

For the complete release history, see the [English changelog](https://happas.jp/en/slug-free-permalinks/).

## Meta

 *  Version **1.7.0**
 *  Last updated **4 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Dutch](https://nl.wordpress.org/plugins/slug-free-permalinks/) and [English (US)](https://wordpress.org/plugins/slug-free-permalinks/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/slug-free-permalinks)
 * Tags
 * [custom post types](https://srd.wordpress.org/plugins/tags/custom-post-types/)
   [permalinks](https://srd.wordpress.org/plugins/tags/permalinks/)[slugs](https://srd.wordpress.org/plugins/tags/slugs/)
   [taxonomy](https://srd.wordpress.org/plugins/tags/taxonomy/)[urls](https://srd.wordpress.org/plugins/tags/urls/)
 *  [Advanced View](https://srd.wordpress.org/plugins/slug-free-permalinks/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/slug-free-permalinks/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/slug-free-permalinks/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/slug-free-permalinks/)