WordPress permalinks are the permanent web addresses for your posts and pages. When someone clicks a link to one of your articles, or finds it in a Google result, the permalink is the URL that loads it. You control how every one of those addresses looks from a single screen inside your dashboard, and the choice you make there shapes how readable your links are and how well they do in search.
Most site owners never open this setting, and that turns into a problem in two ways. On a brand new install, the default option can hide your content behind a string of numbers that means nothing to a reader or a search engine. On an older site, changing the setting carelessly can break every link you have ever shared. Both outcomes are avoidable once you understand what the screen actually does.
This guide covers what permalinks are, the structures WordPress offers, which one works best for search, and how to change yours without wrecking the links you already have. It also walks through the fix for the most common problem people run into, permalinks that suddenly stop working and return a 404 error. By the end you will know exactly which option to pick and when to leave it alone.
What are WordPress permalinks?

A permalink is the full, permanent URL that points to one specific piece of content on your site, whether that is a blog post, a page, or a category archive. The word is short for permanent link, and the idea is that once you publish something, its address should stay the same forever so bookmarks, shared links, and search rankings keep working. Every post you write gets its own permalink the moment it goes live.
It helps to separate two terms that people mix up. The permalink is the whole address, something like yourdomain.com/wordpress-permalinks. The slug is only the last editable part, the wordpress-permalinks piece at the end. WordPress builds the slug automatically from your post title, and you can rewrite it by hand for any single post. The rest of the address comes from the structure you set once for the whole site.
WordPress can serve those addresses in two very different shapes. The first is what people call an ugly permalink, a URL like yourdomain.com/?p=123 where the number is the internal post ID. This one works, but it tells a reader nothing about the page, and it hands a search engine no clue about the topic. The second shape is a pretty permalink, a clean readable path like yourdomain.com/how-to-bake-bread that a person can read out loud and a search engine can parse for keywords.
Picture the difference from a reader’s side. A link that reads yourdomain.com/wordpress-permalinks tells them the page is about permalinks before they click, so they trust it and they remember it. A link that reads yourdomain.com/?p=487 tells them nothing, and it looks like the kind of address a cautious person hesitates to open. That small gap in trust shows up in how often people click your result in Google and how willing they are to paste your link into an email or a message.
Behind the scenes, pretty permalinks rely on your server rewriting requests. On Apache the rules live in your site’s .htaccess file, and on Nginx they sit in the server configuration. WordPress writes most of this for you when you save the setting, so you rarely touch the raw rules yourself. What matters is that a clean URL is more than cosmetic. It is easier to share, and it gives Google real words to work with instead of a meaningless ID.
What permalink structures can you choose in WordPress?

WordPress gives you six preset structures on one screen, found under Settings and then Permalinks in your dashboard. Each option lays out the parts of your URL in a different order, and the last one lets you build a fully custom pattern. Here is what each choice actually produces.
- Plain gives you yourdomain.com/?p=123, the raw post ID with no words. This is the fallback default and the weakest option for readers and for search.
- Day and name produces yourdomain.com/2026/08/10/sample-post, stamping the full publish date into every address.
- Month and name shortens that to yourdomain.com/2026/08/sample-post, keeping only the year and month.
- Numeric uses yourdomain.com/archives/123, which is tidier than Plain but still hides the topic behind a number.
- Post name gives you yourdomain.com/sample-post, just your slug with nothing extra in front of it.
- Custom Structure lets you combine tags like %category% and %postname% into any pattern you want.
Where you start from matters too. A fresh WordPress install usually defaults to the Plain structure, and many hosts flip a new site to a pretty structure automatically during setup. Neither state is fixed, so whatever your site shows today, the six options above are always one screen away, and switching between them takes a single click and a save.
The dated options exist for a reason. A news site that publishes many stories a day sometimes wants the date in the URL so readers and editors can tell old coverage from new. For almost everyone else, dates in the address are a liability. They make a genuinely useful article look stale two years later, and they push readers away from content that is still perfectly accurate.
The Custom Structure field is where the flexibility lives. WordPress supports structure tags that you slot together to build the path, and the common ones are %postname% for the slug, %category% for the post category, plus %year%, %monthnum%, %day%, and %post_id% for dated or numbered patterns. A blog that wants its category in the URL might use /%category%/%postname%/, which turns into yourdomain.com/recipes/how-to-bake-bread. You can mix these however you like, though most sites never need more than the post name on its own.
Which permalink structure is best for SEO?

For most WordPress sites the strongest structure for search is Post name, because it drops your keywords straight into the URL and keeps the whole address short and readable. Google has said for years that a clean, descriptive URL helps both its crawler and the person deciding whether to click. When your link reads yourdomain.com/wordpress-permalinks, a searcher knows what they will get before they even arrive.
A few habits make any structure work harder for you. Keep slugs short and focused on the main keyword, so cut filler words like a, the, and of when they add nothing. Use hyphens between words rather than underscores, since Google treats a hyphen as a space and an underscore as a joiner, which can blur two words into one. Keep everything lowercase to avoid duplicate-address issues on some servers. And skip the date-based options unless you run a genuine news operation.
Length is the habit people get wrong most often. A slug does not need to repeat your entire headline, it needs the two or three words someone would actually type into a search box. Take an article titled “The Complete Guide to Choosing the Best WordPress Hosting for a Small Business in 2026”. A slug of best-wordpress-hosting captures the search and stays clean, while the full-title slug runs long, wraps awkwardly in search results, and waters down the keywords that matter. Shorter and specific beats long and literal almost every time.
Adding your category to the URL is the one judgment call worth thinking about. On a large, well-organized site with clear sections, a pattern like /%category%/%postname%/ can add helpful context and group related content together. The trade-off is real though, because if you ever move a post to a different category, its URL changes and the old link breaks, so a category-based structure locks you into your taxonomy. For a small or growing blog, plain Post name stays flexible and avoids that trap entirely.
Whatever you choose, the goal is a URL a person could read to you over the phone. That single test rules out the numeric and plain options and usually lands you on Post name. If you want to go deeper on how URLs feed into rankings, our guide to WordPress SEO covers how structure, content, and links work together.
How do you change WordPress permalinks?

To change your site-wide structure, open your WordPress dashboard, go to Settings and then Permalinks, choose the option you want, and click Save Changes at the bottom. WordPress applies the new pattern right away and rewrites the underlying server rules for you. On most hosts the change takes effect the moment you save, with no further steps needed.
If you want to build a custom pattern, select the Custom Structure radio button first, then type your tags into the field beside it. For a category-plus-name setup you would enter /%category%/%postname%/, and for plain post names you can just click the Post name option instead of typing anything at all. The same screen also lets you set an optional category base and tag base, which change the /category/ and /tag/ prefixes on your archive pages if the defaults bother you.
Changing the slug of one individual post works in a different place. Open the post in the editor, find the URL or Permalink panel in the settings sidebar, and edit the slug field directly. This is where you fix an auto-generated slug that came out too long or included words you did not want. A post titled “10 Things I Learned Building My First Store” might auto-generate a slug with all ten words, and trimming it to building-your-first-store reads far better in a search result.
Two small things trip people up when they edit slugs. WordPress adds a trailing slash to most structures by default, and you want to keep that consistent rather than mixing addresses with and without one. And if you rename the slug of a post that is already live, treat it like a structure change and add a redirect from the old slug, because that single URL was probably shared or indexed under its original address.
One habit saves a lot of pain here. Set your structure once, right after you install WordPress and before you publish anything, then leave the global setting alone. Editing a single new post’s slug before it goes live is completely safe. Changing the whole structure on a site that already has published, indexed, and linked content is the risky move, and that is exactly what the next section is about.
Why are your permalinks not working, and how do you change them safely?

Permalinks usually break for one simple reason, WordPress has lost the rewrite rules that tell your server how to read pretty URLs, and the fix is almost always to re-save the setting. Go to Settings and then Permalinks and click Save Changes without altering anything. That single action flushes and rewrites the rules, and it clears the classic symptom where your homepage loads fine but every post returns a 404. This tends to happen right after moving a site to a new host or restoring a backup.
A couple of other culprits are worth ruling out before you dig deeper. A caching plugin or a CDN can keep serving the old broken response even after you fix the rules, so clear every cache once you re-save and test again in a private window. And if the errors started right after you activated a plugin or a theme that registers its own content types, that new code needs a rules flush to register its URLs, which the same Save Changes click takes care of for you.
If re-saving still does not help, the cause is usually your .htaccess file. WordPress needs to write to that file to store its rules, and if the file is not writable or got deleted, pretty permalinks stop working. You can fix the permissions or paste WordPress’s default rules back in by hand, and the same Permalinks screen shows you the exact block to copy when it cannot write it itself. Broken permalinks after migrating your WordPress site almost always trace back to this one file.
Changing your structure on an established site is a different kind of risk. The moment you switch the pattern, every old URL stops matching and starts returning a 404, which means lost visitors and lost search rankings on pages that took years to earn them. Google eventually re-crawls and updates its index, but without help it treats your old pages as gone and your new ones as brand new, so you throw away the authority those URLs had built up.
The safe way to change permalinks on a live site is to redirect the old addresses to the new ones with 301 redirects, which tell search engines the page moved permanently and pass most of its ranking value across. You can add these rules with a WordPress redirect plugin that maps each old path to its new home, and good SEO plugins can generate many of the redirects automatically when you change a slug. Map every important URL to its new home, then test a few by visiting the old links and confirm each one lands on the right page before you call the job done.
Set your URL structure once and leave it alone
Permalinks are one of those settings you touch once and then forget about, which is exactly how it should be. Pick Post name on a new site, edit individual slugs to keep them short and keyword-focused, and you have covered what matters for readers and for search. The whole decision takes about a minute on install day and saves you real trouble down the line.
If you have inherited a site running the plain or numeric structure, the move to Post name is worth making, but only with 301 redirects in place so you keep the rankings you already have. Map your old URLs and treat the switch like the small migration it really is. A clean, readable URL is a quiet advantage that compounds as your content library grows, and a solid internal linking strategy sits right alongside it. Get the structure right early, link your content well, and your URLs will keep working for you for years without another thought.
0 Comments on "WordPress Permalinks: Best Structure and How to Change Them"