SEO indexing
This page covers URL and crawling concerns so search engines index the right Adobe Commerce storefront pages on Edge Delivery Services. For how indexing fits with platform SEO and metadata on first-load HTML, start with SEO overview.
These recommendations come from customer and partner storefront projects on Edge Delivery Services. Use them to keep URLs, canonical signals, and crawlers aligned.
Canonical URLs
Section titled “Canonical URLs”- When product detail pages (PDPs) have multiple URLs, set a consistent canonical URL for each product.
- Make sure that canonical URLs do not point to redirects (301).
Configurable products
Section titled “Configurable products”For configurable products, ensure that the canonical URL is set to the parent product URL. This is important because Google might index the child product URLs, which can lead to duplicate content issues.
Folder mapping
Section titled “Folder mapping”When using folder mapping for Commerce pages (PDP, PLP), ensure that the server-side rendered response contains metadata that allows Google to differentiate pages.
Folder-mapped pages (without using bulk metadata ) all look the same and Google might classify them as duplicate and not index them, despite different canonical URLs as Google considers canonical URLs a hint and not an absolute value.
URL format of catalog pages
Section titled “URL format of catalog pages”By default, the boilerplate uses folder mapping for product detail pages (PDP) and dedicated pages for product list pages (PLP). If your catalog has a large amount of PLPs, it might make sense to also use folder mapping for PLPs. A low number of PDPs or PLPs could justify creating dedicated pages for each.
The URL format for folder-mapped PDPs looks like this:
/products/{urlKey}/{sku}This is to include the SEO relevant urlKey parameter and the SKU which is needed to perform Catalog Service queries. Feel free to customize the format as needed. You might need to do advanced customization on the CDN.
Multi-store setups
Section titled “Multi-store setups”For multi-store setups or stores supporting multiple locales:
-
Verify a correct hreflang setup . You can validate using the hreflang Tags Testing Tool .
-
Verify that the
Magento-Store-Codeheader value defined in your storefront configuration is part of the URL for every Catalog Service or Live Search request.
Cache-busting Query Parameter
Section titled “Cache-busting Query Parameter”The Commerce boilerplate template includes a built-in way to prevent stale data from being served. It does this by adding a dynamic cache-busting parameter to Catalog Service requests.
When your configuration headers change, the browser fetches fresh data instead of using cached responses. This helps keep your storefront content up to date.
Here’s how the boilerplate handles it:
- It collects headers from your storefront configuration—
public.headers.all.*andpublic.headers.cs.* - It creates a short hash (5 characters by default) based on those headers.
- It adds the hash to the Catalog Service URL using the format
?cb=<hash>. - When the headers change, it generates a new hash automatically.
This ensures that any change—like a new store code or view code—triggers a fresh fetch and bypasses CDN-cached GET requests to the Catalog Service.
You don’t need to enable or configure anything. The Commerce boilerplate handles everything automatically when:
- The PDP drop-in component initializes.
- Any component sends a request to the Catalog Service.
- Your configuration headers update.
The boilerplate always manages the cb parameter for you.
Redirects
Section titled “Redirects”Ensure proper redirects are set up using the redirects sheet or through your CDN.
- Fallbacks for any potential URL changes (for example, product URLs or missing .html suffixes)
- Redirects that are set up in Adobe Commerce
Sitemaps
Section titled “Sitemaps”- Submit new sitemaps through Google Search Console (Google takes a while to detect new sitemaps).
- If your site is using more than one sitemap, reference all sitemaps in your site’s
robots.txtfile. - Validate sitemap XML (structure and URLs) with a dedicated sitemap or XML validator before you rely on it for discovery—not the hreflang tester, which checks language alternates only.
- You can validate indexing using Google Search Console by inspecting the markup of the crawl to see if all important information was tracked.
- Transactional pages (for example, cart, checkout, and account) should not be indexed.
- Staging or any non-production environments must not be indexed. Once indexed, URLs from a staging environment can reduce traffic to the production environment. It might take a significant amount of time to remove staging URLs from the Google index.