Platforms: Magento Open Source

Magento SEO Auditingand Quality Assurance

A Magento store with ten thousand products can expose millions of crawlable URLs. Layered navigation filters, sort orders, category paths in product URLs and paginated category pages all generate new addresses for the same products.

This hub treats Magento SEO as crawl management and validation. You crawl the storefront, measure how many URLs each pattern creates, check which ones carry the right canonical and robots signals, and compare the result after every deployment.

Learn the audit workflow here, then open the guide that matches the problem in front of you.

Technical audit focus. Written for Magento 2 Open Source with Luma, Hyvä or custom themes. Most checks apply to Adobe Commerce too.

What are you checking? 3 guides
Baseline, deploy, crawl, compareEvery guide follows the same loop, so results stay comparable from one release to the next.

Definition

What is a Magento SEO audit?

A Magento SEO audit checks what the storefront delivers to crawlers, not what the admin configuration says. It looks at the HTML served through the full page cache, the status codes and URL rewrites behind each address, and the titles, canonical tags, robots meta, structured data and internal links on category, product, CMS and search pages.

On a large catalog it is also a count. How many URLs does each filter, sort parameter and category path produce, and how many of them are indexable? That number decides where crawl budget goes.

The admin shows a setting is on. Only a crawl shows what the theme, extensions and cache actually serve.

Two different jobs

Configuring is not validating

  • ConfigureSet URL suffixes, category paths for product URLs, canonical link meta tags, default robots, the XML sitemap, robots.txt and URL rewrites in the admin. This records what you intend.
  • ValidateCrawl the storefront with filters and parameters followed, then check canonicals, robots meta and status codes on every URL pattern. This shows what was actually delivered.

Why it matters

Why Magento stores need SEO quality assurance

Magento is flexible enough to generate almost any URL. These five situations cause repeat problems on large catalogs.

  1. 01

    Layered navigation multiplies category URLs

    Every filter option is a crawlable link by default. Combine color, size, price and brand with sort and limit parameters, and one category can produce thousands of URLs.

  2. 02

    Products live at more than one address

    With category paths in product URLs, a product in three categories has three category URLs plus the short URL. Canonicals decide which one counts, if they are turned on.

  3. 03

    Extensions override core SEO output

    SEO, layered navigation and theme extensions rewrite canonicals, robots meta and URLs. Two extensions can output conflicting tags on the same page.

  4. 04

    Deployments change more than code

    A release can import configuration, reindex URL rewrites, change a theme and flush the cache at once. A staging base URL or a robots setting can ride along.

  5. 05

    Crawl budget runs out on large catalogs

    When crawlers spend their time on filtered, sorted and paginated variants, new products and updated categories wait longer to be crawled and indexed.

Reference

What to check in a Magento SEO audit

The checks are grouped by technical category and mapped to where Magento controls each one, so you know where to fix what the crawl finds.

01Facets

Layered navigation URLs

Measure how many filter and parameter URLs are reachable, and which of them are indexable.

  • Attribute filters
  • Price ranges
  • product_list_order
  • product_list_limit
  • product_list_mode
  • Multi-select filters

Magento note: filter parameters use attribute option IDs, such as ?color=49. Group crawl results by parameter name to see which attribute creates the most URLs.

02Canonicals

Canonical behavior

Check product and category canonical tags against the URL you want indexed, including on filtered, sorted and paginated pages.

  • Product canonical
  • Category canonical
  • Paginated pages
  • Extension overrides
  • Store views
03Duplicates

Product and category duplicates

Find products reachable through several category paths, configurable product children with their own pages, and URL keys with numeric suffixes.

  • Category path URLs
  • Visibility settings
  • URL key suffixes
  • Duplicate descriptions
  • Duplicate titles
04URLs

URL rewrites and redirects

Check that changed URL keys redirect, rewrites do not chain, and internal links point at final URLs.

  • URL rewrites
  • Permanent redirects
  • URL suffix
  • Redirect chains
  • Broken internal links
05Pagination

Category pagination

Confirm deep category pages are crawlable, linked with plain anchors, and not all canonicalized to page one.

  • ?p= parameter
  • Page depth
  • Canonical on page 2+
  • Products per page
06Access

Robots and utility pages

Keep search results, compare pages, wishlist, cart, customer and review list URLs out of the index and out of crawl paths.

  • Default robots
  • robots.txt
  • catalogsearch
  • product_compare
  • wishlist
  • checkout
07Discovery

XML sitemap

Check the generated sitemap lists only canonical, indexable product, category and CMS URLs, and that cron keeps it current.

  • Sitemap generation
  • Cron schedule
  • Out of stock products
  • Disabled products
  • Store view sitemaps
08Output

Rendered HTML and schema

Check Product, Offer and BreadcrumbList schema in the cached HTML, and confirm links and content are not hidden behind client-side rendering.

  • Full page cache
  • Varnish
  • Product schema
  • Hyvä or Luma output
  • Image alt text

Related: JavaScript SEO explains how rendering affects what crawlers see.

Workflow

How to audit a Magento store step by step

Follow the same seven steps every time. On a large catalog, a repeatable crawl scope matters as much as the checks.

  1. Set a crawl scope and save a baseline

    Decide which parameters to follow and set a URL limit, then crawl and save the result. A first crawl with parameters followed shows the real size of the URL space.

  2. Check one URL from every page type

    Open a category, a filtered category, page two, a simple product, a configurable product, a CMS page and a search result. Confirm title, canonical, robots meta, H1 and schema.

  3. Group URLs by pattern

    Split the crawl by parameter name, category path depth and URL suffix. Patterns that create many indexable URLs are where crawl budget leaks.

  4. Group findings by setting, extension or template

    Fifty thousand filtered URLs with self canonicals is one configuration or extension fix, not fifty thousand problems.

  5. Fix the cause in configuration, code or robots rules

    Change the catalog SEO setting, the layered navigation extension, the template or robots.txt, then note what you changed and in which release.

  6. Deploy, flush caches, crawl again and compare

    Confirm that fixed patterns are gone and that the change did not affect other page types.

  7. Record open issues and schedule the next check

    Tie the next crawl to the next release, extension update or catalog import.

Focused guides

How to audit the parts of Magento that break most

Each guide answers one question and starts from the workflow above.

01Facet QA

Faceted navigation

How many filter URLs can crawlers reach?

Layered navigation, sort and limit parameters create crawl traps unless indexable facets are chosen deliberately.

Unique angle: URL counts per parameter, indexable facet selection, robots and canonical rules.

Read the faceted navigation guide
02Duplicate QA

Product URL duplicates

How many URLs does each product have?

Category paths, configurable children, store views and URL key suffixes all create duplicate product URLs.

Unique angle: category path settings, canonical link meta tags, visibility and URL rewrites.

Read the duplicates guide
03Release QA

After a deployment

What changed after the release went live?

Config imports, extension updates, theme changes, reindexing and cache flushes all land together.

Unique angle: base URL and robots checks, extension regressions, cache warmup, crawl comparison.

Read the deployment guide

Regression detection

How to compare Magento SEO before and after a release

A single crawl tells you what is wrong today. Two crawls with the same scope tell you what changed, which is usually the faster route to the cause.

Keep a crawl from before each deployment, extension update or catalog import. Afterwards, compare URL counts per pattern, indexable counts and canonical targets. A jump in indexable filter URLs is the classic Magento regression.

SiteAuditLint keeps audit history and shows new, fixed and changed issues between crawls, so the comparison does not depend on spreadsheets. See Audit Comparison for how it works.

Illustrative example: crawl before and after an extension update
CheckBaselineAfter updateChange
Crawlable filter URLs4,18038,920+34,740
Indexable filter URLs12038,920+38,800
Products with a canonical tag9,6409,6400
Sitemap URLs returning 20011,20511,2050
Internal links to 4xx pages660

Numbers are made up to show the method. In this example, a layered navigation extension update dropped its noindex rule and turned multi-select filters into plain links.

Examples

Common Magento SEO audit findings

These six problems come up again and again on Magento stores. Each one is easy to miss in the admin and obvious in a crawl.

Frequent findings and what a crawl shows
FindingLikely causeWhat the crawl shows
Filtered category URLs are indexableLayered navigation links followed with no noindex or robots ruleThousands of parameter URLs returning 200 with index robots meta
Products have several live URLsCategory paths used for product URLs, product canonical turned offThe same product title on several URLs with different paths
Sort and limit variants crawledToolbar links to product_list_order and product_list_limit followedCategory URLs multiplied by every sort and page size option
Deep category pages canonical to page oneCategory canonical strips the ?p= parameterPage two and beyond pointing their canonical at the first page
Internal search pages indexedNo noindex or robots rule on catalogsearch result URLsSearch result URLs in the crawl and in Search Console
Canonicals point at the staging hostBase URL copied from staging configuration during deploymentCanonical and sitemap URLs on a non-production domain
Before the update
GET /women/tops.html?color=49&size=167
<meta name="robots" content="NOINDEX,FOLLOW">
<link rel="canonical"
  href="https://www.example.com/women/tops.html">

Filter combination noindexed and canonical to the clean category.

After the update
GET /women/tops.html?color=49&size=167
<meta name="robots" content="INDEX,FOLLOW">
<link rel="canonical"
  href="https://www.example.com/women/tops.html?color=49&size=167">

Same URL, now indexable with a self canonical. Multiply by every filter combination.

Checklist

Magento SEO audit checklist

Reuse this list for every audit. It covers the baseline, the main technical checks, and verification after a release. For a full version, see the technical SEO checklist.

Baseline crawl

  • Fixed crawl scope and URL limit
  • Save the results
  • Note the release, extensions and versions

Faceted navigation

  • URL count per filter parameter
  • Only chosen facets indexable
  • Sort, limit and mode parameters controlled

Canonicals

  • Product and category canonicals on
  • One canonical per page, no extension conflict
  • Production host in every canonical

Duplicates

  • Category path product URLs canonicalized
  • No visible duplicate child products
  • No numbered URL keys

Pagination

  • Deep pages linked with plain anchors
  • Canonical strategy chosen deliberately
  • Every product reachable

Robots

  • Search, compare, wishlist and cart blocked or noindexed
  • Production default robots
  • robots.txt reviewed

Sitemap and schema

  • Sitemap lists only canonical 200 URLs
  • Generation cron running
  • Product and Offer schema valid

After the release

  • Crawl again with the same scope
  • Compare with the baseline
  • Log open issues and the next check date

Tooling

Magento SEO auditing tools

Four kinds of tools each answer a different question. They work together, and none of them replaces the others.

Configure

Magento admin and extensions

Catalog SEO settings, URL rewrites, design configuration and SEO extensions control what the storefront outputs.

Does not show: how many URLs the storefront actually exposes.

Observe

Search Console and server logs

Show indexing status, crawl stats and which URL patterns search engine bots actually request.

Does not show: on-page signals, or problems before bots find them.

Inspect

Site crawlers

Fetch every reachable URL and report status codes, canonicals, robots, metadata and links the way a search engine sees them.

Does not show: what changed, unless you keep and compare earlier crawls.

Verify

Crawl comparison

Sets two crawls side by side to expose regressions after a release and confirm that fixes worked.

Needs: a saved baseline with the same crawl scope.

Count the URLs, then compare them

Magento SEO problems are rarely about one product page. They come from URL patterns, configuration and extensions that multiply across the catalog, so the reliable check is a scoped crawl before and after each release. SiteAuditLint runs that crawl from your own computer and keeps the history for comparison.

Free version audits up to 100 URLs per crawl. Pro adds audit history and comparison.