On a WPML or other multilingual site, Slugs Manager: Delete Old Permalinks from WordPress Database treats each translation as a separate post. Old slugs from every language appear together in the Old Slugs table at WPFactory > Slugs Manager. Back up first, and remove them per post rather than all at once.
What Slugs Manager scans #
Slugs Manager reads the standard WordPress _wp_old_slug post meta for every post. Translated posts in WPML are still WordPress posts, so when a translated post’s slug changes, its old slug is stored the same way and appears in the Old Slugs table, listed by post ID. The table shows the post ID and current slug for each entry, so you can see exactly which post each old slug belongs to.
Slugs Manager has no language filter or WPML-specific handling: every language’s old slugs are listed together, one row per old slug, with the columns Old Slug, Post ID, Post Title, Post Type and Current Slug. The Post ID links to the post’s edit screen, where WPML shows its language, and the title links to the live post.
What each removal option deletes #
| Option | What it removes | Free/Pro |
|---|---|---|
| Remove selected old slugs | All old slugs of each ticked post, in that post’s language only | Free |
| Remove all old slugs | Every old slug in every language | Free |
| Scheduled Clean Ups | Every old slug in every language, on each run | Pro |
| Clean Up on Save Post | The saved post’s old slugs, each time a post or translation is saved | Pro |
Because each translation is its own post, removing old slugs for one language never touches the other translations, unless you use the “all” or scheduled options.
Clean up safely on a multilingual site #
- Back up first. Create a full database backup before any bulk removal. Do not skip this on a live multilingual site.
- Test on staging. Clone the site and run the clean up there first, then confirm every language still resolves before repeating on production.
- Remove by post where possible. Use Remove selected old slugs and tick only the rows for the posts you intend to change, rather than Remove all old slugs, until you are confident about the effect on each language. Ticking one row removes all old slugs of that post, not just that row.
- Keep redirects for URLs that still matter. Removing an old slug removes the WordPress redirect for that URL. If an old translated URL still gets traffic, set up a 301 redirect first.
FAQ #
Can I remove old slugs for one language only? #
Not with a single filter. Tick the rows whose Post ID belongs to that language and use Remove selected old slugs.
Should I turn on Clean Up on Save Post on a WPML site? #
Only if you do not need old URLs to redirect. Each time you rename and save a translation, its old slug is deleted straight away, so WordPress can no longer redirect the old translated URL to the new one.
Does Slugs Manager change translated term or category slugs? #
No. It only works with post old slugs. See does Slugs Manager handle taxonomy slugs.
Related: automatically delete old slugs and what Slugs Manager does.
Need help with a specific case? #
If a translated post’s old slug behaves unexpectedly, our team answers every ticket on the Slugs Manager support forum. Share the post ID, the old slug, and the language so we can advise.
