Why rel=nofollow in eCommerce menus is a bad idea

Featured Image

First of all, I’d like to say that GetElastic is usually an awesome and very useful blog for anyone that does anything related to eCommerce. Linda wrote hundreds of extremely good posts over there, but this new guest post at GetElastic was kind of dangerous for site owners and I’ll try to explain why, putting it as simple as possible.

The post in question talks about eCommerce “megamenus”, the ones that fly-out when hovered with your mouse and feature a lot of internal links. The post suggest you could sculpt PageRank by implementing the rel=nofollow on some of these links so that more PageRank would be sent to the more important pages of your online store. This is actually a pretty common SEO misconception even among more experienced SEOs.

This is the graph that shows simplified version of how PageRank flows from URL “A” to URLs “B” and “C”:

This is a bit more accurate version but still extremely simplified, please note that some of the value returns to the URL “A” through internal navigation. Also, a degradation factor of 15% is introduced to prevent infinite loop of PageRank flow, giving any two different URL’s that link to each other infinite PageRank value:

Now this is the common SEO misconception, a simplified version of what you think will happen when you put rel=nofollow on link to the URL “C”:

And this is a simplified version of what actually happens. As you can see, although you introduced the rel=nofollow on the link towards the URL “C”, URL “B” still receives only 3.4 points of PageRank and the 3.4 points that use to go to URL “C” now completely disappeared from the system, along with some of the value this URL would send back to “A”, decreasing the value of entire system.

Now imagine how much you would hurt your site in total and how much PageRank would you remove from the system if you decided to put the rel=nofollow on most of the items in the “megamenu”. This is why rel=nofollow on internal links in general is a very, very bad idea. Don’t take my word for it, have a look at what famous Google’s engineer has to say on the subject.

Need help with your Magento store’s SEO? Request a quote!

Interested in hiring us?

Have a chat with us. You would be surprised how small changes can make your business even more successful.


About Toni Anicic

eCommerce Consultant

SEO. Professional gaming. Home-brewed beer. Magento Certified Solution Specialist.

Read more posts by Toni / Visit Toni's profile

8 comments

  1. First of all – thanks for this article and the graphics. So even I can understand this technical stuff.

    @ Matt: Yes, exactly. Best practice would be
    1. disallow those pages in robots.txt (e.g. cart / login / wishlist / newsletter / contact … you name it). So search engines will stop crawling them.
    2. Add “Noindex Follow” meta attribute to those pages, if possible. Because otherwise those pages might still get into the indexes. And google for instance put a nice snippet like “snippet text cannot be displayed because of robots.txt” – DOH!

    We tried this (1+2) for our shop and it works very well.

  2. Great post! One question, when Matt Cutt’s says:

    “There may be a miniscule number of pages (such as links to a shopping cart or to a login page) that I might add nofollow on, just because those pages are different for every user and they aren’t that helpful to show up in search engines.”

    Based on your article we should really follow those pages too as they pass juice back to the main urls in the category nav structure, and find some other mean to stop shopping carts etc getting indexed such as “no-index” or doing something in the robots.txt file.

    Do you agree?

  3. I guess it’s Bruce Clay’s original “siloing” that may be behind this nofollow debate. He seems to have adjusted his advice to say use internal links between categories sparingly and nofollow if you must link.

    What’s your thoughts on this when it comes to an eCommerce site and mega menus?

  4. Thanks for the visual clarification, Toni. I’ve linked to your article from our post’s comments and removed the erring info from the article.

    Best,

    Linda

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.