Not everyone publishing with WordPress pays attention to slugs. If you leave them to the defaults, URLs can gradually become inconsistent: some use English, others use the original title, and non-Latin slugs can turn into long encoded strings when shared.
Manually choosing a tidy slug for every post solves part of that problem, but adds another task to the publishing process.
I built Slug-Free Permalinks to take that routine decision out of the publishing workflow. It lets selected WordPress post types and taxonomies use predictable ID-based permalink formats instead of title-based slugs.
The plugin is available directly from the WordPress.org plugin directory.
Spend less time naming URLs
An ID-based route such as /post/123/ stays consistent regardless of how you edit a post title. You can choose between two formats:
- Slash style:
/post/123/ - Hyphen style:
/post-123/
The route uses the registered rewrite slug for the selected post type or taxonomy. You can enable public custom post types and taxonomies individually rather than changing every URL on the site.
WordPress Pages are deliberately excluded, leaving their hierarchical permalink structures alone.
Install from WordPress
You no longer need to download a ZIP file from GitHub.
- In the WordPress admin, go to Plugins > Add New, search for
Slug-Free Permalinks, and install and activate it. - Open Settings > Slug-Free Permalinks.
- Choose the slash or hyphen format and select the post types and taxonomies you want to change.
- Optionally enable redirects for legacy slug URLs, then save.
The plugin refreshes rewrite rules when you change its settings.
What to consider before switching existing URLs
The simplest time to adopt ID-based permalinks is when launching a new site or defining its URL policy. On established sites, review inbound links, search traffic, previously shared URLs, and any integrations that assume the current structure.
The optional legacy redirect feature is intentionally limited: it redirects when WordPress can already resolve the old request. It does not search for possible slugs on every 404.
To avoid ambiguous routes, the settings screen rejects a combination of post types or taxonomies that share the same registered rewrite slug.
The plugin supports Polylang language URLs. When Polylang exposes /en/ as a language path, for example, the plugin can register /en/post/123/. Compatibility with other multilingual plugins is not guaranteed.
Check your permalinks before deactivating
If regular posts use ID-based routes, deactivating the plugin without preparation may change their URLs.
The settings screen shows the equivalent WordPress Custom Structure for the current ID format. To preserve regular post URLs, copy that structure to Settings > Permalinks before deactivation. Custom post types and taxonomies have separate rewrite settings and should be reviewed individually.
A focused choice for predictable publishing
Descriptive slugs can still make sense, especially when a site already depends on them. But for projects where editorial consistency matters more than hand-crafted URLs, an ID-based format can remove repetitive maintenance.
Slug-Free Permalinks does just that, for the content types you select, without adding unrelated content or front-end features. It is completely free to use.
Slug-Free Permalinks on WordPress.org
For source code, issues, and development history, see the GitHub repository.





