Adobe Commerce — still widely known by its Magento name and still built on the Magento 2 codebase — is the most complex eCommerce platform we work with. Its scale comes from configurability: every aspect of the catalog, the index, the layered navigation, and the URL structure is configurable, which means every aspect of it can be misconfigured. We have been on Adobe Commerce and Magento for 14 years across hundreds of merchants, and the two areas that absorb the most SEO work on Cloud deployments are the same two areas every time: the indexer system and the faceted (layered) navigation.
This is the playbook.
The indexer system in 60 seconds
Adobe Commerce runs eight named indexers that transform the normalized database state into the denormalized read-optimized tables that power the storefront:
- Design Config Grid (
design_config_grid) - Customer Grid (
customer_grid) - Category Products (
catalog_category_product) - Product Categories (
catalog_product_category) - Product Price (
catalog_product_price) - Product EAV (
catalog_product_attribute) - Stock (
cataloginventory_stock) - Catalog Search (
catalogsearch_fulltext) - Catalog Rule Product (
catalogrule_product) - Catalog URL Rewrites (
catalog_url_path— sometimes counted separately)
The exact count varies slightly by version and by which modules are installed, but every Cloud account has at least the core eight. Each runs in one of two modes: Update on Save or Update on Schedule. Cloud deployments should run every indexer on schedule — Update on Save creates lock contention at scale.
Why the indexer matters for SEO
Three of those indexers directly determine what Googlebot sees on a product or category page:
- Catalog URL Rewrites generates the URL key map. A broken URL Rewrites index produces 404s on products that exist in the database.
- Category Products and Product Categories generate the membership lists that drive category pages. A stale index produces category pages that are missing products that should be there (or worse, that show products that have been disabled).
- Catalog Product Price generates the rendered price for each product on each website and customer group. A stale index produces incorrect prices, which fails Merchant Center validation and undermines
ProductJSON-LD.
If a Cloud account is reporting ranking drops with no obvious code change, the first check is bin/magento indexer:status on the production environment. A reindex hung in working status for hours is enough to break category-page integrity.
Layered Navigation — the faceted-nav crawl trap
Magento's layered navigation generates faceted URLs from every attribute marked as filterable in the admin. The default URL pattern looks like:
/men/shirts.html?color=blue&size=medium&material=cotton
Every combination of every filter generates a unique URL. A category with five filterable attributes and four values per attribute generates 4^5 = 1,024 URL combinations on a single category page. Multiplied across a catalog with dozens of categories, the faceted footprint can balloon into the millions of crawlable URLs. None of them rank; all of them consume crawl budget.
The fix is not a single setting. It is a layered policy:
- Mark attributes as
Use in Layered Navigation: Nounless the attribute is genuinely a primary intent driver for the category. - For filterable attributes that stay on, set the canonical tag on filtered category pages to point to the unfiltered category URL. The native Adobe Commerce theme does this; custom themes often break it.
- Add
?color=*and other faceted parameters to robots.txt withDisallowrules. Adobe Commerce serves arobots.txtyou can edit in the admin (Stores → Configuration → Design → Search Engine Robots). - Use the URL Rewrite system to generate canonical category landing pages for the small number of facet combinations that genuinely rank (color-specific category pages for a fashion brand, for example).
Configurable Products and the variant URL question
Adobe Commerce's Configurable Product is the equivalent of Shopify's variant model — a parent product with associated simple products for each size, color, or other variation. Out of the box:
- The configurable product is the indexable URL.
- The associated simple products are typically marked
Not Visible Individually, which means they do not generate their own indexable URLs. - The
ProductJSON-LD on the configurable page emits a single offer at the configurable level, or sometimes anAggregateOffercovering the range.
The variant URL question on Adobe Commerce is less acute than on Shopify because the platform's defaults are already correct — but only if the admin settings are correct. Check Stores → Configuration → Catalog → Catalog → Storefront → Visible in Catalog/Search and confirm simple products are not surfacing as standalone URLs.
Multi-store, multi-website, and URL structure
Adobe Commerce supports a hierarchy: Website → Store → Store View. A single Cloud instance can host multiple websites (each with its own root catalog), multiple stores per website (sharing the catalog but with different category structures), and multiple store views per store (typically used for language variants).
The SEO implications:
- Each store view should have its own canonical URL structure. The native config supports subfolder URLs (
/en/,/de/) and full hostname overrides. - Hreflang annotations must be emitted between store views that share content in different languages. The native
Stores → Configuration → General → Locale Optionsdoes not generate hreflang automatically — you need either a module or template-level code. - The
robots.txtconfiguration is per-website, not per-store-view. Confirm the right robots policy is bound to the right website.
Core Web Vitals on a complex theme
Adobe Commerce themes are layered: a base theme plus one or more inherited themes plus the storefront-specific theme. The compiled CSS and JavaScript can balloon if the theme inheritance chain pulls in modules that are not actually used. CWV on a default Luma theme is mediocre; CWV on a customized theme can be anywhere from excellent to disastrous.
The wins:
- Critical CSS extraction for above-the-fold content on category and product pages.
- Lazy-load images below the fold. The native
<img>tag in the theme template often does not haveloading="lazy"set. - Defer non-critical JS. The default theme blocks rendering on a bundle that is rarely necessary for first paint.
- Adobe Commerce Cloud's Fastly integration for full-page caching at the CDN tier. Configure this aggressively; the LCP improvements are substantial.
Adobe Commerce vs Magento Open Source — what changes for SEO
Adobe Commerce Cloud adds Fastly, New Relic, page-level caching infrastructure, and the B2B module on top of the Open Source codebase. From a pure SEO perspective, the codebase is the same. The Cloud-specific wins are:
- Fastly-driven page caching for anonymous traffic, which dramatically improves TTFB.
- Built-in B2B module with customer groups, shared catalogs, and quote workflows.
- Production deployment safeguards that prevent the kinds of mid-day reindex disasters Open Source merchants sometimes hit.
The Adobe Sensei module, when licensed, adds product recommendations and search ranking that can improve user behavior signals — indirectly helpful for SEO but not a substitute for the structural work.
Common Adobe Commerce SEO regressions
Recurring failures we see on Cloud audits:
- Faceted navigation URLs indexed because the canonical was misconfigured on the filtered category template.
- Configurable product simple-child URLs leaking into the index.
- Stale indexers producing category pages with the wrong products.
- Sitemap generation cron failing silently for weeks, leaving new products undiscovered.
- Hreflang annotations missing across store views, causing cross-language cannibalization.
- Custom URL key changes during a migration without a corresponding redirect map.
Key takeaways
- The indexer system is the foundation. If
bin/magento indexer:statusshows anything stuck, fix that before anything else. - Layered navigation is a crawl trap by default. Restrict filterable attributes, canonicalize filtered URLs, and disallow faceted parameters in robots.
- Configurable Products are correctly canonicalized out of the box — but only if the admin is configured correctly.
- Multi-store, multi-website, and store-view setups need explicit hreflang handling.
- Fastly is your CWV friend on Cloud. Configure full-page caching properly.
For the Adobe Commerce Cloud cornerstone, see our Adobe Commerce Cloud SEO practice. The broader Magento SEO overview covers the codebase fundamentals across both Cloud and Open Source. For enterprise migrations, Magento Enterprise and our long-running Magento support practices cover the operational side. The platform-by-platform view lives at SEO by platform. When you are ready, let's talk.
