Permalink
The permanent URL assigned to each page, post, or content item on a WordPress site.
A permalink is the full URL that points to a specific piece of content on your WordPress site. Unlike temporary links that might change when you reorganize your site, permalinks are meant to stay the same forever — that’s the “permanent” part. Every post, page, category archive, and tag archive gets one.
Out of the box, WordPress gives you ugly permalinks like https://yoursite.com/?p=123. You almost certainly want to change that.
How It Works
WordPress uses rewrite rules to translate clean URLs into database queries behind the scenes. When someone visits https://yoursite.com/best-managed-hosting/, WordPress maps that URL back to the right post using rules stored in your .htaccess file (Apache) or your Nginx config.
You control the permalink structure in Settings → Permalinks. WordPress offers several built-in patterns:
| Structure | Example URL |
|---|---|
| Plain | ?p=123 |
| Day and name | /2026/04/13/best-managed-hosting/ |
| Month and name | /2026/04/best-managed-hosting/ |
| Post name | /best-managed-hosting/ |
| Custom | Whatever you build |
Most sites should use Post name (/%postname%/). It’s clean, readable, and good for SEO.
If you need a custom structure — say, for a site with heavy category organization — you can build one with structure tags:
/%category%/%postname%/
That gives you URLs like https://yoursite.com/hosting/best-managed-hosting/.
You can also override the permalink for any individual post by editing its slug in the post editor. The slug is just the last segment of the URL. So if your post title is “The 10 Best Managed WordPress Hosting Providers in 2026,” you’d probably shorten the slug to best-managed-hosting.
The gotcha here is that changing your permalink structure after your site has been live for a while will break every existing URL unless you set up 301 redirects. I’ve seen sites tank their search traffic overnight because someone switched from /%year%/%postname%/ to /%postname%/ without redirects. Search engines had hundreds of indexed URLs that all suddenly returned 404s.
Common Use Cases
Setting up a new site. The very first thing I do after a fresh WordPress install is switch permalinks to Post name. Do this before you publish anything and you’ll never have to deal with redirect headaches.
Fixing a slow site with date-based URLs. If you inherited a site using /2024/03/15/post-name/, there’s no performance reason to change it. But if the dates make old content look stale, switching to /%postname%/ with proper redirects can help click-through rates from search results.
Building a custom post type with its own URL base. When you register a custom post type, you set its rewrite slug. A portfolio CPT might use /work/%postname%/. This is configured in the CPT registration code, not the Permalinks settings page — but you still need to flush rewrite rules by visiting Settings → Permalinks and clicking Save.
Troubleshooting 404 errors on posts. In my experience, about half the “all my posts are 404” support tickets come down to broken rewrite rules. The fix is almost always: go to Settings → Permalinks and hit Save Changes without changing anything. That forces WordPress to regenerate the .htaccess rules.
Why It Matters
Permalinks directly affect three things you care about: SEO, user experience, and long-term maintainability.
Search engines use your URL structure as a ranking signal. A URL like /best-managed-hosting/ tells Google what the page is about. A URL like /?p=123 tells it nothing.
Users share and bookmark URLs. Clean permalinks build trust — people are more likely to click a readable link than a string of query parameters.
And here’s the part most people skip: once search engines and other sites link to your URLs, those permalinks become load-bearing. Changing them without redirects breaks inbound links, destroys link equity you’ve built over years, and sends visitors to dead pages. Pick a good structure early, keep your slugs short and descriptive, and you won’t have to think about this again.