All 18 Redirects sections
Changing your permalinks
Settings → Renamed pages → Keep old addresses working when the permalink structure changes.
Changing Settings → Permalinks is the biggest rename a site can make. Go from /%year%/%monthnum%/%postname%/ to /%postname%/ and every post has a new address at once, and every link to the old ones breaks. The same happens to every category when you change the category base, every tag when you change the tag base, and every product, product category and product tag when you change WooCommerce's product bases on that screen.
With this on, a visit to an old-style address that WordPress cannot find is sent to where that post, category or product lives now, with a permanent redirect. /2024/03/hello-world/ goes to /hello-world/, /product/blue-shirt/ to /shop/blue-shirt/, /category/news/ to /topics/news/. The redirect is saved in the list at the moment somebody first follows the old address, marked from a permalink change, with its hits, and from then on it is a redirect like any other: you can change, switch off or delete it, and renaming the post later moves it along, as a rename's redirect is moved (while Keep the old address working when a page is renamed is on). Addresses nobody follows get no redirect, so the list grows only by links people actually use.
How an old address is matched:
- By the post's ID where the old structure had
%post_id%, written exactly as WordPress wrote it, otherwise by its name. Every other part of the old address must then be true of that post: each date part must be the post's own date (in your site's time zone), a%category%part must be one of the post's categories, either its whole path as WordPress wrote it (news/local) or that category's slug alone (local), and an%author%part must be its author. So/2019/05/hello/never reaches a post called hello written in 2024. - A category, tag or product category by its whole path under the old base, parents and all, or its slug alone. Anything else put in front of a real slug, such as
/category/made-up/news/, is not an old address of it. - Only something published and public. An address that matches nothing, or more than one thing, stays "page not found" and appears on Broken links.
- Exactly the old address: one with more after it, such as
/feed/or/page/2/, is not followed. Neither are author, date or format archives.
Changes are remembered whatever the switch says, up to the last five, so switching it on later works for a change you have already made. The changes remembered are listed under the switch, whether it is on or off. Switching back to a structure you had before drops that change: WordPress answers those addresses itself again. A redirect this made for a post's address that belongs to the post again is deleted as you save the structure. For a category, tag or product base put back, that happens on the next wp-admin screen you open, which after saving is the Permalinks screen itself, or sooner if WordPress's scheduled tasks run first. After any change, the redirects made for renamed pages and for earlier permalink changes are pointed at the new addresses, so none of them becomes a chain of two.
Older structures, under the switch, is for a change you made before installing this: type the old structure as the Permalinks screen showed it, one per line, such as /%year%/%monthnum%/%postname%/. It works like a change that was remembered. It takes the Permalinks screen's own tags, and a line needs %postname% or %post_id%, since nothing else says which post it meant. It takes an old base too, written with the tag WordPress uses for it: /topics/%category%/ for a category base, /label/%post_tag%/ for a tag base, /shop/%product%/ for a WooCommerce product base. A line with a tag WordPress does not have is left out when you save, and the message names the tag. Five lines at most.
Pages are left out: WordPress gives a page the same address whatever the structure, unless the structure begins with index.php. So is a change from plain permalinks (?p=12), whose addresses go on working by themselves.
New installs have this on. On a site that had the plugin before it, it starts off, and the Dashboard asks once you change your permalinks: Turn on, or Not now, which leaves the old addresses as they are and asks again after your next change. Settings → Permalinks says the same right after you save there. Nothing about your visitors is stored.
Still stuck? Ask the developers who wrote it. We aim to reply within one business day.