I’ve seen this question come up a few times and was asked it the other day. Like many things related to SEO, people tend to disagree and there’s a lot of misinformation.
Put the terms you need SEO wise in the slug. The permalink structure is pretty unimportant then. Better invest your time and money into content instead of finding the holy grail in permalink optimization.
But for those who don’t want to follow that sage advice, here’s my recommendation: An optimized permalink structure is using your post ID followed by custom slug: for example, yoursite.com/postID/custom-slug-with-keywords. On your WordPress Permalink settings page, that would translate to putting %post_id%/%postname%/ in the custom structure field.
While some would advise that using your category names in the permalink—like yoursite.com/category-name/custom-slug —is best optimized for search, it actually can hurt performance and scalability as Sarah Gooding explains at WPMU. For performance reasons, it’s best to start your blog’s permalink structure with a numeric value like the post date or post id and this illustrates why.
Speaking just from a logical standpoint, it’s kind of odd to put your category name in the permalink structure because you can edit the slug for each post very quickly and easily. You can insert the most important keywords there, including the category name if it’s really that important.
I lean toward using the post ID number because it is shorter and cleaner looking than the date the post was published, such as the very commonly used yoursite.com/year/month/day/custom-slug. As Search Engine Journal reports, your URLs’ length and number of keywords is a factor that Google considers so a short permalink with a few choice keywords is best.
More importantly, this is a usable URL structure because it is short, easy to type and even fairly memorable. The structure is also hackable to users: If a visitor were to delete your custom slug so the URL was only your domain name and post ID, the link would still take them to your post (yoursite.com/88/custom-slug works the same as yoursite.com/88). Hack it down even further by removing the custom slug and post ID number and they’re left with your domain, which should return them to your homepage.