WordPress Permalinks and 301 Redirects: How to Change URLs Without Losing Rankings

T
Tommy
10 min readNov 6, 2026Updated Nov 6, 2026
Low-angle view of a railway points switch where a single steel track splits and one branch curves away through gravel ballast in warm evening light

Your URL structure is one of the few SEO decisions that is easy to get wrong early and painful to fix later. Pick a poor WordPress permalink structure for SEO and every post you publish inherits it. Change it carelessly and you can break every indexed link on your site in a single click.

This guide covers the best permalink structure for blogs, how to change it safely, how to set up 301 redirects (plugin versus .htaccess), how to confirm in Google Search Console that everything worked, and the mistakes that cause lost rankings. It includes a pre-flight checklist and a rollback step.

Quick Answer: For most blogs, use the "Post name" structure (yoursite.com/post-name/). If you change an existing structure, back up first, map every old URL to its new one with a single-hop 301 redirect, then verify in Search Console.


A permalink is the permanent URL of a post, page or archive. WordPress builds it from the pattern you choose under Settings → Permalinks. The out-of-the-box "Plain" option produces addresses like yoursite.com/?p=123, which tell neither readers nor crawlers anything about the page.

Google's URL structure guidance recommends simple, readable URLs with descriptive words rather than long ID strings. URLs are a lightweight signal rather than a major ranking lever, so do not expect a rewrite to lift a page on its own. The real SEO value is stability: your URLs collect backlinks, bookmarks and index history, and that is exactly what you put at risk when you change them.


Here is how the built-in options compare:

StructureExampleVerdict for blogs
Plain/?p=123Avoid: no descriptive words
Day and name/2026/11/06/post-name/Avoid: long, dates content
Month and name/2026/11/post-name/Avoid for evergreen content
Numeric/archives/123Avoid: no keywords
Post name/post-name/Best default for most blogs
Custom/%category%/%postname%/Only with a stable category plan

Why "Post name" wins

It is short, readable and keyword-friendly. The slug comes straight from your title, so the words you already chose for your target keyword show up in the address bar, in shared links and in search snippets. It also avoids dates, which make a 2026 guide look stale in 2028.

When a custom structure makes sense

Adding %category% can help a large site with distinct sections, such as /recipes/chocolate-chip-cookies/. The catch is that the URL now depends on the category. Rename or move the category and every post URL under it changes. If you are still deciding how to organise topics, read our guide on WordPress categories vs tags first, then decide whether categories belong in your URLs at all.

Keep slugs short and clean

Whatever structure you pick, trim each slug to the essential keywords, use lowercase letters and hyphens, and drop filler words like "and", "the" or "of". Edit the slug before you publish: changing it afterwards is the same as changing the URL. For the title and description that sit next to your URL in the results, see how to write a meta title and meta description that get clicks.


Not always. If your site is new, or you are still on the Plain structure with little traffic, change it now while the cost is lowest. If an established site already ranks and has backlinks on a date-based or category-based structure, weigh the benefit honestly. Shorter URLs are a modest gain; a botched migration is a large loss. Change an established structure only when the current one causes a real problem, such as dated URLs hurting clicks on evergreen content or categories that keep changing.


Pre-Flight Checklist: Before You Change Anything

Work through this list before you touch the permalink setting:

  1. Take a full backup of files and database, and confirm it completed. Use your host's snapshot tool or a backup plugin.
  2. Export your current URL list from your XML sitemap or a crawler such as Screaming Frog (the free version covers up to 500 URLs).
  3. Note your top pages by clicks in Search Console (Performance → Pages) so you can compare before and after.
  4. Write the redirect pattern that maps old URLs to new ones, and test it on a staging copy if you have one.
  5. Check for existing redirects so you do not stack new rules on old ones and create chains.
  6. Pick a low-traffic window and make sure nobody else is editing the site.
  7. Plan to update internal links and your sitemap after the change.

  1. Go to Settings → Permalinks, select the new structure and click Save Changes. WordPress flushes its rewrite rules automatically.
  2. Right away, add your 301 redirects (next section). Between steps 1 and 2, old URLs return 404 errors, so do not leave a gap.
  3. Open several old URLs in a private window and confirm each lands on the right new page in one hop.
  4. Update internal links, menus and your sitemap so they point to the new URLs directly instead of relying on redirects.

WordPress can sometimes redirect a changed post URL on its own when the slug still matches, but do not rely on that. Treat explicit redirects as required.


Setting Up 301 Redirects: Plugin vs .htaccess

A 301 tells browsers and search engines that a page has moved permanently, and Google treats it as a strong signal to index the new URL. You have two practical ways to set one up.

Option 1: A redirect plugin

Plugins such as Redirection, or the redirect managers built into Rank Math and Yoast SEO Premium, let you add rules from the dashboard, support regular expressions and log 404s so you can spot missed URLs. This is the safer choice for most bloggers: no server files to break, and you can switch rules off in one click.

For a date-based to post-name migration, a single regex rule covers the whole site. In Redirection, use source ^/\d{4}/\d{2}/\d{2}/([^/]+)/?$ with the regex option ticked and target /$1/.

Option 2: The .htaccess file

On Apache hosting, you can add rules to .htaccess in your site root. They run before WordPress loads, so they are fast. Place them above the # BEGIN WordPress block:

RedirectMatch 301 ^/\d{4}/\d{2}/\d{2}/([^/]+)/?$ /$1/

This sends /2026/11/06/my-post/ to /my-post/. Always keep a copy of the original file, because one typo can take the whole site down with a 500 error. On Nginx hosts .htaccess is ignored, so use a plugin or ask your host to add the rule to the server config.

Which should you choose?

Use a plugin unless you are comfortable editing server files or you need maximum speed on a very large site. Do not run the same rule in both places, since that is a common source of chains and loops.


How to Check the Change in Google Search Console

Redirects that look right in a browser can still fail at scale, so verify in Google Search Console:

  • URL Inspection: paste an old URL and a new URL. Run a live test to confirm the new page is indexable and Google can reach it.
  • Sitemaps: submit your updated sitemap so Google discovers the new URLs faster.
  • Pages (Indexing) report: watch for growth in "Not found (404)", "Page with redirect" and "Duplicate" entries over the following weeks.
  • Performance report: compare clicks and impressions for your top pages against the numbers you noted in the pre-flight checklist.

Expect some fluctuation while Google recrawls. Large sites can take weeks, so keep your redirects in place long term, ideally for at least a year and preferably permanently. The Change of Address tool is only for moving to a new domain, so you do not need it for a permalink change.


Common Permalink and Redirect Mistakes

Redirect chains

A chain happens when URL A redirects to B, which redirects to C. This usually appears after a second permalink change or when old rules stay active. Chains slow pages, waste crawl budget, and add failure points. Google follows a limited number of hops, so long chains risk pages not being processed at all. Fix them by pointing every old URL directly to its final destination, and audit with a crawler after each change.

Redirecting everything to the homepage

Bulk-redirecting old URLs to the homepage looks tidy but is treated like a soft 404 in many cases. Send each old URL to its closest equivalent page.

Category base problems

By default, category archives live under /category/. You can change or remove this prefix in the "Category base" field on the Permalinks screen, or with an SEO plugin. Remember that this changes every category archive URL, so old archive links need 301 redirects too, and removing the base can cause slug clashes if a category and a page share a name.

Other mistakes to avoid

  • Dates in evergreen URLs, which make useful content look outdated.
  • Uppercase letters or trailing-slash inconsistency, which create duplicate variants.
  • Forgetting internal links so your own pages keep sending visitors through redirects.
  • Changing slugs on published posts without adding a redirect.
  • Using a 302 instead of a 301 for a permanent move.

If you are tidying up more than URLs, our guide to content gap analysis for your blog shows where to focus after the migration settles.


Rollback: What to Do If Something Goes Wrong

If traffic collapses or pages return errors, act in this order:

  1. Disable the new redirect rules first. If you set the permalinks back while redirects are still live, you can create redirect loops.
  2. Restore the previous permalink structure in Settings → Permalinks and save.
  3. If the site is broken (500 errors, missing content), restore the backup you took in the pre-flight step, or the original .htaccess copy.
  4. Re-test your old URLs, resubmit the sitemap, and diagnose the redirect pattern on a staging copy before trying again.

Because Google indexes gradually, a quick rollback within hours or a day usually leaves little lasting impact. Waiting weeks makes recovery harder.


Frequently Asked Questions

What is the best permalink structure for WordPress SEO?
For most blogs it is "Post name" (/post-name/): short, readable and free of dates.

Will changing permalinks hurt my rankings?
It can if old URLs are not redirected. With correct single-hop 301 redirects, most sites see only temporary fluctuation while Google recrawls.

Is a plugin or .htaccess better for 301 redirects?
A plugin is safer and easier to undo for most site owners. .htaccess is faster and fine if you are comfortable editing server files on Apache.

How long should I keep 301 redirects?
At least a year, but ideally permanently, since backlinks and bookmarks to the old URLs never expire.

Can I remove the category base from my URLs?
Yes, but it changes all category archive URLs, so add redirects and check for slug conflicts.

Do I need the Change of Address tool?
No. It is only for moving to a different domain, not for changing permalinks on the same site.


Conclusion

A clean permalink structure is easiest to set once, early. If you must change an established one, the safe sequence is: back up, map old to new, switch the structure, redirect immediately, verify in Search Console, and keep your rollback ready.

Key takeaways:

  • "Post name" is the best default permalink structure for most blogs.
  • Only change an established structure when the benefit clearly outweighs the risk.
  • Use single-hop 301 redirects and avoid chains and homepage dumps.
  • Prefer a plugin for redirects unless you are confident editing .htaccess.
  • Verify in Search Console and keep a tested rollback plan.

Open Settings → Permalinks today, check your current structure, and run through the pre-flight checklist before you change anything. For help planning and publishing SEO content on a steady schedule, explore the blog tools at a-stats.app.