Ultimate Guide to Magento SEO

quick summary

Magento is one of the most popular e-commerce platforms. While it comes with plenty of possibilities, you need to properly set it up to maximize your organic traffic. If you take care of the SEO basics and use extensions, you can build a successful, easily scalable e-commerce website in Magento.

In this guide, Magento is put to the test to see if it’s a good choice from the SEO perspective in 2020.


Magento Open Source is a great choice if you intend to have a big e-commerce website with dozens of categories and thousands of products. That’s because Magento scales very well. However, if you are confident that your store will remain relatively small, using Magento might be overkill and you’ll be better off choosing an alternative platform.

One of the things that Magento does best is notifying you about any potential problems that require manual action. On the top of the admin panel page, you can see a yellow box with a list of issues and links to a detailed walkthrough in the documentation.

Magento does a lot for you automatically, including some pre-installed basic SEO features. The default UI is simple and well-organized. You can easily manage and modify your website’s structure. 

However, Magento isn’t perfect. Web performance is its biggest downside. You’ll need a good hosting provider to make Magento run smoothly. The default platform version itself with no extensions installed is resource-demanding. If you don’t have a team of experienced developers, you will have a hard time trying to make your website fast.

Magento pros and cons


  • Clear site structure
  • One product – one URL
  • Many product variants under one URL
  • automatic 301 after URL change
  • Support for structured data
  • Related products section by default
  • Automatic sitemap generation (with images)
  • Open-source, actively developed
  • Multiple SEO add-ons


  • Poor performance
  • JavaScript-heavy
  • No easy way to deindex pages
  • Cannot alter canonical tags by default
  • No hreflang tags by default
  • Overly complex configuration
  • Limited bulk operations inside the admin panel
  • No blog feature by default
  • Programmers’ hourly rate is high when compared to other platforms

What is Magento?

Magento is an e-commerce platform actively developed since 2008. It is currently owned by Adobe. Being the third most popular e-commerce CMS, it’s used by 8% of e-commerce websites.

You can use Magento either as an open-source platform or the paid Magento Commerce version, which offers more functionalities and customer support. The official website offers a head-to-head comparison of both the free and paid versions of the system. 

For testing purposes, I used Open Source Magento 2.3.4 (with sample data preinstalled), published on January 28, 2020. Testing platform: PHP 7.3.17, Apache 2.4.43.

Magento out-of-the-box SEO features 

Titles and descriptions

Magento lets you easily control the meta titles and descriptions of your pages. There is a limit of 255 characters for each of them, but you shouldn’t use longer tags anyway. Keep the title tags short so Google doesn’t have to shorten them.

The basic control of SEO tags in Magento Open Source

Handling URLs and redirects

Using the admin panel, you can freely modify category and product URLs. Magento will even automatically create a 301 redirect from old URLs, which is really handy – it saves you a lot of work whenever you modify a URL. Remember though that you should avoid modifying your URLs unless necessary.

Product or category URLs with parameters are automatically canonicalized to their canonical versions.

Product variants

Each product can be assigned to many different categories and still maintain the same URL. Multiple product variants can also be available under the same URL. That’s a great feature from the SEO perspective. Moreover, you can choose to have a product variant available under a separate URL if it aligns better with your desired website structure.

One thing you need to pay attention to is that Magento lets you include the category path in the product URL, which may lead to duplicate content issues. 

Magento makes it possible to have many product variants under the same URL address
An example of a product page available in many variants in Magento


As an open-source solution, Magento gives you full control over the robots.txt file. This is a significant advantage of Magento over some other platforms, such as Shopify. When you start your eCommerce shop, you should consider blocking the whole search section in robots.txt before even making your store public. Why? Because you risk creating an infinite number of URLs there. If Googlebot finds them, you may end up with an enormous amount of thin or duplicate content.


You can automatically create a sitemap that, next to regular product and categories URLs, includes image URLs. Just remember to regularly update your sitemaps, place their links in robots.txt and upload them to Google Search Console. Do it every time you add new products or categories to your shop, so Google can find them as fast as possible. When some of your products are no longer available, remember to remove them from your sitemap.

Structured data

By default, Magento does provide some structured data for rich snippets, but in a very limited way. For instance, you can only specify the name, price, SKU, and AggregateRating properties for product pages. You can’t add the description, brand, images, or reviews markup without using an external plugin. Keep in mind that for Google to use your structured data for a rich result, you’re required to provide all the structured data properties specified in Google’s documentation.

Google's Rich Results Test positively vaildates structured data implemented in Magento

Extensions you need when using Magento

While Magento lets you control the basic SEO features, there are some things you won’t be able to do without coding or installing extensions. To be more specific:

  1. You cannot modify meta robots tag manually for individual pages.
  2. You can’t create your own canonicals and you cannot alter the automatically created ones.
  3. There’s no support for hreflang tags.
  4. Structured data markup is limited.
  5. Lazy loading isn’t supported.

Before you start installing plugins to deal with these issues, you will probably need to make some changes to your PHP configuration.

The script used for installing extensions on Magento requires tons of free RAM. By default, most Apache servers limit this value to 512MB, which is not enough. I needed around 2GB. You will have to edit the php.ini file (look for the memory_limit parameter specifically). 

But there’s more. Magento overwrites master memory limit values in several places. Look for .htaccess and .user.ini files in your Magento directory and change memory_limit to a greater value. If that isn’t enough, consider changing the execution time limit (in php.ini., .htaccess and .user.ini), anything over 180 seconds should do the trick.

Remember that during the installation your shop will be put in maintenance mode, so it is good to install the extensions you need when you don’t expect your website to get a lot of traffic.

Performance extensions for Magento

Web performance is Magento’s weakest point. If you do not have a powerful server with a decent amount of RAM and computing power, you will struggle. Fortunately, there are some free extensions that can help you:

With some configuration, these four extensions granted my test website a significant performance boost.

Hreflang and canonical tag extensions for Magento

Unfortunately, there are no free extensions that would help you with altering canonical tags or adding hreflang tags. You have to either spend some money or write your own code. The Magento community is active and helpful, and the documentation is slightly better than for other platforms, so don’t worry. If you do decide to spend money, here are the extensions you can use:

Structured data extensions for Magento

There are many extensions designed to help you manage structured data on your website, both free and paid:

Blog modules for Magento

If you want to have a blog be a part of your Magento store, you need one of the following extensions:

All-in-one SEO solutions

If you don’t want to install too many extensions, you should try some of the available SEO suites. These plugins are useful, but they don’t offer as much flexibility and configuration options as their smaller, specialized alternatives. Here are some all-in-one solutions for you to consider: 

While the free extensions should cover your basic needs, you’ll need to purchase their paid equivalents for better quality and more possibilities.

Extensions summary

The table below is a summary of what you can do in vanilla Magento and the aspects for which you need to install extensions. 

Feature Vanilla Magento Extensions you might try
Editing product URL Yes
Editing URL structure Yes
One product in many categories Yes (no duplicates)
Editing meta tags (title, description, keywords) Yes
Meta tag templates No SEO Meta Tags Generator by FMEextensions
Product variants Yes (one URL for many variants)
Related products section Yes (you have to specify them manually)
Adding content to category pages Yes
Blog posts No Blog by Magezon
Multilingual store Yes (manual translation) Various language packs from Magento Marketplace
Setting alternate hreflang tags No Alternate Hreflang Tag by Scommerce Mage Ltd
Migrating to a different platform ‘Export’ option available
Configurable robots.txt Yes (both from admin panel or manual)
Automatic sitemap generation Yes (disabled by default)
Images included in the sitemap Yes
Noindexing products No NoIndex NoFollow Tags by FMEextensions
Altering canonical tags No (you can only turn them on or off) Canonical URL by FMEextensions
Auto redirect after changing URL Yes
Breadcrumbs Yes
Brand page listings No (but you can create separate categories for brands) Shop By Brand by MageWorx

Things you need to know about Magento

URL modification

As I mentioned earlier, Magento allows you to freely edit product, category, and static pages’ URLs. The platform automatically creates a 301 redirect to the new URL for you. 

But this comes with a downside – if you make a mistake and accidentally change the URL of a product/category, you will have to revert these changes manually, because the platform will not let you change the URL to the one previously used by a different product/category.

You can also configure the platform so that it includes the category name in product URLs. If you want to have one product in multiple categories, you shouldn’t use that option, because it will create duplicate content.

Magento offers you one more feature: modifying the URL suffixes. For example, you could add .html at the end of product URLs. You need to be very careful when changing it though because if you do, the platform will not create any redirects for you. All of the URLs with the old suffix will return the 404 status code.

Information architecture

Magento gives you full control over your website’s information architecture. You can freely manipulate your product directory. When you combine that with the freedom in URL modifications, you end up with a comprehensive set of tools. 

The product directory in Magento is organized in the form of a tree. You can add categories or subcategories and populate them with products. Those products can be found in different categories, but thanks to the “one product – one URL” approach you don’t have to worry about duplicate content.

A preview of the structure of an eCommerce store in Magento


At first glance, the pagination system in Magento seems fine. Products are split into pages using the default of 12 products per page. Every pagination link has a proper href attribute, which is crucial for Googlebot. But if you dive deeper, it turns out that there are things to improve in Magento’s system of pagination.

Pagination links do not have the rel=”prev/nextattribute. These attributes are not used by Google anymore, but other search engines like Bing and various web browsers still make use of it. Those attributes will not harm your website and may be useful for search engines.

A preview of a paginated page in Magento
Chrome Developer Tools view of the pagination in Magento

The next thing to improve is the handling of canonical tags on pagination pages. By default, every single pagination URL is canonicalized to the category root page. This might cause some issues with indexing your products. Magento does not allow you to modify the canonical tags, you can only enable or disable them.

One more drawback of Magento’s pagination system is that it creates an exact duplicate version of all your root category pages with a “p=1” parameter. While this may well go unnoticed by your customers, it is a minor waste of your crawl budget.

Thin content

First things first: you need to make sure that every single page in your website’s structure is valuable to your users and serves its own, unique purpose. But if for some reason, you want to have some pages with only a little or no valuable content at all, you should noindex them. It’s considered one of the SEO basics.

Unfortunately, Magento does not make that easy for you. There are no built-in mechanics that handle meta robots tags. You are forced to write your own code or find a third-party extension.

Magento search result pages are indexable by default. This carries a risk of tons of low-quality content being indexed. So it is good practice to disable crawling of the whole search section in robots.txt file at the very beginning.

Related items

If you want to display related products on your product pages – you can, but you need to specify them manually, for every single product. It’s a lot of work if you have a big shop with thousands of items. The good thing is that you have everything under your control, so it’s easy to make sure that items that show up are really related to the viewed product (which may not be the case when you’re automating the process).

There is one problem with related items in Magento – they are generated with JavaScript. Our research shows that those page sections are often omitted by Googlebot. If you have the resources, consider manually placing links to related products in the source code of your product pages. That way, you can be more certain that Googlebot will pick them up.

Multilingual store

Magento lets you easily create various versions of your website, like when you want to change the visuals during a sale or the Christmas season.

However, things get complicated when you want to implement another language. First of all, you need to install a language pack for your desired localization, then you need to manually translate all of the product and category names and descriptions, otherwise you will end up with a lot of duplicate content. Afterward, you’ll notice that there are no hreflang tags implemented. Hreflang tags help search engines decide which version of your site to display in the search results in different countries.

The most efficient way to handle this is to install one of the available hreflang extensions. 

Wrapping up

We’ve covered everything you need to know before setting up your website in Magento. There are pros and cons to every e-commerce platform, and Magento is no different. While it takes a lot of effort to make it run smoothly, it scales very well, and managing large amounts of products and categories is streamlined and efficient. That makes it a solid platform choice if you plan to go big.

If you think your Magento implementation is holding you back, contact us for technical SEO services.