Magento 2 SEO: the configuration defaults to change, faceted URL control, and the speed work that matters
The exact admin settings that cause duplicate product URLs, how to stop layered navigation generating unlimited pages, and what to fix first on an Adobe Commerce or Magento Open Source store.
Published by AI Knows Us · Updated 12 October 2026
Magento SEO starts in the admin, because several defaults in a fresh Magento 2 or Adobe Commerce install work against you. Set the canonical link meta tag to Yes for both products and categories, leave Use Categories Path for Product URLs set to No, keep Create Permanent Redirect for URLs if URL Key Changed set to Yes, remove the store code from your URLs, and make sure cron is running so the XML sitemap regenerates. After that, the two jobs that decide how a Magento store performs are controlling the URLs that layered navigation generates, and front end speed, because the default theme is heavy and a catalogue multiplies every page weight problem you have.
This page covers the platform specific configuration and crawl control. For product copy and category content, which is where the ranking actually comes from, that is a merchandising job.
The settings to change, and where they live
| Setting | Where | Set it to |
|---|---|---|
| Use Canonical Link Meta Tag for Products | Stores, Configuration, Catalog, Catalog, Search Engine Optimization | Yes. A default install ships with it off, and this is the single biggest win on most stores |
| Use Canonical Link Meta Tag for Categories | Same screen | Yes, with the pagination caveat below |
| Use Categories Path for Product URLs | Same screen | No. Turning it on gives every product a URL under every category it sits in |
| Create Permanent Redirect for URLs if URL Key Changed | Same screen | Yes. This is what writes the 301 when a merchandiser renames a product |
| Product and category URL suffix | Same screen | Pick one and never change it. Changing a suffix renames the whole catalogue at once |
| Add Store Code to URLs | Stores, Configuration, General, Web, URL Options | No, unless your architecture genuinely requires it |
| Use Web Server Rewrites | Same screen, Search Engine Optimization | Yes, so URLs lose the index.php segment |
| Auto redirect to Base URL | Same screen, URL Options | Yes, so one hostname wins |
| Product Fields Auto Generation masks | Stores, Configuration, Catalog, Catalog | Set the meta title and meta description masks with variables, so a 4,000 product import never ships with empty tags |
| Search Engine Robots | Content, Design, Configuration, edit your theme | Write your robots.txt here, per store view |
| XML sitemap | Marketing, SEO and Search, Site Map | Generate per store view, and confirm cron is actually running |
Adobe's own documentation on catalog and product URLs is the reference for how these interact.
The duplicate URL trap, explained
Magento builds URL rewrites in a table, and that table grows every time a category tree or a URL key changes. Two settings decide how big the problem gets.
- Use Categories Path for Product URLs. With it on, a product in three categories gets three URLs plus the direct one. That is four addresses for one product, multiplied across the catalogue. Keep it off, keep the flat product URL, and let breadcrumbs show the hierarchy.
- Canonical tags off. Without them, every variant URL, every sort order and every filter combination is an independent candidate for indexing. Turning them on consolidates the lot.
One caveat to decide deliberately: with the category canonical setting on, Magento points parameterised and paginated category URLs at the clean category URL, which means page two of a listing canonicalises to page one. On a store where deep pages hold products that are not linked elsewhere, make sure those products are reachable another way, through the sitemap and through internal links, before you accept that behaviour.
Layered navigation is the real crawl problem
Faceted filters multiply. Three filters with five values each, combinable, plus sort order and page size, is thousands of URLs for one category. Left alone, crawlers spend their time there instead of on your products.
- Decide which facets deserve an indexable page. Usually a small number, such as brand or a core category attribute with real search demand. Build those as proper category pages with their own copy, rather than leaving them as parameter URLs.
- Keep everything else out of the index through the canonical tag, and keep sort, page size and display parameters out of the crawl.
- Use the Search Engine Robots field for the parameters that have no business being crawled at all. A starting point:
User-agent: *
Disallow: /*?product_list_order=
Disallow: /*?product_list_limit=
Disallow: /*?product_list_mode=
Disallow: /checkout/
Disallow: /customer/
Disallow: /catalogsearch/
Sitemap: https://example.com/sitemap.xml
Test any rule against real URLs from your log files before deploying it, and never disallow a path you also expect to carry canonical signals, because a blocked URL's canonical tag is never read.
Speed, which on Magento is an infrastructure decision
- Production mode, with static content deployed and compiled. A store left in developer mode is slow for reasons no front end work will fix.
- Full page cache in Varnish, not in the built in file cache, plus Redis for sessions and cache, and a healthy search engine service for catalogue search.
- The theme. The default Luma theme ships a large JavaScript payload. Stores that take Core Web Vitals seriously usually move to a lighter front end, and that is a project rather than a setting.
- Images. Serve product images at display size in a modern format, and keep the gallery to what a shopper needs on the first screen.
- Third party extensions. Audit what each one loads on a category page. On most stores this is where the weight is.
Measure on a real product URL and a real category URL in PageSpeed Insights, and treat the field data in Search Console as the verdict.
Product markup and stock status
Magento's default output is light on structured data, so add Product markup with offers, price, currency and availability, and validate it on a live URL with the Rich Results Test against the requirements in Google's search gallery. Then decide a policy for discontinued products: redirect to the nearest live product or category when a close match exists, and return a clean 404 or 410 when it does not. Leaving thousands of out of stock pages live with no stock and no copy is a slow drag on the whole catalogue.
Where people get stuck on Magento 2 SEO
Which Magento 2 settings cause duplicate content?
Use Categories Path for Product URLs, the two canonical tag settings being off, store codes in URLs, and uncontrolled layered navigation parameters. Fix those four and most duplication on a Magento store disappears.
Should I keep the .html suffix on product URLs?
Either is fine. What matters is not changing it after launch, because a suffix change rewrites every product and category URL in the catalogue and needs the redirects to go with it.
My sitemap is empty or out of date. Why?
Magento generates the sitemap on a schedule, so the usual cause is cron not running. Check the cron jobs first, then the sitemap configuration per store view, then confirm the file is reachable at the URL you submitted.
How do I handle multiple store views for different countries?
One store view per market, each with its own base URL, its own sitemap and its own robots configuration, and hreflang annotations linking the equivalent pages. Generate the sitemaps per store view rather than one combined file.
Do I need an SEO extension?
The settings above come with the platform. Extensions earn their place for finer canonical and pagination control, bulk meta rules, redirect management at scale and hreflang automation. Configure the native settings first so you know what you are actually missing.
Why did traffic drop after we reorganised the category tree?
Category restructuring rewrites URLs in bulk. Check the url_rewrite table for the old paths, confirm 301s exist for every changed URL, and regenerate and resubmit the sitemap. Then watch the Page indexing report for pages newly reported as not found.
Check the store the way an assistant reads it
Faceted URLs, duplicate product paths and slow category pages are fixed in configuration. Their effect is easy to verify in an unexpected way: ask an assistant a question about one of your products and see which URL it cites.
If it cites a filtered or duplicate address, the cleanup in this guide is not finished. If it cites a clean canonical page, the work is showing. The test needs no crawler, only a question and a careful look at the link. AI Knows Us records the cited URLs for a list of products.