[Case Study] Best WordPress Permalink Structure for SEO

There are many tutorials for the topic "Best WordPress Permalink Structure for SEO" online. In my opinion, there are two options:

  • Choose the permanent link to be "/%postname%" if your website posts are not large in number, which in this case is like: https://googoler.com/guest-posting-sites-list
  • Or for a larger site, choose "/%category%/%postname%"

Googoler doesn't use the second URL based on the fact that I want to have a plain and simple URL structure.

Nevertheless, many people chose option 2, especially business websites, including one of my clients. We'll do a case study on his site.

A Bad URL Structure Example

So my client ordered service from some "IT Company" who installed 20ish plugins on his site and left a mess.

Though my task is to do content SEO and copywriting, I could hardly bare the structure of his blog.

url of the blog

So he has a directory called "blog", as you can see from the above snapshot.

But when you look at the URL of each and every blog post, the URL is so strange. It is actually in the subfolder of "blogs" rather than "blog":

example of bad url structure

Why Is It bad for SEO?

The URL structure I described, where the blog section URL is "Domain/blog/" and the blog post URL is "Domain/blogs/postname/", is not necessarily bad for SEO or spider crawling. However, it can be suboptimal for a few reasons.

First, having inconsistent URL structures can make it harder for search engines to understand the organization of your site. Search engines use the URL to help determine the content of a page and how it relates to other pages on the site. If the URLs are inconsistent, it can be more difficult for search engines to accurately categorize and rank your content.

Second, including unnecessary words or characters in the URL can make it longer and more difficult to read. This can make it harder for users to remember and share the URL, which can reduce the visibility and reach of your content.

What Can I Do?

There are two options for me:

  • change the blog section URL from "Domain/blog/" to "Domain/blogs/"
  • change each blog post URL from "Domain/blogs/postname/" to "Domain/blog/postname/"

Neither of them is hard, but there's one thing: the previous service provider used code snippets to create a new post type called "blogs" and when I change "blogs" to "blog", all the existing posts disappear and I have to do further modifications under such a circumstance. I hate that.

Here's the code they use to generate the "blogs" post type:

//Create Blog Shortcode Start
function shortcode_bloglist($params = array()) {
	ob_start();
require_once get_template_directory() . '/blog.php';
	return ob_get_clean();
}
add_shortcode('bloglist', 'shortcode_bloglist');
//Blog Shortcode End

add_action( 'after_setup_theme', function () {
    register_post_type( 'blogs', [
        'public' => true,
        'labels' => [
            'singular_name' => 'Blogs',
            'name'          => 'Blogs',
        ]
    ]);
});

add_action( 'init', 'cxc_custom_init' );
// 'blogs' is my post type, you replace it with yours
function cxc_custom_init() {
	add_post_type_support( 'blogs', 'thumbnail' );
}

So I chose option 1. And now I have a blog section, whose URL is "Domain/blogs/" and blog post URL: "Domain/blogs/postname/"

Final Thoughts

[Case Study] Best WordPress Permalink Structure for SEO

That's my idea of the best WordPress permalink structure for SEO. When a search engine spider crawls our site, eliminate any possible 404s in the URL, especially the category part.