# Magento SEO audit checklist for 2026

Crawl, index, Core Web Vitals and AI search visibility on Magento 2 and Adobe Commerce. A four-layer audit.

- Date: 2026-08-24
- Category: Magento

A Magento SEO audit in 2026 is still a crawl, index, speed and visibility job, not a plugin toggle. I run it on Magento 2 and Adobe Commerce catalogues because that is where filter URLs, thin category copy and incomplete product markup quietly eat organic demand. This note is for developers and merchandisers who already have a live store, not for a greenfield demo.

I have spent eighteen years on storefronts, including three Magento appliance stores where year-on-year sales rose $2.5 million over three years. The SEO work that held was never a single “optimisation” ticket. It was a four-layer audit: can Googlebot get in, can it index the right URLs, can a shopper use the page fast enough, and can an AI search crawler even see the catalogue. Adobe’s own [Adobe Commerce SEO](https://experienceleague.adobe.com/en/docs/commerce-admin/systems/seo) admin docs still sit under systems and design. They tell you where the switches are. They do not tell you which combination of switches is currently leaking crawl budget on a 40,000 SKU store.

## What a Magento SEO audit actually covers in 2026

A Magento SEO audit covers four layers that have to agree: crawl access, index selection, Core Web Vitals, and AI search visibility. If any one of those is wrong, the other three look healthy in a dashboard and still fail in Search Console.

Crawl is robots.txt, XML sitemaps, pagination, layered navigation parameters, store-view URL suffixes, and the usual Magento traps: `/checkout/`, `/customer/`, `/catalogsearch/`, session IDs, and `___store=` parameters. Index is canonicals, hreflang if you have locales, meta robots on CMS and category pages, and whether configurable products, simples and out-of-stock SKUs all fight for the same query. Speed is LCP on category and product templates, INP on add-to-cart and filter clicks, CLS on image galleries. AI visibility is whether OAI-SearchBot, Claude-SearchBot, PerplexityBot and Google’s own AI surfaces can fetch the same HTML a shopper sees, plus whether Product JSON-LD is complete enough to be cited.

I still start with a crawl, not with copy. Screaming Frog or Sitebulb against production, logged out, with JavaScript rendering on a sample, and a second pass of the XML sitemap compared to the HTML crawl. Magento loves to sitemap URLs that robots.txt later blocks, or to canonical a filter URL to itself while the sitemap lists the clean category. That mismatch is the first finding on most stores I open.

## Why Magento SEO still moves in 2026

Magento SEO still moves because catalogues are bigger, AI answers skim the same product HTML Google already ranked, and Luma-era JavaScript still fails INP on phones. The platform did not get simpler. Merchants added attributes, store views, and marketplace modules. Each one creates URLs.

![Magento SEO audit catalogue work on a large monitor](../../images/blog/magento-seo-audit-2026-1.jpg)

What changed since the last “we did SEO in 2019” project is the fourth layer. Google was always the primary crawler. In 2026 ChatGPT search, Perplexity, Gemini and Copilot also fetch pages, and they obey robots.txt more strictly than people assume. A default Magento robots file that was written to hide query strings from Googlebot can also hide the whole catalogue from an AI retrieval bot that only matches `User-agent: *`. I treat that as an SEO finding, not a branding experiment.

Core Web Vitals also changed the audit. INP replaced FID. Magento Luma stores often pass a lab Lighthouse run on a cached homepage and fail field INP on category filters. That is a ranking and conversion issue. I do not wait for a Hyva rebuild to say so. The audit should name the template and the module, not “the site is slow”.

The other shift is schema honesty. Google’s product rich results want `Offer` with price, currency and availability, and they have been tightening shipping and return fields for Merchant listings. Magento’s native markup is often microdata fragments or incomplete JSON-LD from a theme. An audit that only checks “schema plugin installed” is not an audit.

## How a Magento SEO audit works on a live catalogue

A Magento SEO audit works by sampling every template type, then proving indexation with Search Console, not with a staging Lighthouse score. I walk production as a guest, then as a customer, then through the sitemap.

I pull robots.txt and the sitemap index first. Magento generates robots from Content, Design, Configuration, Search Engine Robots. Cloud projects sometimes serve that file from `pub/media` via Fastly, so the browser URL can lie until cache is purged. I fetch it with curl and with Google’s robots testing tool. Then I list sitemap files: category, product, CMS. I want counts that match merchandising, not a sitemap that still lists 8,000 disabled simples.

Next I crawl. I include query-string URLs only enough to see the damage. Magento faceted navigation is the usual explosion: colour, size, price, stock, brand, stacked. I record whether filters are AJAX with no crawlable URL, query parameters with a self-canonical, or rewritten paths that look like real categories. Each pattern needs a different fix. I wrote the production version of that decision in [Magento faceted navigation and crawl budget](https://alanvo.com/blog/magento-faceted-navigation/). The audit does not implement the whole filter strategy on day one. It names which facets should be indexable and which must be `noindex` or disallowed.

![Warehouse shelves standing in for a Magento inventory grid](../../images/blog/magento-seo-audit-2026-2.jpg)

On product pages I check one simple, one configurable with variants, one bundle or custom option, one out of stock, and one with reviews. I look at canonical, title, H1, breadcrumbs, and JSON-LD. I want `Product` plus `Offer` with `availability`, `price` and `priceCurrency`. I want reviews only if they are real. Fake `AggregateRating` is a manual action waiting to happen. The deeper markup notes are in [Magento product schema for Google and AI search](https://alanvo.com/blog/magento-product-schema/).

Store views and locales get their own pass. Magento will happily serve `/uk/` and `/us/` with duplicate titles and a missing hreflang cluster. Currency and language are not the same thing. A store view that only changes tax display should not look like a unique locale to Google.

Then speed. I use CrUX or Search Console Core Web Vitals, grouped by URL prefix: `/`, category path, product path, checkout. Lab scores on the homepage are a vanity number. Field INP on PLP filter chips is the number that matches “the site feels dead”. If Luma is the theme, I already know RequireJS and Knockout will dominate the story. If Hyva is the theme, I still audit third-party modules that reintroduce Luma JavaScript.

Finally AI. I read robots.txt for named AI user-agents, I check whether HTML is server-rendered enough to be useful without executing a 400KB JS bundle, and I check whether a crawler that is not Googlebot is blocked by WAF rules that only allow Google’s IP ranges. That last one is more common than it should be on Magento Cloud and behind aggressive CDNs.

## Production checklist for the four layers

1. Fetch `/robots.txt` from production and from Google’s tester. Confirm there is no blanket `Disallow: /` that a wildcard `User-agent: *` applies to AI crawlers. Keep checkout, cart, customer, search and admin hidden. Do not list the admin path.

2. Open the sitemap index. Count product and category URLs. Compare to admin: enabled, in stock if that is your index rule, assigned to the website. Remove disabled and not-visible simples from the product sitemap if they are not meant to rank.

![Boxed products on a packing bench](../../images/blog/magento-seo-audit-2026-3.jpg)

3. Confirm canonical tags on category, product and CMS. Magento’s “Use Canonical Link Meta Tag” settings are a start. Modules that rewrite layered URLs often ignore them. Spot-check ten filter URLs.

4. Decide the facet policy before touching copy. Which attributes deserve a landing page. Which must stay `noindex,follow`. Which should never create a URL.

5. Sample titles and metas: homepage, two categories, two products, one CMS, one blog if it exists. Magento default titles that end with the store name on every SKU are a finding.

6. Validate Product JSON-LD with Google’s rich results test and with a raw view-source, not only with a browser extension that rewrites the DOM.

7. Check pagination: Magento’s toolbar can create `?p=2` with a canonical to page 1, or with a self-canonical, or with rel next/prev leftovers. Pick one model and make the crawl match.

8. Check image delivery on LCP candidates. Category hero and PDP gallery first. Magento’s native image resize is not the same as a modern `srcset` with AVIF or WebP.

9. Measure INP on category filter, swatch, add to cart, minicart. If the theme is Luma, record RequireJS bundle weight. If Hyva, record leftover Knockout from compatibility modules.

10. Search Console: Coverage or Pages report, sitemap vs indexed, duplicate without user-selected canonical, crawled currently not indexed. Export examples. Magento duplicates are usually www vs non-www, trailing slash, store code in path, and simple vs configurable.

11. WAF and bot management: allow Googlebot, Bingbot, and the retrieval bots you actually want. Do not rate-limit them into 429s and then wonder why indexation stalled.

12. Staging: Magento staging often ships with `noindex` or `Disallow: /`. Confirm production config is not still pointing at the staging robots row after a content deploy.

## What breaks after you “fix SEO”

The first thing that breaks is faceted navigation sales. Merchandisers live on filters. If you `Disallow: /*?` globally, you also hide paginated and sorted URLs that Google did not need, which is fine, and you can hide a campaign landing page that used a query parameter, which is not. Scope the disallow. Prefer `noindex` on parameter URLs you still need humans to open.

The second break is configurable products. Magento can index every simple child. That looks like a ranking win until the simples cannibalise the parent and show a broken add-to-cart. The audit should set visibility: parent configurable indexable, children not visible individually unless they have a genuine unique search demand and a unique URL.

![Watch product still used as a Magento PDP example](../../images/blog/magento-seo-audit-2026-4.jpg)

The third is cache. Full-page cache plus a Varnish or Fastly layer will serve stale canonicals and stale robots after an admin save. I treat “I saved it in admin” as incomplete until the edge cache for `/robots.txt` and a sample PDP is purged.

The fourth is modules. SEO suites on Magento often inject extra canonicals, extra JSON-LD, and extra H1s. Two plugins both outputting Product schema is worse than none. View-source, search for `application/ld+json`, count the graphs.

The fifth is legal and review markup. Copying star ratings from a marketplace feed into `AggregateRating` without on-site reviews is how you get a rich-result drop. If reviews live in a third-party widget that never renders in the HTML, Google and AI crawlers never see them.

## How to measure Magento SEO audit progress

You measure a Magento SEO audit with Search Console index counts, crawl stats, rich-result eligibility, and field Core Web Vitals by template, plus a revenue cut that does not pretend SEO is the only channel. I want a baseline week before any robots or canonical change.

Indexation: number of product URLs in sitemap vs number indexed. Category the same. “Crawled - currently not indexed” should fall after you stop offering junk URLs, not after you stuff more keywords into titles.

Crawl: host-level crawl request count in Search Console. If Googlebot spends half its budget on `?color=` URLs, that is the facet problem, not a content problem.

Rich results: Merchant listings / product snippets in Search Console enhancements. Invalid items should name missing `offers`. Fix markup, then wait for recrawl. Do not celebrate a plugin install.

Vitals: LCP and INP at p75 for PLP and PDP URL groups. Homepage-only CrUX is not the catalogue.

Organic: I look at non-brand product and category landing pages, not the branded homepage. Magento stores often “win SEO” on brand and lose it on the SKU the shopper actually typed. That split is the point of the audit.

I do not invent conversion percentages for a Magento SEO ticket. On the appliance Magento work, the published number is year-on-year sales, which mixed merchandising, UX and SEO. The audit’s job is to make organic landing pages eligible. Merchandising still has to sell the SKU.

## Related Magento work on this site

The four-layer Magento SEO audit is the same shape I used when I directed ecommerce and SEO across [three Magento stores in the retail conversion work](https://alanvo.com/work/retail-conversion/), where year-on-year sales increased $2.5 million over three years. Catalogue SEO, crawl hygiene and on-page work sat next to promotions and measurement. I have also shipped Magento storefronts as contract development, including the [Never Never Distillery Magento shop](https://alanvo.com/work/never-never-distillery/), where product pages have to carry photography and still check out. Those builds are where schema, canonicals and robots stop being a slide and become a theme ticket.

![Retail aisle used while thinking through Magento filters](../../images/blog/magento-seo-audit-2026-5.jpg)

## Magento SEO audit FAQ

### What is included in a Magento SEO audit?

A Magento SEO audit includes crawl access, index selection, Core Web Vitals on PLP and PDP, and AI crawler visibility, plus a sample of titles, canonicals and Product schema. It is not a keyword list and a rewritten homepage H1. If the crawl cannot find the SKU, copy will not save it.

### How long does a Magento SEO audit take on a live store?

A Magento SEO audit on a live store takes days to baseline and weeks to prove, because Search Console and CrUX lag behind deploys. I can list the defects in the first crawl. I cannot honestly say indexation recovered until Google recrawls the sitemap and the junk URLs drop out of the Pages report.

### Does a Magento SEO audit require a Hyva rebuild?

A Magento SEO audit does not require a Hyva rebuild. Hyva often fixes Luma INP and LCP, but robots, canonicals, sitemaps and schema are independent. I still audit Hyva stores. Modules and layered navigation can undo the theme win.

### Can I run a Magento SEO audit only on staging?

You cannot run a complete Magento SEO audit only on staging. Staging is usually `noindex`, has a tiny catalogue, and sits behind a different CDN and WAF. Use staging to test the fix. Prove the audit on production Search Console, production robots.txt, and field vitals.


![Magento SEO audit catalogue work on a large monitor](../../images/blog/magento-seo-audit-2026-6.jpg)


HTML version: https://alanvo.com/blog/magento-seo-audit-2026/
