Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
30 Million+
Websites using our plugins
20+
Years of WordPress experience
3000+
WordPress tutorials
by experts

What is a SEO Friendly URL Structure in WordPress

Generally speaking, the best SEO-friendly URL structure in WordPress is the Post Name (/%postname%/) format, or the Category and Post Name (/%category%/%postname%/) format for large, multi-topic, or e-commerce websites.

But if your site is already live, never switch permalink structures without setting up redirects first, or you’ll lose rankings and break links.

In this guide, we’ll explain what the best permalink structure is, how WordPress sets it by default, and how to safely change it if you need to.

What is a SEO Friendly URL Structure in WordPress

What Are SEO-Friendly URLs?

SEO-friendly URLs are descriptive web addresses that help people understand what a page is about before they click it. They often include relevant keywords and use a simple structure that’s easy to read.

For example, here’s an SEO-friendly URL for a tutorial about installing WordPress:

https://www.example.com/how-to-install-wordpress

Compare that with this URL:

http://www.example.com/?p=10467

The first URL clearly describes the page’s content, while the second reveals nothing about what visitors will find.

When creating SEO-friendly URLs, follow these simple guidelines:

  • Use descriptive words. Include your main keyword when it fits naturally, so readers can quickly understand the page’s topic. You don’t need to match the exact search query.
  • Keep URLs short and readable. Remove unnecessary words, numbers, and parameters when they don’t serve a purpose.
  • Separate words with hyphens. For example, use how-to-install-wordpress instead of how_to_install_wordpress.

You don’t need to put every slug directly after your domain. Meaningful folders, such as categories, can also help organize your URLs.

Google considers words in URLs a minor ranking factor, so don’t expect keyword-rich URLs alone to improve your rankings.

With that said, here’s everything we’ll cover in this guide:

For most WordPress websites, the Post name permalink structure (/%postname%/) is the best choice. It creates short, descriptive URLs that help visitors understand what a page is about.

You can also the Category and Post Name (/%category%/%postname%/) format for large, multi-topic, or e-commerce websites.

WordPress doesn’t always select Post name by default. Depending on your installation and hosting configuration, you might see a different structure, such as Day and name (/%year%/%monthnum%/%day%/%postname%/) or Plain permalinks.

To check your current settings, go to Settings » Permalinks in your WordPress dashboard. If you’re setting up a new website, select Post name and click Save Changes.

If your website is already established, think carefully before changing its permalink structure. Doing so can change existing URLs and break links unless you set up appropriate redirects. If your current URLs are working well, there’s usually no need to change them just for SEO.

Optimizing your WordPress permalinks using the WordPress site settings

Should You Change Your Old URL Structure to a New One?

If your website is already established, don’t change your permalink structure just to make your URLs look more SEO-friendly. Changing URLs can break existing links and affect search visibility if you don’t handle the migration properly.

For new websites, we recommend using the Post name permalink structure. If your existing site uses Plain permalinks, switching to a more descriptive format may be worth considering, but weigh the potential benefits against the risks before making changes.

If you decide to change your URL structure, follow these steps to minimize disruption:

  1. Back up your website. This gives you a recovery point if something goes wrong.
  2. Map your old URLs to their new equivalents. Make sure each existing page has a corresponding destination wherever possible.
  3. Set up 301 redirects. Redirect each old URL to its new equivalent so visitors and search engines can find the updated address. Avoid redirecting unrelated URLs to your homepage.
  4. Test the redirects and monitor your site. Check important pages for redirect errors and broken links. Then monitor indexing and organic traffic in Google Search Console to identify any problems.

You can use the free 404 to 301 plugin to manage redirects. If you have the paid version of AIOSEO, its Redirection Manager is another option.

See our detailed guide on how to create 301 Redirects in WordPress for more information.

To check or change your permalink structure, go to Settings » Permalinks from your WordPress admin area. This will take you to a page that looks like this:

There are several permalink structures to choose from:

  • Plain (https://www.wpbeginner.com/?p=123) – Not an SEO-friendly option; this is what a server falls back to if it can’t support rewrites.
  • Day and name (https://www.wpbeginner.com/2016/01/22/sample-post/) – It includes the post name, but the dates make the URL longer and can make evergreen content look outdated.
  • Month and name (https://www.wpbeginner.com/2016/01/sample-post/) – Same date-related tradeoffs as above, though dates can be a feature rather than a bug for news publications.
  • Numeric (https://www.wpbeginner.com/archives/123) – Similar to Plain but includes the archives page and post ID. Not recommended.
  • Post name (https://www.wpbeginner.com/sample-post/) – The most SEO-friendly option: descriptive and short. Ideal for evergreen content.
  • Custom Structure – Build your own using available tags. Good for larger publications where post name alone isn’t descriptive enough.

Once you’ve chosen a structure, scroll down and click ‘Save Changes.’ WordPress will automatically update your site’s .htaccess file (the server config file that controls how URLs are routed) and immediately start using the new structure.

Clicking Save Changes in the WordPress permalinks page

How to Create a Custom URL Structure in WordPress

At WPBeginner, we use a custom permalink structure that adds a category name along with the post name in the URL:

/%category%/%postname%/

Because our site is large and contains thousands of articles, this suits us well. It describes the content and shows what category it belongs to without being too long. You’ll see larger publications and eCommerce stores use a similar structure.

Two things to know before using category in your URL: assign each post to exactly one category, since a post’s URL is built from whichever category is primary. And if you recategorize a post later, its URL changes too – which means you’ll need a new redirect.

Here are the tags you can use to build your own custom structure:

  • %year% – The year of the post in four digits, like 2026.
  • %monthnum% – Month number of the year, like 05.
  • %day% – Day of the month, like 28.
  • %postname% – A sanitized version of the post title. “This Is A Great Post!” becomes this-is-a-great-post.
  • %post_id% – The unique ID number of the post.
  • %category% – A sanitized version of the category name. Nested sub-categories appear as nested directories in the URL.
  • %author% – A sanitized version of the author name.
  • Time tags (%hour%, %minute%, %second%) exist but you should never use them in a permalink structure.

Once you’ve set up your custom permalink structure, click ‘Save Changes.’

We hope this article helped you set up SEO-friendly URLs for your WordPress site. You may also want to see our guide on categories vs tags: SEO best practices and our ultimate WordPress SEO guide.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

62 CommentsLeave a Reply

  1. I’ve always used the structure domain/post, but my blog has dates in the URLs because I didn’t notice it at the beginning of my blogging journey. I’ve been thinking for a long time about changing the permalinks and removing the dates. However, I already have 1,300 articles on my site. So I’m glad you mentioned in the article that we shouldn’t do this, as it’s not a good idea and doesn’t make much sense. It reassured me a bit, and I’ll leave the permalink structure as it is now. After all, the fear of losing rankings is quite significant for me.

  2. i want to ask, how you setting the structure for this website? i want like that, example like domain. com/blog/title-article/? thanks

  3. This is enlightening. For technical SEO side, it’s better to change an urgly url structure to a readable one. User should be able to identify or for tell of what the link will be all about as he see readable url structure.
    I heard it’s good for news blog and website to use days or month in url as it boost ranking, is this true.

    • I personally stopped using URLs with dates in them, and I’ll explain why. You write an article on a certain date and then regularly update it, say every 4 months, to include new information. However, the URL doesn’t change. I found that such articles had much lower viewership because, even though they were updated, people didn’t click on them since they saw the date in the URL and chose another article in the SERP, thinking it would be more current. That’s why I no longer use dates in URLs, as they can be misleading and result in a loss of new visitors.

  4. Keynotes from this post and what Google recommended

    Google suggests keeping your website addresses simple and easy to understand. When creating a URL:

    Using hyphens or dashes (-) is preferred over underscores or other symbols. For instance, go for “my-page” instead of “my_page.”

    It’s a good idea to keep things straightforward. Don’t add unnecessary details or extra information to your URLs. Focus on using keywords that accurately describe your content.

    If you can, try not to include dates in your URLs unless it’s really important for what your content is about.

  5. Earlier I used to have the default options for Permalink structure that was with the WordPress installation.
    I have them switched to use the posts slug for Permalink structure as it looks good and seo friendly as well.
    Having said this having both category and then posts is very good as it helps categories the posts.
    I will do this custom permalink structure for my posts.
    Thanks for this helpful guide.

  6. Hi,
    Thank you for your short and informative article. just a quick question?
    Our website has been running for more than a year. I checked the permalink and it is set to Day and Name.
    what do you think if I change it to Post name?

    Thanks

  7. Hi, thanks for the article, it’s really complete and helpful. Could you please provide examples of plain links?

    • For plain links, we cover that in the permalinks setting section or you can take a look under Settings, Permalinks to see what plain permalinks would look like for your domain :)

      Admin

  8. I’ve had my blog for almost a year and the permalinks I use is the month, day then post title one. I would like to change it to just the post title.
    How do I go about this? I don’t want to end up with broken links.
    Do you think I should change it or I should just leave it as it is?

    • It would be a difficult process to change your permalinks after a year, there are tools on the Yoast site for what to add to your htaccess for redirects or you can keep your permalinks as they are.

      Admin

  9. I have seen where when a post is created it removes words like in, for, at etc. Yoast warns about leaving these words (stop words I believe they are referred to as) in the url. However I notice all your blog posts utilize these stop words. Can you explain why you don’t remove stop words from your urls?

  10. Hey, thanks for this article! My site was launched this week by a developer and now I am learning WP! I changed my permalink setting to post name – they had it as Day and Name!

  11. Sir,
    I used custom structure with post name. The main is comes when i change the post permalink the the post permalink is updated in desktop and working fine but in mobile the permalink not updated and gives 404 error.I used news paper please helped me in this matter.

  12. Thanks for this nice write-up.

    I have one question and if you could advise, that would be grateful.

    I have a WordPress website (not launched yet, testing phase). Registered users can submit post and comments. I am using ‘Post name’ as permalink structure. Issue arises when user changes the post title, the permalink also changes which from SEO point of view will have broken links in search if already indexed. I understand i can switch to ‘Plain’ permalink (Post Id) structure. But I want to utilize URL keywords from SEO point if view.

    Is there any to achieve this by using custom permalink structure or only way is to use Plain permalink structure.

  13. 1) From Permalink settings in WordPress, I had added “.” (dot) in Category base so now my category URLs are like: example.com/smith instead of example.com/category/smith

    Although, you try to enter example.com/category/smith, it will redirect to example.com/smith

    2) Now, I have created some pages with the same name as a category, URLs for both are same. Is it bad for SEO?

    for example:
    parent Category is: example.com/smith
    sub-category is: example.com/smith/rr

    parent page is: example.com/smith
    child page is: example.com/smith/rr

    I don’t know what’s going on in backend and how it can affect SEO?

    Thanks in Advance.

  14. Hi there,

    help please :)
    can someone tell me how using the permalink custom structure tag %slug% works?
    How, if at all, is it different to using the structure tag %postname%
    thank you, Trish

  15. Hi there: For about two years I had my blog hosted on a wp.com page. One week ago I finally decided to transfer it to a .org domain. That said, do you consider I should change the structure on my permalinks to a more SEO friendly one? I mean, you recomend no to do it if the site was older than 6 months, but I’m not sure if that applies for my recently transfered site. Thanks, guys. Cheers.

  16. How do I make it so the structure would be /blog/category/post-name?

    I can’t figure out how to get /blog/ before the category.

    Thank you!!

  17. Hello,
    How to include the sub category base in the URL, I mean

    Website,com/category/subcategory/post

    Please help me out. Please make a video tut.

    Thanks a lot
    Amit Biswas

  18. I’m a new blogger and I’ve always changed my URL. Am I not suppose to and just let it be the default? I have a new WP version so it picks up something just I thought I had to change it every time instead of leaving it how it was.

  19. Hello,

    Very good information and nicely touched down every single aspect. I own a News Site hosted on Wordpress and using /%category%/%postname%/ in the URL structure. And I want to migrate it to Day and name (/2016/01/22/sample-post/) since I read some articles that states it will increase server up-time speed. I’ve more than 250 posts on the website and older than one year is it a good idea to change the Permalink parameter?

  20. Hello how to include the sub category base in the url, I mean
    blog/category/subcategory/post

    please help me to find the solution for this

  21. Hi! This is great, thank you! How can I change my post structure on only the posts going forward? I don’t want to change any of the posts in the past, as I’ve been blogging for 5+ years now and I don’t want to loose any of that SEO. Currently I have the post date listed first, but I want to change that to just be the post name as the perma link for both my blog posts and my gallery.

    Thank you!

  22. I have been using wordpres for over 6 months now and every time I tried changing my permalink structure from plain to /%category%/%postname%/ I get a 404 error. I hit the “Save Changes” but to not use. can you please tell me what i should do? Thank You!

    • Try to backup and delete your .htaccess file. Then visit the permalinks page and click on save changes. Refresh your FTP client to confirm that WordPress has generated a new .htaccess file. This should resolve your issue.

      Admin

  23. I am getting ready to move my site from wordpress.com to wordpress.org. I have about 200 posts on my wordpress.com site. I would like to change my permalink structure on my wordpress.org site to post name. I plan to use wordpress.com’s $13 a year site redirect. Will I have problems with broken links?

  24. I have changed permalink of my product page.

    Now i have an error message of “Duplicate meta descriptions” showing the old permalink and new permalink as duplicate.

    How to solve this problem.

  25. What is considered best practice (SEO wise) for internal linking? IE. Using Woocommerce I have links in my product descriptions to options that we offer. I can use the /descriptive-link/ or the /?p=321. Intuition tells me the first is better for SEO but the programing part of my brain says the latter is “safer”

  26. This is a great article and its easily explained in layman’s terms. I have one issue that I cannot find a solution to and others may have encountered the same issue. The problem with my blog is that trashed pages. If I have a trashed page, how would I reinstate it without having to change the custom structure to the plain structure? I’ve basically ruined a blog with over one hundred and fifty pages grhhhhhhhhhhh! Any help would be appreciated please

    • Simply go to Pages and then click on trash. Take your mouse over to the page you want to restore and click on the restore link. If you want the page to not have the URL that it previously had then you can copy its contents and paste them into a new page. Publish the new page and delete the old page.

      Admin

  27. Great article. I am in a fix now. I have a running site which is around 10 yrs old. Unfortunately my post urls have date in it. :(

    But it’s better late than never.
    If I opt now to have my permalink in new post structure, as you said, the older posts will also get changed.

    What is the best solution to do it. I can’t afford to hire somebody to do it manually. I can try my hands though.

    Is there any plugin or tool which will make my job easy?

    I am expecting a response from the readers as well, who have tried it first hand.

  28. I am running following site. but its traffic is not consistant. i am sending you my site link. Please suggest me how i can gain more and consistent traffic and also tell me about my mistakes. Pleasae.

  29. Hello,

    I am using the redirect tool by yoast to redirect my old permalink structure to the new one, it works fine, but the wordpress admin panel not working, giving me the 404 error.

    Also the child category posts are also not working. Please guide.

    My old permalink structure was /%category%/%postname%.php
    And the new one is /%postname%/

    Thanks,

  30. Thank you for your article, it was very timely. I love WP-beginner!

    However, it still seems a bit over my head. I wish you included more examples. I’m in the process of putting the finishing touches on my website (pure DIY). I haven’t even started blogging on the site so I have been more concerned with how to get . Although I have no idea why %postname% worked but it did so I’m thrilled (%postname% just doesn’t seem to correctly call out the page I want). Anyway, I still don’t have a clue what is meant by “categories”. I appreciate the link you shared, however, it’s still written beyond my pay grade. It says in the article, “WordPress comes with the ability to sort your content into categories, tags, and taxonomies.” It never explains WHY this is useful. Would you mind sharing a bit more on categories from a user point of view please?

  31. Hi, I recently moved my blog from BlogSpot sub-domain to my custom domain on WordPress. After reading through the stuff available online, I chose the ‘Month and Name’ permalink in the WordPress as its being mentioned that this is most similar to what BlogSpot uses and if one is transferring from BlogSpot to WordPress, then one should chose this permalink only in order to loose existing traffic and Google Page Ranking. Now, after reading your article above, it seems that the best permalink would be “Postname’ permalink. Can you please guide me whether I should change my permalink to ‘Postname’ or should I keep it to ‘Month and Name’ permalink?

  32. Hi, this is a very good post about permalinks, thank you.
    I have a question about it, is it possible to use regex to dynamicaly rewrite category name in the URL?

  33. Hello! I use custom /%category%/%postname%/ . The categories are English and Farsi (using Arabic characters). The permalink in sitemap for farsi turns to:
    /farsi/sms-%d8%a7%d8%b3-%d8%a7%d9%85-%d8%a7%d8%b3/

    This is not helpful for SEO. Can you help please? thanks.

  34. Great post. I was using custom pemalinks structure just like u mentioned earlier on my site but when i changed to post name permalink i lost my previous links i shared on social media pages which resulted to error 404.

    You just made me understood why.

  35. Hi, i have a question about the permalink structure:
    Before to use wp.org i had used wp.com with date+name of post (by default).
    Now on wp.org i try to use only the name, but the social link not working, so to fix i have setting post id+name to have a post name and a little numbers before.

    Do you think it a good idea? Because all permalink working fine, just only name not working, so i think used id+name could be a good idea

    Thanks

  36. Hello! I had a question regarding custom tags. What if I have to use same or similar title, e.g. for outfit post? Is it a good idea to add a numeric value to the URLs as well. I am skeptical about using %post_id% as it will be sequential then and can make some other posts seem out-of-date. How about adding a random number to the URL like tumblr posts. How can we configure it to be part of URL just like categories?

  37. Nicely written. I was absolutely able to understand and follow everything, and to lear, which is the most important thing.

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.