Common Magento 2 SEO mistakes

Common Magento 2 SEO mistakes

Magento 2 has launched and on Magento’s official blog, they introduced some of the first Magento 2 featured online stores.

We took some time to analyse some common SEO mistakes in new Magento 2 stores and write them down for you in this article. Hopefuly this blog post will help you and serve as a sort of SEO checklist before you launch your own Magento 2 store – be it a new one or “upgrade” of the existing Magento 1.X store.

1. Robots.txt blocking layered navigation parameters

Robots.txt disallow Magento 2 SEO

While in most cases you really don’t want to get your layered navigation or other filtering and sorting parameters on your category pages indexed by Google, blocking them with a robots.txt disallow is not an optimal way of handling this thin content issue.

The reason is, they can still be indexed, they just can’t be crawled. To understand the difference between robots.txt disallow and meta noindex read this.

The robots.txt disallow approach throws a lot of good link juice from internal navigation away. Instead of disallowing those parameters through robots.txt file, you really want to use meta noindex, follow on URLs with those parameters instead.

Once again, don’t do both robots.txt disallow and meta noindex, follow as Google will not be able to see the meta noindex, follow on your URL as they wouldn’t be able to crawl it due to your robots.txt disallow.

2. Robots.txt NOT blocking the site search results

Robots.txt catalogsearch Magento 2.0 SEO

While disallowing layered parameters through robots.txt file is a bad practice, what you really want to disallow are your site search results, or in most implementations, specifically the /catalogsearch/ URL path.

Google’s Panda algorithm is known to penalize websites that – among other things – allow indexation of large amounts of their site search data. Why? Because Google doesn’t like displaying search results within search results meaning they don’t want to index your site search and they want you to stop them.

Some Magento 2 websites not only forgot to disallow the site search results through their robots.txt file, they actually actively link to their site search results from homepage. They linked the homepage logos of different brands to site search with that brand name as a query parameter.

This is probably done due to lack of some sort of “shop by brand” extension for Magento 2 at the time of development of the website in question. Although I wouldn’t go this way and in most cases I’d choose brand to actually be a category. With visual merchandiser you can fill the brand category automatically with products that match a certain value of your manufacturer or brand product attribute. You can read more about planning your navigation as well as what to do with brand pages in terms of SEO here.

3. Missing availability in microdata markup for product offer

Schema org microdata markup for Magento 2 SEO

Microdata markup helps Google and other major search engines understand the content of your pages. It helps them figure out what’s your price, what’s your special price, your reviews and so on.

It is not just a feature that helps you get a better CTR as you can read in our case study.

It’s also a feature necessary for automatic product updates for Google Merchant Center. Since we’re missing the availability markup, neither SERP results will be featuring our product as “In stock” nor will automatic availability product updates within the Google Merchant Center work.

Since this is important aspect for both SEO and PPC as explained above, this is something worth looking into and fixing.

4. Pointing layered URLs back to category with rel canonical

Magento 2 SEO layered URLs and rel canonicals

Rel canonical is not intended to be used in this way. When Google introduced rel canonical, it was supposed to solve the issue of duplicate and near duplicate content. Since layered filters actually change the content of the URL (show a different product collection – a narrowed one – and in some cases even an extended one with multi select attributes that expand the product collection) they are not duplicates.

While you usually don’t want to have all those layered URLs in index as they create thin content issues (notice, there’s a difference between thin and duplicate content in SEO terminology and they are solved in different ways), you shouldn’t look towards rel canonical to solve this issue (much like the case with robots.txt disallow from the first example in this article).

What you really want is to place meta noindex, follow on those layered URLs and thus get them out of index while allowing the link juice to flow through them through your navigation and product listings to other pages that you need to rank.

5. Indexing both http and https versions of the website

HTTP vs HTTPS Magento 2 SEO

Having http and https versions of the same URL indexed is a great example of duplicate content and a great example of where rel canonical should be used to consolidate the duplicates into a prefered version. If the https version is the prefered one (and it should be since Google considers https to be a ranking factor), the http version of the same URl should have a rel canonical pointing it to https version, or if http is the prefered version the https version should point its canonical towards it.

6. Homepage title “Home page”

Homepage title tag

Homepage is usually your strongest page in terms of link equity and the page that can rank for your most important keywords. For this reason, it’s not a good idea to have its title say “Home page” as that doesn’t describe what your website is all about.

This was also actually one of the 7 common SEO mistakes in Magento 1.X as well. Some things rarely change.

I hope this will help both clients with setting up their stores, but moreover this is important for all the Magento Solution Partners, especially those Magento 2 Trained, to improve their service and make sure our clients are all set with Magento 2 SEO.

And if you planning on migrating from Magento 1, there is a handy little article regarding SEO checklist for Magento 2 migration that can be of great help too.

If you need any more detailed insights around this or specific assistance with your projects, get in touch, we can asses your site and help you out with SEO or technical advices.

Related Inchoo Services

You made it all the way down here so you must have enjoyed this post! You may also like:

Editing robots.txt in Magento 2 Admin Toni Anicic
Toni Anicic, | 2

Editing robots.txt in Magento 2 Admin

Pagination with rel=”next” and rel=”prev” in Magento 2 Sasa Brankovic
Sasa Brankovic, | 7

Pagination with rel=”next” and rel=”prev” in Magento 2

Build your 2017 Magento SEO strategy with these tips Ivona Namjesnik
Ivona Namjesnik, | 10

Build your 2017 Magento SEO strategy with these tips


  1. Hello Toni
    Thanks for the great tips! I’m new to online marketing, and this is really helpful! Since getting started, I’ve been bombarded by “spin writers” and such to create a TON of content quickly, but you seem to say that these search engines have become sophisticated enough to determine when your content is crap. Am I understanding that right?

  2. That’s a great point regarding the rel canonicals. It’s often the ‘go to’ for what is actually thin content, not duplicate content, and there really is a difference.

  3. Hello,

    Well, Greatly described points about SEO mistakes, we make or have made in our past.

    When it started my career in blogging, the only thing I know, was writing article and building links, but majority of my articles were full of keywords and the links I was building was just spam links with optimized anchor texts.

    Also, I was not aware of internal links important, but with time everything has improved and these days, I rarely make any SEO mistake.

    But, still a huge number of newbies are making these mistakes and I sadly say, that they are wasting their valuable time.

    So, considering this, a brilliant post written, it will help many out there, searching for this.

    Keep up the good work.


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> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.

Tell us about your project

Drop us a line. We'd love to know more about your project.