Magento SEO Guide
If you're running a Magento store, your biggest SEO win is not content — it's killing the duplicate URLs that faceted navigation creates.
Start here
- Audit your faceted navigation and noindex or canonicalise any filter combination that doesn't drive meaningful traffic.
- Set up proper canonical tags on every product page — Magento can generate the same product under multiple category paths.
- Split your XML sitemap into multiple files if you have more than 10,000 pages; keep each file under 50 MB and 50,000 URLs.
- Write unique title tags and meta descriptions for every category and product page — avoid the default 'Product Name – Store Name' pattern.
- Add structured data (Product schema) on all product pages and test with Google's Rich Results Test.
Plain-English take
[Magento SEO](/magento-seo/) is not like Shopify or WooCommerce. You get total control, but that control can hurt you if you don't lock down the right settings. The biggest problem I see is faceted navigation. A typical Magento store lets customers filter by colour, size, price range, and brand. Each filter combination can create a new URL — sometimes hundreds of thousands of them. If you let Google crawl all those, you waste your crawl budget and pollute the index with near-identical pages.
I start every Magento project by running a crawl with Screaming Frog or Sitebulb, filtering for URLs with three or more query parameters, and then deciding which ones deserve indexation. Anything that doesn't add a unique product set gets a noindex tag or gets blocked in robots.txt. The default Magento XML sitemap also needs work. By default, it includes every product and category, but it will also include filtered URLs if you're not careful. I always check the sitemap after a week of crawling and remove any non-canonical URLs.
Canonical tags are another area where Magento trips people up. The platform can show the same product under /category-a/product and /category-b/product. If you don't set a canonical tag to the preferred URL, Google might pick the wrong one. I've seen stores lose ranking because the canonical pointed to a category path that no longer existed. The fix is simple: in Magento admin, go to Stores > Configuration > Catalogue > Search Engine Optimisation and set "Use Canonical Link Meta Tag for Categories" to Yes. Then test a few product pages to confirm the canonical points to the shortest, cleanest URL.
Performance is also part of SEO. Magento is heavy. Google uses Core Web Vitals as a ranking factor, and a slow Magento store will struggle. I always enable full-page caching, use a CDN, and minimise JavaScript. If you're migrating to Magento or building a new store, choose a good host — don't cheap out on shared hosting. I've seen a $50/month VPS outperform a $200/month shared plan because the VPS had proper caching and fewer neighbours.
Finally, don't ignore structured data. Magento has built-in support for Product schema, but it's often incomplete. I add the fields for 'availability', 'price', 'priceCurrency', and 'sku' on every product page. Then I test with Google's Rich Results Test. Once that's done, you can move on to content — but only after the technical foundation is solid.
When it actually matters
Magento SEO matters most when you have a large catalogue — say, 10,000 products or more. At that scale, crawl budget and duplicate content become real problems. I've audited stores with 50,000 products and 500,000 filtered URLs. Cleaning those up doubled their indexed pages from 30% to 60% of the product set, and organic traffic grew by 40% over six months.
It also matters when you're running a custom Magento installation. The default configuration is okay for a small store, but once you add custom modules, custom URL structures, or multiple store views, you need to check every setting. I've seen a store with a custom layered navigation module that created URLs like /catalogue/product/view/id/123 — those are indexable and useless. Blocking them in robots.txt took a week of crawling to recover.
If you're selling products that have many variants (size, colour, material), Magento's URL handling can create duplicate pages for each variant. I had a client selling 200 products with 10 variants each, and Google was indexing 2,000 URLs instead of the canonical 200. The fix was to use the 'parent' product as the canonical for all variants and to hide variant URLs from the sitemap.
However, Magento SEO is overkill if you're a small store with fewer than 500 products and no plans to scale. In that case, you'd be better off with a simpler platform like Shopify or WooCommerce and investing your time in content and backlinks. I've written about the [best ecommerce platform for SEO](/best-ecommerce-platform-for-seo/) and compared the trade-offs. Magento gives you power, but it also demands hours of setup and maintenance. If you can't commit to a monthly technical audit, don't use Magento.
One more thing: when you're migrating from another platform to Magento, SEO is critical. Redirects, URL structure, and canonical tags all need to be planned before the switch. I've seen revenue drops of 50% because of broken redirects. So if you're moving to Magento, hire an [ecommerce SEO consultant](/ecommerce-seo-consultant/) who knows the platform.
What I got wrong
I used to think that canonical tags alone would solve Magento's duplicate content problems. I was wrong. Canonical tags are a strong signal, but Google doesn't always follow them — especially if the duplicate page has more external links pointing to it. I had a client with a product accessible via /category-a/product and /category-b/product. The canonical pointed to /category-a, but /category-b had the backlinks. Google ignored the canonical and indexed /category-b instead. The fix was to 301 redirect the non-canonical path, not just canonicalise it.
I also underestimated how many filtered URLs Magento can generate. In my first Magento project, I thought blocking the '?price' parameters would be enough. But the store also had '?size', '?colour', '?brand', and combinations of all four. The number of unique URLs exploded. I had to write a custom robots.txt rule to block all URLs with more than one parameter, but that blocked some useful pages. The better approach is to implement a canonical tag on every filter page that points to the parent category, and only index the specific filter combinations that you know people search for.
Another mistake: I assumed the default Magento sitemap was fine. It's not. The default sitemap includes all products, categories, and CMS pages, but it also includes product pages with query parameters if you have the 'Use Categories Path for Product URLs' setting enabled. I had to manually exclude those by editing the sitemap generation logic. I now always generate the sitemap, check it in Google Search Console, and then remove any non-canonical URLs.
Finally, I used to ignore the XML sitemap size limit. Magento's default sitemap can create one file for all URLs. If you have more than 50,000 URLs, Google will only process the first 50,000. I didn't split the sitemap, and Google ignored half of my products for months. Now I split the sitemap by product, category, and CMS pages, and I keep each file under 50 MB. I also use the 'Generate Sitemap' function in Magento admin and set the 'Maximum Sitemap File Size' to 50 MB.
If you're new to Magento SEO, I recommend starting with an [ecommerce SEO audit](/ecommerce-seo-audit/) checklist. Don't trust the defaults — verify everything.
Next step
Quick answers
Does Magento handle SEO out of the box?
Partially. It includes basic features like canonical tags, XML sitemaps, and meta fields. But the default settings often create duplicate URLs and unfiltered sitemaps. You need to customise the configuration to match your catalogue size and URL structure.
Should I use a Magento SEO extension?
Only if you're not comfortable editing templates and configurations. Extensions like Yoast for Magento or Mageplaza SEO can help with title templates and hreflang tags. But I prefer doing it manually — it's less bloat and you understand exactly what each setting does.
How do I fix Magento's slow page speed for SEO?
Enable full-page caching, use a CDN, compress images, and minify CSS/JS. Also, consider upgrading to Magento 2.4+ which has better performance. I've seen a 2-second load time drop to 1.2 seconds just by switching to Varnish cache.
Sources
Primary documentation is linked directly. Anything commercial is marked nofollow.
- Google Search Central Documentation — Primary reference for canonical tags, sitemaps, robots.txt, and structured data.
- Magento / Adobe Commerce Documentation — Official guide for configuring Magento SEO settings like URL structure, sitemaps, and canonical tags.
- Google Search Central: Sitemaps — Explains sitemap limits and splitting rules that I apply to Magento stores.
- Google Search Central: Robots.txt — Used to block filtered URLs and non-essential parameters in Magento.
- Google Search Central: Canonicalization — Covers how Google handles canonical tags, which informed my approach to duplicate URLs in Magento.
Notes from Callum Bennett.