Permalinks are the part of WordPress most people set once, ignore forever, and then panic over the day a URL breaks. They’re the permanent web addresses of your posts and pages — the /my-post-title/ in yoursite.com/my-post-title/ — and WordPress lets you choose their shape from a single settings screen. Choose well and you get clean, readable, link-worthy URLs. Choose badly, or change them carelessly later, and you can knock hundreds of pages offline in one click.
Here’s what makes this sneaky: WordPress won’t warn you. Save a new permalink structure and every existing URL on your site silently changes shape. The old addresses — the ones Google has indexed and other sites have linked to — now point at nothing. We watched exactly this happen on a site we took over: the previous developer had switched from /%postname%/ to a dated structure to “look more like a news site,” shipped it with no redirects, and spent the next month wondering why traffic fell off a cliff.
This guide covers what permalinks actually are, which structure to pick, how WordPress turns a pretty URL back into the right page, and how to change your structure later without setting your rankings on fire.
What a Permalink Actually Is
A permalink is the full, permanent URL that points to one specific piece of content — a post, a page, a category archive, an author archive. The word is short for “permanent link,” and that permanence is the whole point: once people bookmark it, link to it, or Google indexes it, the address is supposed to stay put.
WordPress builds these URLs from a structure you define under Settings › Permalinks. That structure is a template made of tags like %postname%, %category%, %year%, and %post_id%. When WordPress renders a link to a post, it fills those tags in with that post’s real values.
Out of the box, a fresh WordPress install uses the Plain setting, which produces URLs like yoursite.com/?p=123. That works, but it’s ugly, tells a reader nothing, and hands search engines zero keyword signal from the URL itself. Almost every site should change it.
A URL is one of the first things a person and a search engine read about a page. A descriptive slug like /wordpress-permalinks-guide/ is easier to trust, easier to share, and carries a clear keyword signal. Google’s own docs recommend URLs with words that are relevant to the page’s content over long strings of ID numbers and parameters.
The Structures WordPress Gives You
The Permalinks settings screen offers a handful of built-in options plus a custom field. Here’s what each one means and where it fits.
Post name — the one to pick
Set as /%postname%/, this produces yoursite.com/your-post-slug/. It’s short, human-readable, keyword-rich, and doesn’t lock your URLs to a date or a category that might change. For the vast majority of sites — blogs, small-business sites, portfolios, product pages — this is the right default. WordPress even notes on the settings screen that including the %postname% tag “makes links easy to understand, and can help your posts rank higher in search engines.”
Day and name / Month and name
These bake the publish date into the URL — /2026/07/21/your-post-slug/ for Day and name, or /2026/07/your-post-slug/ for Month and name. They made sense for high-volume news sites where the date is genuinely part of the story, but they carry a real cost. A dated URL signals “old” the moment the calendar turns, and if you ever update an evergreen post you’re stuck with a URL that says it’s from years ago. Skip these unless you’re actually running a dated news archive.
Numeric
Numeric structures like /archives/123 (using the %post_id% tag) are barely better than Plain — they’re stable but say nothing about the content. There’s rarely a good reason to choose them for a public content site.
Custom structure
The custom field lets you combine tags yourself. A common pattern is /%category%/%postname%/, which nests posts under their category. It reads nicely, but there’s a catch worth knowing before you commit: if you ever recategorize a post, its URL changes, and you’re back to breaking links. Plain /%postname%/ avoids that trap entirely, which is why we default to it on almost every build.
Plain — /?p=123 · default, avoid
Post name — /%postname%/ · recommended for most sites
Day and name — /2026/07/21/slug/ · news archives only
Numeric — /archives/123 · stable but meaningless
Custom — e.g. /%category%/%postname%/ · flexible, but recategorizing breaks URLs
How WordPress Turns a Pretty URL Back Into a Page
A URL like /wordpress-permalinks-guide/ doesn’t map to a real file on disk. There is no folder by that name. So how does the request find the right post? Through a translation layer WordPress calls the Rewrite API.
WordPress maintains a set of rewrite rules — regular expressions that match incoming URL patterns and hand the request off to the correct query. When a visitor asks for /wordpress-permalinks-guide/, the server routes that request into WordPress, the Rewrite API matches it against its rules, resolves it to “the post whose slug is wordpress-permalinks-guide,” and loads it. The pretty URL is a mask over a database query.
The Apache vs. nginx difference
On Apache, WordPress can write those rewrite rules into your .htaccess file automatically. When you save a non-plain permalink structure, WordPress attempts to update .htaccess in your site root — which is why that setting works out of the box on most shared hosts.
Nginx doesn’t read .htaccess at all. On nginx, pretty permalinks depend on a try_files directive in the server config that routes unknown paths to index.php, and that lives in the server block your host or you control. If you move a site to nginx and every URL except the homepage suddenly 404s, a missing try_files rule is almost always the reason.
Flushing rewrite rules
WordPress caches its rewrite rules in the database for speed. If you add a custom post type or taxonomy and its URLs return 404s, the rules are stale. The fix is to flush them, and the simplest way is to visit Settings › Permalinks and click Save Changes — you don’t even have to change anything. That save regenerates the rules. Developers can do the same programmatically with flush_rewrite_rules(), but call it on plugin activation, not on every page load, since it’s an expensive operation.
Changing Permalinks Without Wrecking Your SEO
This is where the real damage happens. If your site has been live for a while, its URLs are indexed by Google and linked from other sites. Change the structure and every one of those old URLs stops resolving. Visitors and crawlers hit 404s, the ranking equity those pages earned evaporates, and inbound links point at dead ends.
If you must change structure — and sometimes there’s a genuine reason, like escaping a dated format — the non-negotiable step is a set of 301 redirects mapping every old URL to its new one. A 301 is a permanent redirect: it sends visitors to the new address and tells search engines to transfer the old page’s ranking signals to it. Done right, a structure migration can be nearly invisible to your rankings. Done without redirects, it’s the traffic cliff from the intro.
1. Export a full list of current URLs (your sitemap is a good source).
2. Back up the database and files before touching the setting.
3. Change the permalink structure.
4. Add 301 redirects from every old URL to its new one.
5. Update internal links, then resubmit your sitemap in Search Console.
6. Watch coverage and 404 reports for a couple of weeks.
Editing a single slug is usually safe — before you publish
Changing your whole structure is the dangerous move. Editing one post’s slug in the editor before it’s ever published costs you nothing, because no one has linked to it yet. Editing the slug of a post that’s been live and indexed for months is a mini-migration of one URL — do it only when you have a reason, and set a 301 from the old slug to the new one when you do.
Keep slugs short and clean
When WordPress auto-generates a slug from your title, it often includes stop words and runs long. Trimming /10-tips-for-a-faster-and-more-secure-wordpress-website-in-2026/ down to /faster-secure-wordpress/ gives you a cleaner, more shareable URL that still carries the keywords that matter. Do this at draft time, before the post goes live and earns links against the longer version.
Frequently Asked Questions
Set your structure to Post name, keep your slugs short, and never change the structure on a live site without redirects. That one habit protects years of accumulated ranking equity.
Built by amplifi.studio — see also our WordPress 301 redirect guide.