Tags and Categories kill our SEO
We noticed a negative impact of tags and categories on SEO here at ecomware. Tagging may be neat for certain types of content (like images), and we recognize it’s valuable in certain types of communities, but we believe tagging benefits neither our readers nor our writers. If one of our posts needs to reference another post, it will do so with a link. Our readers tend to be interested in very narrow bands of content (like Liferay or WordPress), or they’re here to browse, and we think a direct search is a better approach for finding that information.
But tags and categories were killing us in Google SERPs. Google refers approximately 40% of our traffic (from all over the world), so we take SEO seriously. After implementing a theme change where tag and category URLs appeared on our home page, our very-specific page URLs started appearing in SERPs next to the more generalized URLs of tags and categories. That’s horrible for us: We don’t want visitors entering to /notes/tag/* or /notes/category/*. We want them to either get right to the article that answers their question, or we want them to see the full list of articles, where they have the options to search using either the WordPress box or their browser’s find functionality.
We took three steps:
1. Our theme used widgets to show a tag cloud, a category hierarchy, and drop-down with the months of our posts. We removed all three of those widgets from our pages. To compensate, we also made every article visible. That won’t work for many sites, but you can compensate with unique presentations that effectively do the same thing. Removing the widgets can be done through the theme editor.
Appearance » Themes » Editor
2. We updated our robots.txt file. We’re politely asking cooperative search engines (like Google) not to follow links into those directories.
3. We follow up our polite request with action. We implement an inclusion into the front-controller of WordPress to permanently redirect away from those paths. The code below can be put in the index.php file included in your theme, or in the index.php file of your WordPress installation.
<?php
//Get the current URL
$rui = $_SERVER["REQUEST_URI"];
if (preg_match("/notes\/(tag|author|category|2009|2010|2011|2012)\//",$rui)) {
header("Location:http://ecomware.com/notes/",TRUE,301);
}
?>
Upside
One upside to attacking the problem this way is that tagging can still be done. If, in the future, we decide we do want to leverage tags for some reason, they’ll still be there—still associated with the content.
