Permalinks are the URLs of your posts and pages. WordPress lets you choose their structure once and changing it later breaks every existing link. Most new blogs accept the default and never look. The default isn’t always wrong, but it isn’t always right either.
What permalinks are
Every post and page has a URL. The “permalink” is the structure WordPress uses to generate that URL.
Default: yoursite.com/?p=123 (post ID).
“Post name”: yoursite.com/how-to-back-up-wordpress/ (slug).
“Day and name”: yoursite.com/2026/05/19/how-to-back-up-wordpress/.
“Custom”: you define your own structure with placeholders.
Where to find the setting
Settings → Permalinks.
WordPress offers preset options plus a custom field.
The recommended structure
For 95% of blogs: “Post name”.
URL example: yoursite.com/how-to-back-up-wordpress/
Why post name is right
- Short. URLs are easy to share and remember.
- Keyword-bearing. The post slug is right there, which helps SEO.
- Date-agnostic. Posts don’t look “old” because of a 2023 date in the URL.
- Flexible. You can move posts between categories without URL changes.
Why other structures are worse
Date-based (Day and name, Month and name)
URL: yoursite.com/2026/05/19/post-name/
Why it’s bad:
- Posts look dated just from the URL. Hurts evergreen posts.
- Longer URLs.
- Changing the date later (e.g., updating a post) doesn’t update the URL by default.
Works for: news sites where dates matter for context. Otherwise no.
Category-based
URL: yoursite.com/category/post-name/
Why it’s bad:
- If a post belongs to two categories, you have to pick one.
- Reorganizing categories breaks URLs.
- Longer URLs.
Works for: blogs with strict, never-changing category hierarchy. Rare.
Numeric / Plain
URL: yoursite.com/?p=123
Why it’s bad:
- No keyword in URL.
- Ugly.
- Doesn’t help users or search engines understand what the post is about.
Works for: nothing. Always use a readable structure.
Custom with category
URL: yoursite.com/blog/post-name/
Adding “blog” before everything is fine but adds length. Some sites do it to separate blog content from pages. If your structure benefits from it, fine. Otherwise unnecessary.
What goes in a good post slug
Once you’ve set permalinks to “Post name,” each post’s slug becomes part of the URL.
Slug best practices
- Short. 3–6 words ideal. Under 10 always.
- Includes the primary keyword. Helps SEO.
- No stop words. Drop “a,” “the,” “of,” “is” when possible without losing meaning.
- Hyphens between words. Not underscores.
- Lowercase only.
- No special characters. Only letters, numbers, hyphens.
- No dates that will age. Don’t put “2026” in the slug unless the post is explicitly about 2026.
Examples
- Title: “How to Back Up a WordPress Blog (Without Losing Anything)”
- Default slug: how-to-back-up-a-wordpress-blog-without-losing-anything
- Better slug: back-up-wordpress-blog
WordPress auto-generates slugs from titles. Always edit before publishing to make them short and keyword-focused.
The “don’t change permalinks after launch” rule
If you change your permalink structure after posts exist:
- Every existing URL breaks.
- Every backlink to your site points to a 404.
- Search rankings drop.
- Bookmarks fail.
This is one of the most damaging mistakes you can make.
If you absolutely must change permalink structure, set up comprehensive 301 redirects from old URLs to new ones using a redirect plugin (Redirection, Rank Math redirects, etc.). Better: don’t change.
Changing a single post’s slug
Different from changing structure. Changing an individual post’s slug:
- Breaks just that one post’s old URL.
- If the post had backlinks or shares, you need a 301 redirect from old slug to new.
The Redirection plugin (free) is good for this. Set up the redirect, then change the slug.
If a post has minimal traffic and no backlinks, you can change the slug without much risk. For established posts, set up the redirect first.
Category and tag URLs
Your permalink structure also affects category and tag archive URLs. Defaults:
- Categories:
yoursite.com/category/category-name/ - Tags:
yoursite.com/tag/tag-name/
You can change the prefix in Settings → Permalinks → Optional. Common changes:
- Category base: change “category” to “topic” or remove entirely.
- Tag base: change “tag” to “topics” or similar.
Most bloggers leave defaults. Changing these can complicate things and offers minimal benefit.
Custom post types and their permalinks
If you use custom post types (recipes, portfolios, courses), they have their own permalink structure.
Usually yoursite.com/post-type/post-name/.
Some plugins let you customize. For SEO, having a clear post type prefix is fine and often helpful.
The “trailing slash” question
URLs can end with / or without. WordPress defaults to ending with /.
It doesn’t really matter as long as you’re consistent. The default (with trailing slash) is fine.
The “www” vs non-“www” question
Two URL forms: www.yoursite.com or just yoursite.com.
WordPress treats these as different. Pick one.
Settings → General → set your “WordPress Address” and “Site Address” to the one you want.
If you switch later, set up 301 redirects via Cloudflare or .htaccess.
No SEO advantage either way. Pick what looks right to you.
HTTP vs HTTPS
Always HTTPS. Settings → General → set URLs to start with https://.
If your site loads on both, set up a redirect from HTTP to HTTPS at the server or Cloudflare level.
The honest summary
Set permalinks to “Post name” structure. Edit each post’s slug to be short, keyword-bearing, and hyphenated. Don’t change permalink structure after launch — it breaks everything. Use 301 redirects when changing individual slugs. Pick www or non-www, HTTPS, and trailing-slash format and stay consistent. The whole permalink decision happens once; getting it right at launch saves years of pain.
