So you’ve switched over to a theme that comes with built-in functionality for titles and meta descriptions. Instead of using HeadSpace2, All in one SEO or another SEO plugin, you’re now using the theme’s built-in SEO functions and input boxes for title’s and meta descriptions. It just seems more logical doesn’t it? Loading one plugin less and using the theme’s functionality. It feels like that’s how it should be. I mean, that should be faster, right?
Wrong. Why that’s wrong? Let’s say that, a year from now, you’re tired of this theme and want something else. It happens to all of us. So, you’re switching themes. Have you guessed the problem yet? Because that theme you started using the titles and descriptions of uses it’s own methods and locations for storing those titles and descriptions, when you switch to another theme, it won’t recognize the old stuff.
If you’re smart, you’ll notice. If you’re not, you’ll be in even deeper trouble, as someone I did a site review for recently found out. She’d written superb SEO titles and meta’s for her last 50 odd posts, and the hundreds of posts before that didn’t have them. Took us a while to figure out she’d switched themes…
If you’re a developer, changing a couple of post meta fields in the database might be reasonably easy, but for most people, it’s not. That’s why your theme should only contain functionality that alters the looks and the code of your site, not the content.
So there are no “SEO friendly themes”?
Does this mean a theme couldn’t be SEO friendly? No it doesn’t. A theme still determines a large part of what your heading structure looks like, whether it shows your content first and then your navigation or the other way around, whether your code is clean and tight or all messy etc. etc. etc. These are all very important aspects of on-page SEO, and I applaud every theme developer thinking about this and trying to learn about it.
There’s a reason why we’ve got plugins and themes. We want to separate content from design. If something has to deal with your content, stuff you’d want to be the same regardless of which theme you’re using, it has to be a plugin.
Update: Nathan has released his SEO Data Transporter plugin, which allows you to “transport” your data from one plugin to another, or from a theme to a plugin etc. This makes the technical fix easier, but still doesn’t take care of the fact that people switch themes and simply forget about things like these. So my stance remains that it is a bad idea to have this functionality in your theme.