This post is for those using the (otherwise great) Thesis WordPress theme. If you don’t run WordPress + Thesis, then this post may not apply to you personally, but it might make for an interesting read nonetheless, especially if you’re into WordPress and SEO (yes, this is going to get a bit technical along the way, but I did my best to keep things simple).
As you might have noticed, this WordPress blog uses the Thesis theme from DIY Themes (no, I’m not an affiliate). Thesis is really an awesome theme: robust, well-thought out, loaded with cool features and easy-to-use design options, and good built-in search engine optimization that makes it a first choice if you’re into SEO, or you just want to be able to customize your blog’s appearance without having to dive into someone else’s code. For example, when writing a new post, with Thesis it’s really easy to control what goes into the <h1> heading tag, what appears in the page <title> tag, and what on the post URL (this post is a nice example): very neat. Such features are in fact so sweet that the Thesis theme fame spread like wildfire throughout the SEO blogging community, especially since SEO superstars such as Graywolf endorsed it (no offense, Michael, but I’m nofollowing that link since you are an affiliate), and after Matt Cutts switched his WordPress blog to Thesis after years of using a boring greenish theme, thus becoming its number one testimonial.
Being an SEO consultant (and spare-time blogger), the choice was easy for me: around the end of May this year I purchased a Thesis Developer’s License and have since then deployed Thesis on three different sites, including this one, to my great satisfaction.
The issue
Soon after installing and configuring Thesis on this blog, I discovered what I would call a bug: if you check the checkboxes under “Thesis Options > Add Noindex to Archive Pages” (that’s one of the two cool admin panels that come built-in with Thesis), the following meta tag is added to archive pages (such as tag, category, or date-based archive pages):
<meta name="robots" content="noindex, nofollow" />
From an SEO point of view, a robots meta tag with “noindex, nofollow” equals three things:
- noindex = “I don’t want this page to appear in search results”;
- nofollow = “I don’t want search engines to follow (crawl) the links on this page”;
- nofollow = “I don’t want any link juice to flow from this page to the other pages it links to”.
Why is that bad?
It’s bad for two main reasons: first of all, by not letting any “link juice” (i.e., the PageRank and anchor text awesomeness that come with every crawlable link) flow through your archive pages, your posts will not benefit from the links on those pages: regular users will still be able to reach your posts through those links, but search engines won’t. The second reason is that the internal PageRank distribution of your blog as a whole will suffer from the fact that the nofollow attribute prevents archive pages from flowing back the link juice they get from the rest of your site –and that’s quite a lot of juice, since archive pages typically have site-wide links on WordPress blogs! That leads to a worst-case scenario in which large blogs (with a large number of posts) might see older posts lose their rankings over time, or even disappear from the search engines’ indexes (yes, you read that right: I don’t want to sound too alarmistic, but that is one of the possible long-term consequences of using “nofollow” in the wrong places).
The funny thing is that Graywolf, and even Matt Cutts himself, (maybe unknowingly?) have a “nofollow” on their blog archive pages! (Don’t believe my word? Go check for yourself.)
Why is that a bug?
It’s a bug because the Thesis Options panel doesn’t tell you that by selecting the “Add Noindex to Archive Pages” options you’ll also get a “nofollow”. Take a look:

See? “Nofollow” isn’t even mentioned, but if you look into the Thesis source code, you’ll see that it’s actually hardcoded: very sneaky! If it’s not a bug, it’s bad design. (Oh, by the way. “Noindex” is not a “tag”; it’s one of the possible values for the “content” attribute of the robots meta tag –just to get some basic terminology straight.)
Shouldn’t DIY Themes fix it?
You bet they should! In fact, I think they should have fixed it already: I reported the issue to the folks at DIY back in mid-June, providing lots of detail on why it should be fixed ASAP (here’s a link to my original post). A DIY Themes staff member replied telling me that Chris Pearson (the author of Thesis) had said “not a bug”, and my report was filed as a “feature request” [sic]. That was at the time of Thesis 1.5.1. Today I upgraded my blog to Thesis 1.6 (released on October 27), and noticing the bug was still there feature was still missing, I decided to do this post.
Now, I really hope Chris reads this post and thinks twice. In the meantime, here’s what you can do to get your link juices flowing again.
How do I fix it?
I provided instructions on how to fix the issue in this comment on Matt Cutts’ blog on June 16. Here’s my “quick’n'dirty” fix again:
In file \lib\classes\head.php, find the following code (occurring twice, at lines 35 and 38):
$meta['robots'] = '<meta name="robots" content="noindex, nofollow" />';
and replace it with:
$meta['robots'] = '<meta name="robots" content="noindex, follow" />';
or simply with the shorter and 100%-equivalent:
$meta['robots'] = '<meta name="robots" content="noindex" />';
Pretty easy, wasn’t it? The bad part is that the aforementioned hack is not future-proof: the next time you upgrade your Thesis, that file will get overwritten by the new theme file, so you’ll have to (remember to) edit it again. And again. Forever. Or until Chris Pearson decides to fix it.
A final word to fellow Thesis developers/hackers: if you can think of a Better Way To Do It that does not require editing the theme files (e.g., via WP hooks, I dunno), please drop it in the comments. Thanks
Update! The World’s greatest SEO picked up my call and showed The Right Way to set custom robots meta tags on your Thesis blog with just a few lines of code in your custom_functions.php file: check out his badass purple van!


{ 3 trackbacks }
{ 19 comments… read them below or add one }
nope I block the date archives dont want them crawled, indexed or followed, in fact I wish there was a way to turn them off completely
and really nofollowing the link to me … really … lame
Hi Michael, thanks for stopping by. I am noindexing my archive pages too, but why are you also nofollowing them? I see two distinct robots meta tags on your blog archive pages, with conflicting directives: one says “noindex,follow,noodp,noydir,noarchive”, and the other one says “noindex, nofollow“. Which is intentional? Follow, nofollow, or both? If I were a crawler, I’d be a bit confused.
If you want to remove the date archives completely from your blog (having an HTML sitemap in place), I believe you should be able do so from the WordPress admin panel: just remove the “Archives” widget from the sidebar.
I would also be interested to know why you think my use of nofollow on the link to your affiliate post is “lame”, because I’m not sure I got your point… Seriously.
hi there and thank you for this
can you please help me locate \lib\classes\head.php
also i would like if you could say something about this issue that many people are facing and its hard to resolve (atleast for newbies like me)
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 30720 bytes) in /home1/healmyib/public_html/wp-includes/class-simplepie.php on line 12076
thank you
Hi Yiannis,
Assuming you have Thesis 1.6 installed, the file is located at /wp-content/themes/thesis_16/lib/classes/head.php.
About the out of memory error, try increasing your PHP memory_limit.
Yes i do have 1.6 installed
thank you very much.
I appreciate your help for php as well
Regards from Cyprus
So, the idea is to leave it checked as noindex, but to go into the code and make it a follow. Am I understanding you correctly?
@Christopher: Correct.
Thank you for the information. Hopefully Chris will do something about this.
Darren Slatten just made a reply post on his blog explaining how to customize your Thesis robots meta tags without touching the theme core files. Elegant!
Ha! That’s a sweet purple link right there. The funny thing is…I chose that van because it was supposed to match your pink theme!
Pink? I thought my theme was phuxxia… Or is that magenta? LOL
I have been tempted over the last 18 months (the issue has been around as long as Thesis has existed) just to buy Thesis to somehow fix this.
I am sick of seeing this problem on the sites of newbbies who don’t realise the implications. I don’t care if it is a problem on sites where the owner should know what they are doing.
I even pointed this out to Matt Cutts some time ago in his comments and he described it as “Suboptimal”
The only real solution is to fix it with a replaced function in functions.php as otherwise you have an interface that is broken – useless for someone providing Thesis for clients.
Hi Andy, thanks for dropping by!
Uhm, I think it was me (in response to your comment here) who said the default nofollow in Thesis was “sub-optimal to say the least”.
Matt only said he would “check it out”… As of today, date-based archive pages on his blog still have a “noindex, nofollow” robots meta tag.
About the custom function approach: Darren Slatten recently provided an elegant workaround you might want to check out.
Ack yep you are right
Darren’s solution is really just a kludge, because it leaves the interface intact and you would end up with (on occasion) the same broken double meta tags that Michael was using for ages (not sure if he fixed it)
It is effectively the same as using a SEO plugin that does it… but Thesis is meant to do everything such that you don’t need SEO plugins
Darren tried to make it clear in his post that one should uncheck the “Add Noindex to Archive Pages” option when using his workaround, but I agree that not every newbie will do it. Some will simply apply the fix “as is”. Amen.
(No, he didn’t).
Yeah, and now WordPress does some basic SEO, too: I wonder how many WP 2.9+Thesis blogs have duplicate rel=canonical’s…
Thanks for giving tutorials for thesis users, may be i would use thesis in future then this tips will be helpful for me.
Good info to know. I was thinking of going with Thesis, but for now I am sticking with Heatmap. If I make the switch, then I’ll remember to do this
.
Hey there,
I am a new WP and Thesis (1.7) user. Correct me if I am wrong but it appears this issue has resolved as in 1.7 as there are now separate selections for noindex and nofollow. My question though is why “follow” links to archive pages. Unless you are saying google gives you “additional link juice” for the internal links coming from the archive pages which are really just duplicates of the “original posts” internal links. Correct?
Also, if I am not including the archives widget on my site is this all a moot issue in my situation? (though I am using an “xml sitemap” excluding archive pages.
It is my basic understanding of SEO that the reason for excluding Archive pages is to streamline google’s indexing of your site therefore displaying only the single pages (targeted originally by you
for marketing purposes) to be returned in a google search.
Also, I know where the canonical url settings are in Thesis but I am not sure how to check this against the WP canonical settings so I can make sure I am not duplicating rel=canonical urls as you mentioned in a previous post.
Thanks
Hi MediaGuy, thanks for your comment. Looking at the Thesis 1.7 feature list it does appear that DIYThemes have finally fixed the default nofollow issue, although I haven’t verified personally yet (but will do so in the next few days, as soon as I upgrade this blog to Thesis 1.7).
Not including the archives widget on your site will prevent internal links to archive pages from appearing in your blog’s sidebar. However, please be aware that there might be other links around your blog pointing to archive pages: in particular the post header might (or might not, depending on your blog configuration and your use of tags and categories) include links to category-, date-, or tag-based archives.
The main reason for noindexing archive pages is to prevent them from polluting the index with substantially duplicate content and showing up on SERPs in place of the original content pages (posts); the reason for following (i.e., not nofollowing) links both to and from archive pages is to let link juice (PageRank, anchor text, and thematization) flow freely around your blog, and keep the spiders happy: if you nofollowed links to archive pages, you’d be volatilizing PageRank (as Matt Cutts explained); on the other hand, if you nofollowed links from archive pages, you’d be preventing a fair amount of precious link juice from flowing back to your other pages.
Finally, about rel=canonical: just open your blog’s HTML source (CTRL+U if you’re using Firefox or Chrome) and look for duplicate <link rel=’canonical’ href=’[your_blog_page_url_here]‘ /> tags in the <head> section. Since rel=canonical is now hardcoded in WordPress and cannot be disabled, I would recommend you disable any rel=canonical plugins and leave the “Add canonical URLs to your site” Thesis option unchecked.