Best WordPress Permalink Structure
The best WordPress permalink structure for blogs, business sites and shops is Post name, /%postname%/, so each URL is just its readable slug. Set it in Settings → Permalinks before the first post is public. On a live site, add 301 redirects from the old pattern and save Permalinks so .htaccess is rewritten.
For WordPress owners launching a new site or fixing an old dated or ?p= URL pattern without losing links and search traffic.
knowledge
- Read time
- 4 min
- Sections
- 6
- Updated
- 14 Nov 2026
- Written by
- WebJi® team
Last editorial update: 14 November 2026.
What is the best WordPress permalink structure?
Post name (/%postname%/) is the best WordPress permalink structure for blogs, business sites and shops, because the URL is just the readable slug and never goes out of date. A permalink is the permanent public address WordPress builds for each post from the chosen pattern plus that post’s slug.
Compare /?p=123 with /gst-invoice-format/. Both open the same post, but only the second tells a reader, a WhatsApp preview and a search result what the page is about. Once other sites link to an address, you either keep it forever or redirect it, which is why the pattern is worth deciding before launch.
How do the six WordPress permalink settings compare?
WordPress offers Plain, Day and name, Month and name, Numeric, Post name and Custom structure under Settings → Permalinks; only Post name fits most sites without trade-offs.
| Setting | Example URL | Verdict |
|---|---|---|
| Plain | /?p=123 | Avoid on any public site; the ID says nothing |
| Day and name | /2026/11/14/post-name/ | Only for news, where the date is the story |
| Month and name | /2026/11/post-name/ | Same case, when the day adds nothing |
| Numeric | /archives/123 | Avoid; topic hidden behind a number |
| Post name | /post-name/ | Default choice for blogs, business sites, shops |
| Custom | /%category%/%postname%/ | Large archives with short, stable category names |
Dated structures make an updated 2026 guide still look like a 2023 one, and the date cannot be removed later without redirecting every post. Adding .html to the pattern changes nothing for rankings and becomes another redirect job if you drop it.
Should a WordPress permalink include the category or date?
Include a date only on a news site, and the category only when names are short, each post sits in one category, and those categories will not be renamed. Every change to a part of the URL later means a 301 for every affected post.
- Category risk: WordPress uses the post’s primary (or lowest-ID) category. Move the post to another category and its URL changes.
- Depth: nested categories produce paths such as
/hosting/vps/linux/post-name/, long enough to be cut off in search results. - WooCommerce: product URLs have their own base under Settings → Permalinks → Product permalinks; post settings do not change them.
- Available tags:
%year%,%monthnum%,%day%,%hour%,%minute%,%second%,%post_id%,%postname%,%category%,%author%.
How to set the Post name permalink on a new WordPress site
Choose Post name in Settings → Permalinks and click Save Changes before the first post goes public. On a fresh WordPress hosting account this takes a minute and means no redirect map is ever needed.
- In wp-admin, go to Settings → Permalinks.
- Select Post name; the preview should end in
/sample-post/. - Click Save Changes. On Apache or LiteSpeed, WordPress writes its rewrite block into
.htaccessif the file is writable. - Open a draft, edit the slug under the title, publish, and load the URL in a private window to confirm it resolves.
The rewrite block WordPress writes looks like this; if the Permalinks screen says it cannot write the file, paste it into .htaccess in the site root yourself, which on cPanel hosting is done in File Manager.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Nginx ignores .htaccess. There the server block needs location / { try_files $uri $uri/ /index.php?$args; }, and saving Permalinks alone will not fix an Nginx 404.
How do you change WordPress permalinks on a live site without 404 errors?
Export the current URLs, switch the structure, save Permalinks, then 301-redirect each old pattern to the new one and test a sample of old links. A 302 will not do; it tells search engines the move is temporary.
- Back up the site and export the live URL list from the XML sitemap or Search Console.
- Switch to Post name and click Save Changes, even if the option already looks selected.
- Add a pattern redirect above the
# BEGIN WordPressline. For a move from Day and name to Post name:RewriteEngine On RewriteRule ^[0-9]{4}/[0-9]{2}/[0-9]{2}/([^/]+)/?$ /$1/ [R=301,L] - Purge LiteSpeed or plugin caches that may have stored 404 responses.
- Check ten old URLs: each should return 301, then 200 at the new address.
curl -I https://example.in/2026/11/14/post-name/shows the status and Location header.
Links typed in full inside post content do not change with the structure; run a database search and replace after the backup. The WordPress 301 redirect guide covers plugin-based redirects if you prefer not to edit .htaccess, and fixing WordPress 404 errors helps if pages still fail.
How should a WordPress slug be written?
Write the slug by hand before publishing: three to six lowercase words joined by hyphens, with no stop-word padding or dates. Left alone, WordPress copies the whole title, small words included.
| Post title | Auto slug | Edited slug |
|---|---|---|
| How to File GST Returns Online in 2026: A Step-by-Step Guide | how-to-file-gst-returns-online-in-2026-a-step-by-step-guide | file-gst-returns-online |
| 10 Best Places to Visit in Jaipur | 10-best-places-to-visit-in-jaipur | places-to-visit-jaipur |
| What Is a Domain Name? | what-is-a-domain-name | what-is-a-domain-name |
Drop years and list counts from slugs so the URL survives the next update. Use hyphens rather than underscores, which Google treats as word joiners. For Hindi posts a romanised slug stays readable when shared; a Devanagari slug is valid and indexable, but a copied link turns into a long percent-encoded string. Keep /category/ and /tag/ bases unchanged unless you redirect every archive, and keep the trailing slash WordPress already uses.
Frequently asked questions
Does the permalink structure directly affect Google rankings?
Only slightly. Readable URLs help users and earn more natural links, but content and links decide rankings. The larger risk is changing the structure later without 301 redirects, which loses traffic that took years to build.
Is it worth moving an old blog from dated URLs to Post name?
Usually yes for evergreen content, provided a single pattern redirect maps every old URL and you test it. Expect a few weeks of fluctuation while search engines recrawl. Leave a news archive on dates if readers rely on them.
Why does Settings → Permalinks keep showing a 404 after I save?
Either .htaccess is not writable, mod_rewrite is off, the server is Nginx without a try_files rule, or a cache is serving the stored 404. Check those in that order, then purge the cache.
Can I change one post’s slug after publishing?
Yes. WordPress stores the old slug and usually redirects it to the new one for posts, but it is safer to add your own 301 and update internal links, especially for pages, which do not get that automatic redirect.
Last editorial update: 14 November 2026.
Ready to get started with WebJi®?
Join 12,000+ businesses across India and overseas. INR pricing, 18% GST shown before payment and 24/7 email support in Hindi and English — average first reply under 60 minutes.