Quick wins for Magento SEO
Whether you’re migrating your existing online store or starting a new one, Magento is considered the ecommerce platform. In this post we are going to dive into SEO best practices to follow, looking at technical considerations and touching on content strategy. We will predominantly be concentrating on Magento Open Source.
What is Magento?
Magento is an open-source ecommerce platform developed by Varien. The first beta was launched in 2007. Since then it has had a number of owners (or maybe “custodians” would be a better term) including eBay, a private equity firm and, most recently, Adobe.
It’s a beast
In 2017, four years after its initial proposed launch date, Magento 2 was released. This may sound like a long delay, but with 1.84 million lines of PHP code and 239,000 lines of JavaScript – before you even consider HTML, CSS, XML, and other entities – you can appreciate the sheer scale of the task.
Given its size, it’s not the easiest ecommerce platform to get to grips with but, when it comes to sheer grunt, there isn’t much out there that can out-punch Magento.
Migrating?
Before we start, if you are migrating from another platform then you might find our post “The site migration tool for redirecting URLs like a boss” helpful.
Is Magento SEO-friendly?
Magento has many SEO-friendly features. However, first and foremost it is an enterprise ecommerce platform that can connect (via APIs and extensions) to a whole host of the world’s most popular payment gateway, order fulfillment, stock management, and CRM systems.
However, regardless of how SEO-friendly, it is out of the box, you’ll always want to be one step ahead of your competitors, right?
Let’s get optimizing. First, start with your theme.
The biggest consideration for any theme is how it handles the main navigation. A good test is to disable CSS and JavaScript (the Web Developer toolbar makes this easy), this then enables you to view the HTML structure. The out the box product Magento offers a pretty elegant solution that uses a semantically pleasing, nested unordered list. We would suggest using a theme that doesn’t deviate too far away from this convention if you aren’t 100% sure what you should be looking for.
Another area to check is to run the theme through Google’s mobile-friendly test. With Google’s mobile-first index nearly fully rolled out, making sure your site is fully mobile-friendly is a must.
Configuration setting
Considering the power of Magento, the backend isn’t too complicated and the options are split quite intuitively. All the following settings can all be found in the “Store – Configuration”.
General – Web – URL Options – Auto redirect to base URL
Selecting “Yes (301 Moved Permanently)” will mean non-www traffic is automatically redirected to www or vice versa.
General – Web – Search Engine Optimization – Use web server rewrites
Magento’s code is based upon a variation of the MVC framework. For non-devs, in simple terms, this means templates are called via the URL structure. This doesn’t always lend itself to human or SEO-friendly URLs. Ensuring this setting is set to “yes” means Magento will tidy up the structure. For example, “storename.com/index.html/page-name” will become “storename.com/page-name”.
General – Web – Base URLs – Base URL
If you are running with an SSL certificate, which all e-commerce sites should be these days, then this should be set to the same as the Secure Base URL that is “https://sitename.com“. This will mean anyone attempting to access HTTP will be redirected to HTTPS.
General – Design – Search Engine Robots – Default Robots
This might seem like an obvious one, but we’ve seen development sites pushed live having a global meta robots tag with the “noindex, nofollow” value. So, ensue when going live this is changed to “index, follow”.
General – Design – Search Engine Robots – Edit custom instruction of the robots.txt file
This is where custom amends to the robots.txt file can be made. You can disallow any pages or directories you do not want search engines to index.
Catalog – Catalog – Search Engine Optimization – Use Categories Path for Product URLs
Let me use the much-coined SEO phrase – “it depends”. If this is set to “no” all products will appear in the root directory which is “storename.com/product-name”. This option is the most manageable and trouble-free setting to use, especially if your products appear in multiple categories.
When set to “yes” the URL will show the path of categories and subcategories, that is “storename.com/categry-name/product-name”.
If you are familiar with the concept of content silos and think it is a strategy you want to employ, then you will want to set this option to “yes”.
You should be aware of potential duplicate content issues though. If you are unsure then it’s really not worth the risk.
Catalog – XML sitemap
This section allows you to set frequency values and priority settings for categories, products, and CMS pages. For most applications the default values are sufficient.
In the “Generation Settings” section, you can also set the sitemap to auto-generate/update by setting “Enabled” to “Yes”. This is usually a good option with the frequency set, depending on how often you add new pages to your site.
Catalog – XML sitemap – Search Engine Submission settings – Enable submission to Robots.txt
This will add a line to your robots.txt file informing the search engines where to find your XML sitemap. You can submit it via the Google Search Console, but a bit of automation is always good. So unless you have a specific reason not to then this should be set to “Yes”.
Site speed, the elephant in the room.
It’s no secret that Google likes a fast site, and it’s also no secret that due to the size of Magento’s code base it doesn’t have the world’s best reputation for speed. However, there are some quick wins you can make.
1. Host server
This will largely come down to your budget. Magento does run a basic shared server environment, but if you can stretch to a dedicated server then you will have so much more processing power at your fingertips
2. Caching
Magento has a sophisticated caching system that should be implemented. If you navigate to “System – Cache Management” you will want to make sure that all caches are set to “Enabled”. Often in the development stage, these can be switched off.
3. Flat catalog
By default, Magento uses the Entity-Attribute-Value (EAV) database system. This means that products and their attributes can be split over many tables. It’s a very flexible model but also slower when compared to a flat system. For this reason, Magento has the option to switch to using a flat catalog. The more categories, products, and attributes you have, the bigger the benefit you will see here. To enable this feature go to – “Configuration > Catalog > Storefront”. Here you will find two options, “Use Flat Catalog Category” and “Use Flat Catalog Product”, set both of these to “Yes”.
4. Image optimization
Ensure that all images are sized no larger than they will appear at their maximum size within your responsive theme. Images should also be saved in the correct format with SVGs used for logos and graphics where possible.
5. Browser caching
This isn’t something that is an option in the backend of Magento. You’ll have to get your hands dirty by manually updating the .htaccess file. There are plenty of resources on the net that can provide guidance on this… just remember to make a backup on the .htaccess before you amend it.
6. HTTP/2
If you know, then you know. If not, it’s best to pop a support ticket into your hosting provider on how to implement this. HTTP/2 allows browsers to perform multiple requests over a single connection. With a basic Magento home page requiring around 200 requests, this is a no-brainer.
7. Extensions
It’s good practice to test your site speed before and after the installation of an extension. You can also do this retrospectively by disabling existing extensions. If you do find an extension that is causing speed problems then you will need to weigh up the benefit vs site speed cost.
Layered navigation
What is generally referred to as faceted navigation is known as layered navigation in Magento. It lets users filter down products in a category by their predefined attributes. This is a feature that users have grown to expect when navigating ecommerce sites. It’s also a feature that has given search marketers more than a few headaches over the years.
If you take as an example a category page with 20 products, and within those products, there are five colors, five sizes, and four styles. When you consider you can filter by any combination of attributes, one category page has now turned into more than 100, all with their own URL. To compound this, you can then also order the products by name, price or number, and then select where you want them ascending or descending. As these options generally also update the URL, we are now up to 600 URLs. When you consider this is just one category you can appreciate it could cause problems with indexing.
Don’t get stuck in the spider web
We have seen ecommerce sites with millions of pages needlessly indexed, due to faceted parameters, on more than one occasion. Not only does this cause issues for Google being able to figure out what are the important pages on your site are, but they can also become spider traps.
This is where search engine bots will spend so much time crawling they essentially give up on your site and go somewhere else.
Managing this issue is where search marketers earn our keep. So, how can we accomplish this in Magento?
Unfortunately, there is not a completely elegant solution that’s straight out of the box. There are extensions that you can install that do make the job a little easier or you could even write some custom code yourself with the help of user forums.
Ultimately what you are looking to achieve are any of the following solutions
- Add a canonical tag that references the non-filtered page
- Nofollow all links to filtered pages and add a “noindex” tag on the linked pages
- “Disallow” the pages in your robots.txt file
Another solution is declaring the URL parameters within Google’s Search Console. At the time of writing, you still have to do this via the old interface.
Which solution you choose, can depend upon the site. For instance, the canonical tag might be a good solution if you have only a few filterable attributes in your layered navigation, but as it still requires Google to crawl the pages to find these tags, if you have 100s of attributes it could use a large proportion of your crawl budget (even though the pages aren’t being indexed).
We have a dedicated post on faceted navigation if you would like to read more on the subject.
What next?
So you’ve got the right products at the right price, you’ve got your technical SEO sorted but so has your competition. How do you set yourself apart so you stand out in the SERPs?
Content
A solid content strategy is what we do best here at Zazzle Media. We won’t dig too deep into this subject here, as we have numerous other posts we will point you in the direction of, and it’s not a topic exclusively related to Magento. What we will do is cover some of the areas you should be looking to cover:
Functional content
You can read up on the importance of having engaging functional content here.
Category content – In the admin area navigate to – Catalog – Categories – [Category] – Content – Description
Category pages will often drive a good proportion of traffic to your site. Categorizing your catalog to align with your keyword research will be worth the time and effort and help your site realize its full potential. When generating copy for the pages, a top tip is to look at the TF*IDF using a tool such as Ryte. This will highlight any words that are over or under-optimized for our page based upon the main topic.
Product descriptions – These descriptions can be added on your mass import CSV file or by navigating to – Catalog > Products > [Product] > Content > Description in the admin area.
Try to steer clear of using descriptions provided directly from the suppliers or manufacturers, as you can bet they’ve already been used on numerous other websites. This can be a big task with larger catalogs, but set a certain amount of resources aside every month and concentrate on your most popular items to start with.
Informational content
There are various ways of publishing news/blog content on Magento. A popular solution is to integrate WordPress using the Fishpig extension. This has been around for years and there are versions for Magento 1 and 2. It allows one-click login to both platforms and lets you associate posts with specific products which is a useful feature.
This is the area where a good strategy can pay dividends. Performing a gap analysis on your top competitors is an effective way to identify quick wins. Some comprehensive informational keyword research will also highlight questions and topics users are searching for. All this information can help you put together a content calendar that should align with business focuses and seasonal trends. Considering the different stages in your sales cycle, and the questions your users might have at these points will enable you to create a comprehensive resource of information.
In summary
Developing a site on the Magento platform isn’t always the cheapest solution to launch an ecommerce website, however, on the flip side, you’ll never want for a more powerful solution or be short of advice from the vast developer community. You also should have any issue in integrating it with the product information management (PIM) tool of your choice.
With a little bit of configuration, you should also have a site that is SEO-friendly. Regardless of the platform, the output is simply a mixture of HTML, CSS, JavaScript, images and other resources. So fundamentally the same rules apply. Also, remember SEO isn’t a one-hit solution, it’s a strategy that is constantly evolving. Stand still and your competitors will catch you up and take your customers.