Battling WordPress to Create Ideal Site Hierarchy

by Mike Levin SEO & Datamaster, 02/02/2012

Note: Since I’ve written this article, I’ve given up on fighting WordPress’ natural year/month implied site hierarchy via the URL. It is a very relevant way to organize your posts, by year and month.  The idea of concentrating topics around directories without dates is possible, but just not the WordPress way—and creates plugin and redirector conflicts. So, why fight it? SEO is radically changing anyway.

I just added the GD Star Rating plugin to my WordPress blog, adding rating stars to the bottom of every post and page, and the hreview-aggregate meta data to the pages, to get the Google Stars on search results for articles that get votes. I experimentally voted on  2 of my most popular articles to test the system. I am proceeding through the must-have checklist du jour for SEO. Rich snippets was high on the list… done!

But currently, I am struggling with the fact that I have a very traditional blog historic URL structure: /year/mo/name-of-post, when I would much rather have a category-based URL structure: /category/name-of-post. This is actually one of my top checklist items, because the blog approach denies search engines one of the most critical clues as to site hierarchy, and individual blog posts can never have quite all the cross-hairs aligned that I like. A sort of document clustering signal that I would like the site to emit is not very strong.

I experimented with an old WordPress plugin called Advanced Permalinks, because it helps you 301 redirect your old URLs, but it turns out to be quite difficult to fine-tune, and is no longer supported by the author. It should no longer be necessary really, given WordPress’ built-in ability to control permalinks, but I would need to replace it with fairly robust redirection, and a 404 report to make sure I haven’t screwed up. Having a non-compromising site hierarchy is really worth it in this day and age, starting to distance myself a bit from the old blog hierarchy. WordPress is general site management, and a site should not be pigeonholed into looking like a blog to visitors and search engines.

I am going ahead and changing my permalink structure from /%year%/%monthnum%/%postname%/ to /%category%/%postname%/ and that has some ramifications. First, I recently eliminated my very technical blog, for the purpose of bolstering my personal brand, and letting me focus all on, so I put a 301 permanent wildcard redirect on, which drops its traffic into the proper location to the migrated content on But now, I’m changing the location of things on, so that’s a chained-up double 301 redirect, and redirects are untrustworthy enough in transferring search engine authority on the first place. Second, not all my content is categorized yet, so a lot of it is going to appear under the /uncategorized/ category folder. I am going to have to jump on categorizing my 400 or so articles ASAP, so this limbo status doesn’t set into the search engines.

But thirdly and perhaps most painfully, is that your social media counters don’t migrate along with your 301 redirects. In other words, Google has taken measures to ensure—as unreliable as that assurance may be—that your PageRank authority re-flows with your 301 redirects, but the social signals are concretely hard-wired to their original URLs, and you don’t have the flexibility (today) to change those URLs and preserver your social-counter “juice” or whatever it is we’re going to be calling it. This can be confirmed by the fact that the visual counters that the Facebook Like button, Google+ and Twitter all use don’t get the old counter numbers when you change the page’s URL and 301 redirect the old location.

I am going to bite the bullet and go ahead and change my URL structure. This is a long-term play, and the benefit of a solid site hierarchy as implied by the directory structure far outweighs the small amount of social cred I have built up here. I have even only gone on this whole long diatribe about site hierarchy, because I’m talking about the SEO checklist du jour, and it was right on the top of the list, and I could not in good conscious proceed without fixing this on my own site.

I can’t get the ideal situation, which is the planting of category pages INSIDE a directory of the same name. It appears that your choices in WordPress given the available plugins is to remove the category base using a plugin such as WP No Category Base, and conflict with pages using the same slug, or to add permalink capabilities to category using the Permalink Editor plugin, but live with a category base. The two do not seem to want to co-exist, allowing a custom page as the folder’s default, but then to still keep the category page around as an index page that appears to be within that folder. This problem is exasperated by the fact that I am using RDFa breadcrumb trails, which exposes the category pages. I will live with the situation created by the defaults, which is to have a category base, which un-does the document clustering that I desire for SEO. But it’s really not worth battling plugins right now, or writing it myself. I will just keep it in the back of my mind for later when I do plunge into PHP.

Okay, so back to that SEO checklist. I will not be able to really check off everything I want because of this site hierarchy compromise. But I have some 400 articles to categorize, and it’s not always so clear cut! Ugh! The best laid plans! Okay, anyway it’s clear that I can’t go on this tangent during work hours. The modern SEO checklist—yes. But actually re-categorizing 400 of my blogs posts—no! And I can’t go making that permalink hierarchy change until most of the re-categorizing is done, or I’m just wreaking more havoc on the search engines and digging myself deeper into recovery behavior.

Okay, so it’s settled. It’s still only 3:30 today, and enough time for attempting one more chisel-strike project—even though I do have a 4:30 PM meeting that may or may not happen. Ugh! Anyway, things are becoming urgent, and as important as this modern SEO check-list in my head is, it has to take backseat to getting Tiger (the codename for my internal work getting ready for public debut) ready for the public. Just keep plodding through that. What about that fail-safing of the stop-button from yesterday?