Headless Commerce Platforms
A platform-by-platform SEO comparison of the major headless commerce engines — Shopify Hydrogen, BigCommerce Catalyst, commercetools, Salesforce PWA Kit, Medusa, Saleor, and Elastic Path — covering what each ships out of the box for metadata, sitemaps, redirects, and preview-environment safety, and how to choose.
Every headless commerce platform's marketing page claims it's SEO-optimized out of the box. The reality is a spectrum. Shopify Hydrogen ships the most real scaffolding — a getSeoMeta metadata utility, sitemap routes, robots.txt, and automatic crawler-blocking on preview deployments. BigCommerce Catalyst proxies BigCommerce's own sitemap and uses Next.js App Router metadata conventions. commercetools Frontend and Salesforce PWA Kit give you SDK helpers, not shipped routes — you assemble sitemaps yourself. Medusa, Saleor, and Elastic Path are pure commerce APIs and ship nothing SEO-specific; your Next.js frontend does all the work. Platform choice determines how much scaffolding you inherit, not whether your pages are crawlable — that's still the rendering decision the headless ecommerce hub owns. The two differentiated risks worth budgeting for: preview/staging environments getting indexed (Hydrogen blocks this automatically; others don't guarantee it), and redirect maps on migration (no platform automates them).
Evidence for this claim Choosing a commerce API does not itself determine search rendering; the storefront must produce discoverable content, links, status codes, and metadata. Scope: Google requirements for JavaScript storefronts. Confidence: high · Verified: Google Search Central: JavaScript SEO basics Evidence for this claim Shopify describes Hydrogen as its React-based framework for custom storefronts and Oxygen as its deployment platform. Scope: Shopify-specific platform capability, not Google guidance. Confidence: high · Verified: Shopify Developers: HydrogenTL;DR — A “headless commerce platform” is the engine that runs your products, cart, and checkout and hands that data to a separate storefront you build. Every vendor claims theirs is “SEO-optimized out of the box.” That’s only half true. Some (Shopify Hydrogen, BigCommerceBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. Catalyst) ship real SEO scaffolding — a sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., a
robots.txt, a metadata helper. Others (Medusa, Saleor, Elastic Path) ship nothing SEO-specific and leave all of it to you. Pick based on how much you want to build versus inherit.
What we’re actually comparing here
In a normal Shopify or WooCommerce storeWooCommerce SEO is optimizing a WooCommerce store — which runs as a free plugin on WordPress, not as a standalone platform — to rank in organic search. Because you control the whole stack (templates, URLs, plugins, server), the ceiling is high and the ways to misconfigure it are many., one system does everything: it stores your products, processes orders, and renders the pages shoppers and Google see. A headless setup splits that apart. A commerce engine handles products, inventory, and checkout, and hands that data through an API to a separate frontend that renders what people actually look at.
The commerce engine is the “headless commerce platform.” The major ones as of mid-2026 are Shopify (through its Hydrogen framework and Storefront API), BigCommerce (through Catalyst), commercetools, Salesforce Commerce Cloud (through PWA KitSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration.), Medusa, Saleor, and Elastic Path.
The one thing that matters for choosing
For SEO, the platforms don’t really differ on whether your pages can be crawled — that comes down to how your frontend renders pages, which the Headless Ecommerce SEOAn ecommerce architecture where the commerce engine (Shopify, Commercetools, BigCommerce) is decoupled from the storefront frontend. A separate JavaScript framework (Next.js, Remix, Nuxt) renders pages and fetches product data via API — giving full UI control at the cost of owning all SEO basics yourself. hub covers in full (SSR, SSG, CSR). What they differ on is how much SEO plumbing they hand you for free versus how much you have to build yourself.
Think of it as three groups:
- They give you a lot. Shopify Hydrogen and BigCommerce Catalyst both ship a
working example storefront with a sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., a
robots.txt, and a way to set your title tagsThe title tag is the HTML title element in a page's head that specifies the document's title. It's the primary source for the SERP title link and a confirmed light ranking factor — but since August 2021 Google doesn't always show it verbatim. and meta descriptionsThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through. already wired in. - They give you helpers, not the finished thing. commercetools and Salesforce PWA Kit hand you the tools to build a sitemap but make you assemble it yourself.
- They give you nothing SEO-specific. Medusa, Saleor, and Elastic Path are
pure “here’s your product data through an API” engines. Every bit of SEO — the
sitemap, the metadata, the
robots.txt— is on you (or on whatever frontend framework you build, usually Next.js).
The thing most people get wrong
“SEO-optimized out of the box” is a spectrum, not a checkbox. Every vendor’s marketing page says it. But Elastic Path’s own SEO blog post doesn’t even mention sitemaps, canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., or redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. — so “out of the box” can mean almost nothing. Don’t take the claim at face value. Ask the specific question: what does this platform ship for sitemaps, metadata, redirects, and keeping my staging site out of Google? The answers vary a lot.
Want the platform-by-platform breakdown, the preview-environment gotcha, and a decision framework for picking one? Switch to the Advanced tab.
Evidence for this claim Choosing a commerce API does not itself determine search rendering; the storefront must produce discoverable content, links, status codes, and metadata. Scope: Google requirements for JavaScript storefronts. Confidence: high · Verified: Google Search Central: JavaScript SEO basics Evidence for this claim Shopify describes Hydrogen as its React-based framework for custom storefronts and Oxygen as its deployment platform. Scope: Shopify-specific platform capability, not Google guidance. Confidence: high · Verified: Shopify Developers: HydrogenTL;DR — Headless commerce platformsHeadless commerce platforms are the commerce engines that expose product, cart, and checkout through APIs instead of rendering their own storefront — Shopify (Hydrogen/Storefront API), BigCommerce (Catalyst), commercetools, Salesforce Commerce Cloud (PWA Kit), Medusa, Saleor, and Elastic Path. Each ships a different amount of SEO tooling out of the box. sit on a spectrum from “ships real SEO scaffolding” to “leaves everything to you.” Shopify Hydrogen ships the most — a
getSeoMetautility, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. routes,robots.txt, and (via Oxygen) automatic crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-blocking on preview deployments. BigCommerceBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. Catalyst proxies BigCommerce’s own sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and uses Next.js App RoutergenerateMetadataconventions. commercetools Frontend and Salesforce PWA KitSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration. give you SDK/API helpers, not shipped routes — you assemble the sitemap yourself, with real paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. limits. Medusa, Saleor, and Elastic Path ship nothing SEO-specific; the frontend owns everything. Two risks are genuinely differentiated by platform: preview-environment leakage (Hydrogen auto-blocks crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. on shareable links; others don’t guarantee it) and redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. maps (no platform automates them). Platform choice sets how much scaffolding you inherit — not whether pages are crawlable, which is still the renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. decision the hub owns.
Platform choice is not the rendering decision
Start here, because it’s the single most common confusion. Whether GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. gets real HTML or an empty shell is decided by your frontend’s renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. model — server-side rendering (SSR), static generation (SSG), or client-side rendering (CSR). That’s the frontend framework’s job, and the Headless Ecommerce SEOAn ecommerce architecture where the commerce engine (Shopify, Commercetools, BigCommerce) is decoupled from the storefront frontend. A separate JavaScript framework (Next.js, Remix, Nuxt) renders pages and fetches product data via API — giving full UI control at the cost of owning all SEO basics yourself. hub covers it in depth. I won’t re-derive SSR vs. CSR here.
What the commerce platform does decide is how much SEO scaffolding you inherit —
the sitemap, the metadata plumbing, the robots.txt, the preview-environment
handling. A pristine SSR setup on Medusa still has no sitemap until you build one; a
CSR mistake on Hydrogen still tanks a product page even though Hydrogen ships every
other piece. Keep the two axes separate: rendering = crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index.; platform =
scaffolding.
The SEO-tooling spectrum
Here’s where the seven platforms land:
Ships real tooling (a working reference storefront with SEO wired in): Shopify Hydrogen, BigCommerce Catalyst.
Ships SDK helpers, not routes (you assemble the sitemap yourself): commercetools Frontend, Salesforce PWA Kit.
Ships nothing SEO-specific (pure commerce API; frontend owns all of it): Medusa, Saleor, Elastic Path.
That framing is the whole article. The rest is the per-platform detail.
Shopify Hydrogen (Storefront API)
Hydrogen is Shopify’s headless framework, and it ships the most complete SEO
scaffolding of anything reviewed here. One correction up front: Hydrogen is not
Remix-based anymore. The npm registry shows @shopify/hydrogen 2026.4.4 peer-depending
on react-router ~7.16.0 with no Remix dependency at all, and Shopify’s own
@shopify/remix-oxygen package now carries a formal deprecation notice telling you to
import from react-router instead. Shopify’s own SEO doc hasn’t caught up to its
own package metadata — as of this check it still reads “Hydrogen uses Remix’s
built-in meta features for SEO tags” — so don’t take that line at face value if
you’re scaffolding a new project; check package.json, not the prose.
Metadata — a purpose-built utility. Whatever the doc calls the underlying router,
Hydrogen still ships the getSeoMeta utility, which makes it easier and more
consistent to render SEO meta tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored.. That getSeoMeta helper handles titles,
descriptions, images, canonical URLs, and JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. — an actual metadata abstraction,
not “bring your own <head>.” It’s the only platform here that ships a dedicated
SEO-metadata utility. Shopify also notes that “By default Hydrogen removes query
parameters from canonical URLs” — a sensible default you can override in your meta
exports.
Sitemap — shipped and self-refreshing. The Hydrogen skeleton template includes
sitemap.xml and per-type sitemap routes out of the box, and its getSitemap
utility generates per-resource-type sitemaps with locale alternates. The sitemap
files are cached for 24 hours, so publishing or unpublishing a product updates the
sitemap automatically within that window — no scheduled job to babysit.
robots.txt — shipped, with a preview safeguard. The template ships a
robots.txt route. And here’s the differentiator: per Shopify’s SEO docs, “If you
make a non-production deployment accessible with a shareable link or an auth bypass
token, then Oxygen overrides the deployment’s robots.txt file with a disallow
rule for all bots and crawlers.” Oxygen (Shopify’s Hydrogen hosting) automatically
blocks all crawlers on preview/shareable-link deployments. That’s a real problem —
duplicate staging content getting indexed — that most platforms leave you to solve
by hand, and Hydrogen just handles.
What’s left to you: verify no product or category route was accidentally left as a resource route that skips SSR (React Router’s framework mode uses the same server-loader pattern Remix used before Hydrogen’s migration), and configure Oxygen caching (the hub’s advanced lens covers stale-cache risk).
BigCommerce headless (Catalyst)
Catalyst is BigCommerce’s Next.js App Router reference storefront. Its SEO scaffolding is real but architecturally different from Hydrogen’s.
Sitemap — proxied, not generated. Per BigCommerce’s Catalyst docs, “Catalyst acts
as an intermediary when handling requests to /sitemap.xml.” It fetches the sitemap
index from BigCommerce (against the channel’s canonical URL) and returns the XML. So
the sitemap appears to be served from your storefront, but the data lives in
BigCommerce, not in your frontend codebase — the opposite of Hydrogen, where the
sitemap route lives inside the app. BigCommerce also warns that “If your storefront
also uses third-party systems that generate content with different URLs, you will need
to submit multiple sitemaps to cover the URLs from various sources,” and notes the
sitemaps “don’t need to reside on the same domain as the website they represent” —
flexible for multi-channel setups, but a footgun if per-channel canonical domains
aren’t configured correctly.
Metadata — Next.js conventions. Catalyst populates generateMetadata and the
alternates.canonical field per route from Storefront API GraphQL data, server-side.
That’s the standard App Router pattern the Next.js SEONext.js SEO is the set of practices and built-in features that make a Next.js site crawlable, indexable, and rankable — rendering mode (SSG/SSR/ISR/Server Components), the App Router Metadata API, sitemap.ts/robots.ts conventions, next/image, and next/link. article already documents in
detail — I’ll point there rather than re-explain generateMetadata syntax.
The migration warning. If you’re moving from BigCommerce’s older Stencil theme to
Catalyst, URL parity is the whole ballgame. As 1Digital Agency’s Dan Kogan puts it in
his Catalyst SEO practitioner guide:
“Do not change established URLs on a Stencil-to-Catalyst migration. Every product,
category, and content URL should match the legacy structure exactly, or you need a
complete 301 redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. map.” He also flags recurring Catalyst regressions —
generateMetadata returning a client-only fallback because the GraphQL query got
thrown to a client component, canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. missing on paginated listing pages, and
Product JSON-LD emitted twice (once by a custom component, once by a third-party
app). All of those are worth a pre-launch check.
commercetools (Frontend / composable storefronts)
commercetools is the enterprise “composable/MACH” option, and its SEO scaffolding is proportionally thinner — you get SDK helper methods, not shipped routes.
Per commercetools’ Frontend docs, the platform generates three separate sitemaps —
static pages, product pages, and category pages — combined into a sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file.. Static
pages come from sdk.page.getPages(), products from extensions.product.query(), and
categories from extensions.product.queryCategories(). But setup is not automatic:
it requires the Frontend Add-On plus manually creating three Next.js route handlers
(sitemap-static.xml/route.tsx, sitemap-products.xml/route.tsx,
sitemap-categories.xml/route.tsx) and a postbuild script to assemble the final
/sitemap.xml. And the product/category queries are cursor-paginated with a 500-item
limit per request, so a large catalog needs paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. logic inside your sitemap
generator. This is the most build-it-yourself of the enterprise platforms for sitemaps
specifically — which tracks with commercetools’ whole no-opinionated-frontend
positioning.
Salesforce Commerce Cloud headless (PWA Kit / Composable Storefront)
PWA Kit’s SEO tooling is the most fragmented and manual of the platforms with an official reference storefront.
Sitemap — the path branches. Per Salesforce’s docs, if your routes are configured
in Business Manager, you create the sitemap in Business Manager; if routes are managed
outside it (custom PWA Kit routing), you build or supplement the sitemap via an API
endpoint instead. There’s no single automatic path — it depends on how the storefront
was set up. For PWA Kit deployments specifically, the manual steps include adding a path
in the ssr.js config, updating the ssrShared property, redeploying the bundle, and
verifying the sitemap is accessible. Salesforce’s own guidance is to schedule a job to
keep the sitemap current — meaning no automatic refresh on catalog changes, unlike
Hydrogen’s 24-hour auto-update. Built-in sitemap handling has been a
requested-but-manual area
on the PWA Kit GitHub repo — useful color that this is a known gap, though the issue is
community signal, not an official statement.
Metadata — tied to Page Designer. PWA Kit’s usePage() hook (from
@salesforce/commerce-sdk-react) and <Page> component expose page name, description,
and route for SEO metadata — but that’s tied to Salesforce’s CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms.-like Page Designer
content model, not a dedicated SEO utility like Hydrogen’s getSeoMeta.
Medusa, Saleor, and Elastic Path — pure APIs
These three are the “leaves everything to you” tier, and it’s worth being blunt about what that means.
Medusa is a pure commerce backend. There’s no dedicated Medusa SEO documentation because Medusa has no opinion on frontend rendering at all. Its Next.js Starter Storefront supports the App Router with React Server Components (so SSR is available), but metadata, sitemap, and canonical mechanics are entirely inherited from whatever Next.js conventions you implement. In practice virtually every Medusa storefront is Next.js — so the Next.js SEO article is your real reference, not Medusa’s docs.
Saleor is the same story: a GraphQL-first headless API (Python/Django backend) with community and Vercel-maintained Next.js storefront templates. SEO is 100% a function of the chosen frontend. Same tier as Medusa.
Elastic Path is API-first with metadata as raw fields you wire up yourself. Its product and category entities support custom fields for SEO metadata that can be, in Elastic Path’s words, “accessed via APIs just like the content that you render to your customers” — but that’s a build-your-own-schema pattern, not a shipped utility. Its slug resource is described as a “lower case, uri friendly string” for building URLs. Notably, Elastic Path’s own SEO for headless commerce blog post (by Kirsten Aebersold — vendor content, not neutral) does say “If you’re dynamically building a page with a JavaScript framework alone, you might want to look into serving up cached versions of the pages to the bots” — but it never covers sitemaps, canonical tags, redirects, or preview environments. When even the vendor’s own SEO page skips half of what you need, “SEO-optimized out of the box” is doing a lot of work.
None of these three are bad for SEO — there’s no platform ceiling. But there’s also no scaffolding to lean on. Everything is a function of the frontend you build.
Preview and staging leakage — the differentiated risk
This is the one place platform choice makes a concrete, measurable SEO difference, so it’s worth calling out separately.
Hydrogen/Oxygen automatically disallows all crawlers on preview and shareable-link
deployments — a built-in safeguard against your staging site getting indexed and
competing with production as duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling.. No equivalent automatic guarantee is
documented for Catalyst, commercetools, or PWA Kit. And it’s not theoretical: 1Digital
Agency reports “Preview deployments indexed by GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer.” as a recurring real-world
failure mode on Catalyst migrations. That’s a single practitioner source rather than an
official platform statement, so treat the specific Catalyst claim as one credible data
point — but the underlying lesson is platform-agnostic: if your platform doesn’t
auto-block preview crawlers, block them yourself (a robots.txt disallow, HTTP auth,
or a noindex header on every non-production environment). On the “everything-to-you”
platforms, this is entirely on you by definition.
Redirect management — a migration concern, not a platform feature
No platform reviewed ships an automatic redirect system. Every headless migration — Stencil to Catalyst, monolith to headless, one commerce engine to another — needs an explicit 301 map from old URLs to new. The consensus across migration-focused trade posts is consistent: re-platforming failures almost always trace back to redirect maps, URL structuresURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly., and structured-data gaps, and you should never launch without a verified 301 map. That’s the same lesson the site’s Site MigrationsA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. article covers in full — I’ll cross-reference it for the checklist rather than re-derive it here. The platform-specific angle is just this: don’t assume any of these engines handles redirects for you. None do.
Portability is the underrated upside
One myth worth killing: switching commerce platforms does not mean rebuilding your SEO from scratch. The rendering layer — your Next.js (or React Router) storefront — is what determines crawlability, and it’s largely portable across commerce backends. A Next.js storefront can point at BigCommerce, Medusa, Saleor, or commercetools with mostly data-layer changes. What changes when you swap platforms is the scaffolding: where the sitemap data comes from, whether there’s a metadata utility, how redirects and previews are handled. That’s a meaningful re-wire, but it’s not “start over.”
And don’t over-index on API quality as an SEO signal, either. A platform’s GraphQL/REST API only determines what data is available to build metadata and sitemaps from. Whether that data actually reaches Google server-side is a frontend/rendering decision — which, again, the hub owns.
Where to go next
- Headless Ecommerce SEOAn ecommerce architecture where the commerce engine (Shopify, Commercetools, BigCommerce) is decoupled from the storefront frontend. A separate JavaScript framework (Next.js, Remix, Nuxt) renders pages and fetches product data via API — giving full UI control at the cost of owning all SEO basics yourself. — the hub: the SSR/SSG/CSR rendering decision, structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. (Product, ProductGroup/hasVariant), and why the GMC feed is independent of rendering.
- Next.js SEO — since Catalyst, commercetools Frontend, Medusa, and Saleor storefronts
are usually Next.js, this is where the
generateMetadataandsitemap.tsmechanics live. - JavaScript SEOMaking sure search engines can crawl, render, and index content that depends on JavaScript. — the general JS-rendering failure modes that apply to any JS-heavy storefront.
AI summary
A condensed take on the Advanced version:
- Platform choice ≠ renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. choice. CrawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. comes from the frontend’s renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. model (SSR/SSG/CSR — owned by the headless ecommerceAn ecommerce architecture where the commerce engine (Shopify, Commercetools, BigCommerce) is decoupled from the storefront frontend. A separate JavaScript framework (Next.js, Remix, Nuxt) renders pages and fetches product data via API — giving full UI control at the cost of owning all SEO basics yourself. hub). The commerce platform decides how much SEO scaffolding you inherit.
- A spectrum, three tiers:
- Ships real tooling: Shopify Hydrogen (
getSeoMetametadata utility, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. routes,robots.txt, auto preview-crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. blocking via Oxygen) and BigCommerceBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. Catalyst (sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. proxied from BigCommerce, Next.jsgenerateMetadataconventions). - Ships SDK helpers, not routes: commercetools Frontend (three-sitemap pattern via SDK methods, manual route wiring, 500-item paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. limit) and Salesforce PWA KitSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration. (sitemap path branches on Business Manager vs. custom routing; manual scheduled regeneration).
- Ships nothing SEO-specific: Medusa, Saleor, Elastic Path — pure commerce APIs; the Next.js frontend owns all SEO.
- Ships real tooling: Shopify Hydrogen (
- Metadata: Hydrogen’s
getSeoMetais the only shipped SEO-metadata utility (title/description/image/canonical/JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal.). Everyone else exposes raw API fields you wire intogenerateMetadatayourself. - Preview/staging leakage is a real differentiator: Hydrogen/Oxygen auto-blocks crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. on shareable links; no equivalent guarantee for Catalyst, commercetools, or PWA Kit (1Digital reports Catalyst previews getting indexed in the wild). Block them yourself if the platform doesn’t.
- RedirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. are a migration concern — no platform automates a 301 map; cross-reference the Site MigrationsA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. article.
- Portability upside: the Next.js frontend is largely reusable across backends; swapping platforms re-wires scaffolding, not your whole SEO.
- Myth to kill: “SEO-optimized out of the box” is a spectrum — Elastic Path’s own SEO post doesn’t even cover sitemaps, canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., or redirects.
Which headless commerce platform (for SEO)?
This walks the SEO-scaffolding tradeoff, not the business/pricing decision. The question at each node is “what do I want to inherit vs. build?”
Official documentation
Primary-source platform documentation, per commerce engine.
Shopify Hydrogen
- Search Engine Optimization for Hydrogen — the
getSeoMetautility, canonical handling, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. and robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. routes, and the Oxygen preview-blocking behavior. - Hydrogen
getSeoMetautility — the metadata helper’s inputs (title, description, image, canonical, JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal.). - Hydrogen
getSitemaputility — per-resource-type sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. generation with locale alternates.
BigCommerceBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. Catalyst
- Catalyst Sitemap docs — how Catalyst proxies BigCommerce’s sitemap indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. (This URL moved from
developer.bigcommerce.comtodocs.bigcommerce.comsince this article was drafted — verified 2026-07-19; the old path 301s here.)
commercetools
- Sitemaps | Frontend Development — the three-sitemap pattern, the SDK methods (
getPages,query,queryCategories), route handlers, and the 500-item paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. limit.
Salesforce Commerce CloudSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration. (PWA Kit)
- Improve SEO with a Sitemap | Composable Storefront — the Business-Manager-vs-custom-routing branch and the manual sitemap steps.
- PWA Kit GitHub issue #1755 — Add Sitemap handling — community signal that built-in sitemap handling has been a manual gap.
Medusa / Saleor / Elastic Path
- Medusa Next.js Starter Storefront — App Router + React Server Components; SEO inherited from your Next.js implementation.
- Elastic Path — SEO for headless commerce websites — vendor blog; useful as the platform’s stated SEO position (note it omits sitemaps/canonical/redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.).
Quotes from the source
Verbatim statements from the platform docs and one named practitioner. Deep links jump to the quoted passage where the source supports it.
Shopify Hydrogen — the metadata utility
- “Hydrogen uses Remix’s built-in
metafeatures for SEO tags, and includes thegetSeoMetautility, which makes it easier and more consistent to render SEO meta tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored..” — Shopify.dev, Hydrogen SEO docs. This exact sentence is still live on the doc, but it’s stale:@shopify/hydrogenno longer depends on Remix (it peer-depends onreact-router ~7.16.0, and@shopify/remix-oxygenis formally deprecated in favor ofreact-router). ThegetSeoMetautility itself is accurate and current. Jump to quote - “By default Hydrogen removes query parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. from canonical URLsHow search engines pick one canonical URL among duplicates and consolidate signals onto it..” — Shopify.dev, Hydrogen SEO docs.
Shopify Hydrogen — preview-crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. blocking
- “If you make a non-production deployment accessible with a shareable link or an auth bypass tokenA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory., then Oxygen overrides the deployment’s
robots.txtfile with adisallowrule for all bots and crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..” — Shopify.dev, Hydrogen SEO docs.
BigCommerceBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. Catalyst — sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. proxying
- “Catalyst acts as an intermediary when handling requests to
/sitemap.xml.” — BigCommerce Developer Center, Catalyst SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. docs. - “If your storefront also uses third-party systems that generate content with different URLs, you will need to submit multiple sitemaps to cover the URLs from various sources.” — BigCommerce Developer Center, Catalyst Sitemap docs.
- “The sitemaps don’t need to reside on the same domain as the website they represent.” — BigCommerce Developer Center, Catalyst Sitemap docs.
Dan Kogan, 1Digital Agency (practitioner, Catalyst SEO)
- “Do not change established URLs on a Stencil-to-Catalyst migration. Every product, category, and content URL should match the legacy structure exactly, or you need a complete 301 redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. map.” Read the guide
- “Use
generateMetadataand SSR-emitted JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. for every PDP and PLP. Do not rely on client-side schema injection.” Read the guide
Elastic Path (vendor blog — treat as the platform’s stated position, not neutral)
- “If you’re dynamically building a page with a JavaScript framework alone, you might want to look into serving up cached versions of the pages to the bots.” Read the post
Mistakes that cost you
Concrete failure modes I’d check for on any headless commerce build.
Trusting “SEO-optimized out of the box” at face value. Why it’s wrong: it’s a spectrum, not a guarantee. Hydrogen ships real scaffolding; Medusa, Saleor, and Elastic Path ship nothing SEO-specific. Elastic Path’s own SEO blog post doesn’t even mention sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., or redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.. Do instead: ask the specific questions per platform — what ships for sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., metadata, redirects, and preview-blocking? — and budget the gaps as build work.
Assuming every platform keeps staging out of Google.
Why it’s wrong: only Hydrogen/Oxygen auto-blocks crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. on preview/shareable
deployments. There’s no documented equivalent for CatalystBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle., commercetools, or PWA KitSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration.,
and at least one practitioner (1Digital Agency) reports Catalyst preview deployments
getting indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. by GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. in the wild. (Single-source claim — treat as one credible
data point, not settled fact.)
Do instead: block non-production environments yourself — robots.txt disallow, HTTP
auth, or a noindex header on every preview/staging URL. Never assume the platform does
it.
Treating a platform swap as “rebuild all SEO from scratch.” Why it’s wrong: the renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. layer (your Next.js/React Router frontend) is what determines crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. and is largely portable across backends — a Next.js storefront can point at BigCommerce, Medusa, Saleor, or commercetools with mostly data-layer changes. Do instead: re-wire only the scaffolding that actually differs — sitemap data source, metadata utility, redirect handling, preview-blocking. Reuse the frontend.
Judging SEO by API quality. Why it’s wrong: the GraphQL/REST API only determines what data is available to build metadata and sitemaps from. Whether that data reaches Google depends on server-side renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. — a frontend decision, not an API one. Do instead: evaluate the rendering model (per the hub) separately from the API. A great API with a CSR frontend still ships empty HTML to crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..
Skipping the redirect map on migration. Why it’s wrong: no platform reviewed automates redirects. Re-platforming failures almost always trace back to missing 301 maps, changed URL structuresURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly., and structured-data gaps. Do instead: build and verify a complete old-URL→new-URL 301 map before launch. On Stencil→Catalyst specifically, keep URLs identical or map every one. See the Site Migrations article for the checklist.
Letting Product JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. render twice, or client-side.
Why it’s wrong: 1Digital flags Product JSON-LD emitted twice (a custom component plus
a third-party app) and generateMetadata returning a client-only fallback because the
GraphQL query got thrown to a client component — both common Catalyst regressions.
Do instead: emit one server-rendered Product block per PDP, and keep the
generateMetadata query server-side. Validate with the Rich ResultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. Test.
Platform SEO scaffolding — at a glance
What each platform ships out of the box
| Platform | Frontend | Metadata | SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. | Preview-crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. block |
|---|---|---|---|---|
| Shopify Hydrogen | React Router 7 (migrated off Remix, 2026) | getSeoMeta utility (title/desc/canonical/JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal.) | Shipped route, 24h auto-refresh | Automatic (Oxygen) |
| BigCommerceBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. Catalyst | Next.js | generateMetadata + alternates.canonical from GraphQL | Proxied from BigCommerce’s indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. | Not documented — do it yourself |
| commercetools Frontend | Next.js | Raw API fields → your generateMetadata | SDK helpers; you wire 3 routes (500-item paging) | Not documented — do it yourself |
| Salesforce PWA KitSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration. | React (PWA Kit) | usePage() hook (Page Designer) | Branches on routing; manual scheduled job | Not documented — do it yourself |
| Medusa | Next.js (starter) | Whatever your Next.js frontend does | Build it yourself | Build it yourself |
| Saleor | Next.js (templates) | Whatever your Next.js frontend does | Build it yourself | Build it yourself |
| Elastic Path | Your frontend | Raw custom fields via API | Build it yourself (not in vendor docs) | Build it yourself |
Fast facts
- Only Hydrogen ships a dedicated SEO-metadata utility (
getSeoMeta). - Only Hydrogen/Oxygen auto-blocks crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. on preview/shareable deployments.
- Catalyst proxies BigCommerce’s sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. — the data lives in BigCommerce, not your app.
- commercetools sitemap queries cap at 500 items/request — large catalogs need paging logic.
- No platform ships automatic redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. management — a 301 map is always your job.
- Platform choice = scaffolding; renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. model (SSR/SSG/CSR) = crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index..
Three-tier summary
- Ships real tooling: Hydrogen, Catalyst
- Ships SDK helpers, not routes: commercetools, PWA Kit
- Ships nothing SEO-specific: Medusa, Saleor, Elastic Path
Headless platform SEO vetting checklist
Run this before committing to a platform, and again before launch.
Scaffolding audit (what the platform gives you)
- Confirmed what ships for metadata — a utility (Hydrogen) vs. raw API fields you
wire into
generateMetadata(everyone else). - Confirmed how the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. is produced — shipped route (Hydrogen), proxied (CatalystBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle.), or SDK/API you assemble (commercetools, PWA KitSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration., Medusa, Saleor, Elastic Path).
- For commercetools: paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. logic in the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. generator for catalogs over 500 items per query.
- For PWA Kit: decided the sitemap path (Business Manager vs. custom routing) and scheduled a regeneration job.
- Confirmed there’s a
robots.txtroute (or built one).
Preview / staging safety
- On Hydrogen: relying on Oxygen’s automatic crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-block — verified it’s active on shareable links.
- On every other platform: explicitly blocked non-production environments
(
robots.txtdisallow, HTTP auth, ornoindexheader). - Checked that no preview/staging URLs are currently indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. (
site:search on the preview domain).
RenderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. (owned by the hub, but verify per platform)
-
curl-checked a product page — title and description present in raw HTML (not CSR-only). - Confirmed category/collection routes also render server-side.
Migration / redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.
- Complete old-URL → new-URL 301 map built and verified.
- On Stencil→Catalyst: URLs kept identical, or every one mapped.
-
ProductJSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. emitted once, server-side (no double-emission from a third-party app).
Verify what a headless store actually ships
The whole point of this article is “don’t trust the vendor claim.” Here’s how to check the claims yourself, per platform, on a live demo or your own build.
Is the product page server-rendered? (shell)
If the product title isn’t in the raw HTML, the page is CSR — no platform scaffolding saves you from that.
# Product name should appear in the raw HTML, before any JS runs.
curl -s https://yourstore.example/products/some-slug | grep -i '<title>'
curl -s https://yourstore.example/products/some-slug | grep -o 'og:title[^>]*'Does the sitemap exist, and where does it come from? (shell)
# Hydrogen ships this route; Catalyst proxies it from BigCommerce; others may 404.
curl -sI https://yourstore.example/sitemap.xml
# Peek at the first URLs to confirm it's populated (not an empty shell).
curl -s https://yourstore.example/sitemap.xml | grep -o '<loc>[^<]*</loc>' | headIs the preview/staging environment blocked? (shell)
The Hydrogen-vs-everyone-else test. On a preview URL, Oxygen should return a
disallow-everything robots.txt.
# On a preview/shareable deployment URL:
curl -s https://preview--yourstore.example/robots.txt
# Hydrogen/Oxygen preview: expect "User-agent: * Disallow: /"
# If it returns your production robots.txt instead, previews can be indexed — block them.Find canonical + JSON-LD in the rendered head (DevTools Console)
Paste into Chrome DevTools Console on any PDP to see whether canonical and Product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two. are actually in the DOM (and whether Product JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. is duplicated — a common CatalystBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. regression):
// Canonical URL the page declares:
document.querySelector('link[rel="canonical"]')?.href ?? '(no canonical)';
// Every JSON-LD block, parsed — watch for TWO Product blocks:
[...document.querySelectorAll('script[type="application/ld+json"]')]
.map(s => { try { return JSON.parse(s.textContent); } catch { return s.textContent; } });One-click canonical checker (bookmarklet)
Save as a bookmark; click it on any product page to alert the declared canonical and how many Product JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. blocks exist (2+ is a problem):
javascript:(()=>{const c=document.querySelector('link[rel="canonical"]')?.href||'(none)';const p=[...document.querySelectorAll('script[type="application/ld+json"]')].filter(s=>/"@type"\s*:\s*"Product"/.test(s.textContent)).length;alert('Canonical: '+c+'\nProduct JSON-LD blocks: '+p);})();Extract every product URL from a proxied Catalyst sitemap (Python)
Useful when you need the URL list for a redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. map or an audit:
import urllib.request, re
url = "https://yourstore.example/sitemap.xml"
xml = urllib.request.urlopen(url).read().decode("utf-8")
locs = re.findall(r"<loc>(.*?)</loc>", xml)
for loc in locs:
print(loc)Remember: a curl that shows an empty <title> or a missing sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. tells you more than
any “SEO-optimized out of the box” claim on a pricing page.
Patrick's relevant free tools
- PDP SEO Checker — Audit raw product schema, price, availability, and visible-price consistency.
Tools for vetting a headless platform
curl/ view-source — the fastest “is this actually server-rendered?” check. If the product title isn’t in the raw HTML, no platform scaffolding matters yet.- Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. — “Test live URL” shows how GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. renders a given product/category page and what canonical it sees. The source of truth over your template.
- Rich ResultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. Test — validate
ProductJSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. per PDP, and catch double-emitted schema (a common CatalystBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. regression). - Screaming Frog SEO SpiderA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. — crawl a staging build to find missing canonicals on paginated listings, orphaned routes, and whether preview URLs are reachable/indexable.
- Ahrefs Site Audit — surface duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling., missing metadata, and redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.-chain problems across a headless build at scale.
site:search on the preview domain — the crude-but-effective test for whether your staging environment has already been indexed.
Frameworks for comparing headless commerce platforms
The two-axis model: rendering and scaffolding
Score the storefront on two independent axes:
- RenderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. determines crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index.. SSR or SSG should put product and category content in the initial HTML; CSR can leave crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. with a shell.
- Platform scaffolding determines what your team must build. Metadata plumbing,
sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. routes,
robots.txt, preview blocking, and redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. ownership may ship, require assembly, or be absent.
A platform with strong scaffolding can still have a CSR implementation problem. A pure API platform can still be excellent for SEO when its frontend implements the missing layer. Never collapse the two scores into one vendor claim.
The inherit–build–operate model
Classify every SEO capability before platform selection:
| Capability | Inherit | Build | Operate |
|---|---|---|---|
| Metadata | Shipped utility or framework convention | Route-level title, canonical, JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. wiring | Regression checks after template changes |
| SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. | Shipped or proxied route | Generators, paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does., multi-source indexes | Refresh jobs and URL-count monitoring |
| Preview safety | Hosting auto-block | Auth, noindex, or environment-specific robots rules | Test every preview deployment pattern |
| Redirects | None of the reviewed platforms automates the migration map | Old-to-new URL rules | Watch chains, loops, and unmapped 404s |
The platform decision is not only build effort. A manual sitemap that works on launch still creates an operating obligation when catalog size, locales, or routing changes.
The evidence ladder
Evaluate a platform claim in this order:
- Raw response evidence:
curl, response headers, and view-source show what a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. receives. - Route evidence: live sitemap, canonical, JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., and
robots.txtbehavior. - Environment evidence: production and preview deployments behave differently where they should.
- Vendor documentation: explains intended behavior, but does not prove the implementation shipped correctly.
- Marketing language: useful only as a question generator.
The evidence ladder keeps “SEO-ready” from substituting for a testable acceptance criterion.
Post-implementation proof for a headless platform
Product HTML and canonical test
Test to run: Fetch a representative product URL with curl -s and inspect the
raw response for its title, product name, canonical, and one Product JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. block.
Expected result: The product content and canonical are present before JavaScript,
and exactly one server-rendered Product object exists.
Failure interpretation: The route may have fallen back to CSR, metadata may be client-only, or multiple schema producers are active.
Monitoring window: Immediate after every product-template or data-fetching change.
Rollback trigger: A release removes indexable product content from raw HTML or duplicates the product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two. across the tested template set.
Sitemap completeness test
Test to run: Fetch the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and child files, then compare sampled product and category URLs with the commerce catalog. For commercetools, include products on both sides of a paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. boundary.
Expected result: Published canonical URLsHow search engines pick one canonical URL among duplicates and consolidate signals onto it. appear once, return 200, and the newest catalog changes arrive on the platform’s documented refresh cycle.
Failure interpretation: The route is missing, a source sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. is not proxied, paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. stops early, or a scheduled generator is stale.
Monitoring window: After launch and after any catalog, locale, routing, or sitemap job change.
Rollback trigger: A deployment drops a material catalog section from the sitemap or starts emitting non-canonical/failed URLs.
Preview-environment isolation test
Test to run: Request a real shareable preview URL’s robots.txt and headers, then
use URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. or an external fetch without authenticated cookies.
Expected result: Non-production URLs are inaccessible to anonymous crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. or carry an environment-wide block; production remains crawlable.
Failure interpretation: The hosting preview safeguard is absent, applies only to one preview pattern, or production rules leaked into staging.
Monitoring window: Immediate for every deployment mode, including branch previews and auth-bypass links.
Rollback trigger: A public preview returns indexable content without the intended block, or the fix accidentally blocks production.
Migration redirect test
Test to run: Request the complete old-URL inventory without following redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.,
then validate status and Location against the approved map.
Expected result: Every changed legacy URL returns one permanent redirect to its closest canonical replacement; preserved URLs remain 200.
Failure interpretation: The platform swap omitted a rule, introduced a chain, or changed a URL that was meant to stay stable.
Monitoring window: Before cutover, immediately after cutover, and during the first post-launch crawl reviews.
Rollback trigger: High-value legacy URLs return 404, loop, chain, or redirect to an irrelevant destination.
Test yourself: Headless Commerce Platforms
Five quick questions on how the major headless commerce platformsHeadless commerce platforms are the commerce engines that expose product, cart, and checkout through APIs instead of rendering their own storefront — Shopify (Hydrogen/Storefront API), BigCommerce (Catalyst), commercetools, Salesforce Commerce Cloud (PWA Kit), Medusa, Saleor, and Elastic Path. Each ships a different amount of SEO tooling out of the box. differ for SEO. Pick an answer for each, then check.
Resources worth your time
My related writing
- JavaScript SEO Issues & Best Practices — the general renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. failure modes (parity, interaction, state, timing) behind any JS-heavy headless storefront; the verify-don’t-trust approach I apply to platform claims here.
- The Beginner’s Guide to Technical SEO — where renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. and crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. sit in the bigger picture.
My speaking
- How Search Works (SlideShare) — crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., rendering, indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and ranking, i.e. the pipeline every one of these platforms feeds into. (My standing disclaimer applies: “This is my understanding of systems… not going to be 100% complete or accurate.”)
From around the industry
- Search Engine Optimization for Hydrogen (Shopify.dev) — the
getSeoMetautility, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing./robots routes, and the Oxygen preview-blocking behavior, straight from the source. - Catalyst Sitemap docs (BigCommerceBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. Developer Center) — how Catalyst proxies BigCommerce’s sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file..
- Sitemaps | Frontend Development (commercetools) — the three-sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. SDK pattern and the 500-item paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. limit.
- Improve SEO with a Sitemap | Composable Storefront (Salesforce Developers) — the Business-Manager-vs-custom-routing branch for PWA KitSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration..
- BigCommerce Catalyst SEO | Next.js Storefront Best Practices (Dan Kogan, 1Digital Agency) — the one deep practitioner piece on Catalyst SEO: URL parity on migration,
generateMetadataregressions, double JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., and preview-indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. - SEO for headless commerce websites (Kirsten Aebersold, Elastic Path) — the vendor’s own SEO position (useful as a case study in what “out of the box” leaves out — no sitemap/canonical/redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. coverage).
- Best headless commerce platforms: 2026 comparison (Vendure) — a broad business/tech-stack comparison of the platforms (with the SEO axis notably missing, which is the gap this article fills).
- Best Headless Commerce Platforms 2026 (Your Next Store) — another platform-selection comparison for cross-referencing the non-SEO decision criteria.
Headless Commerce Platforms
Headless commerce platforms are the commerce engines that expose product, cart, and checkout through APIs instead of rendering their own storefront — Shopify (Hydrogen/Storefront API), BigCommerce (Catalyst), commercetools, Salesforce Commerce Cloud (PWA Kit), Medusa, Saleor, and Elastic Path. Each ships a different amount of SEO tooling out of the box.
Related: Headless Ecommerce, JavaScript SEO, Next.js SEO
Headless Commerce Platforms
Headless commerce platforms are the commerce engines that handle products, carts, and checkout and hand that data to a separate frontend through APIs, rather than renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. their own storefront HTML the way a monolithic platform does. As of mid-2026 the major options are Shopify (via Hydrogen and the Storefront API), BigCommerceBigCommerce SEO is the technical, on-page, and content work you do on a store built on BigCommerce — a hosted SaaS ecommerce platform that ships with more native SEO controls than most of its rivals (editable robots.txt, custom URL structures, auto sitemaps, and automatic 301s), while still leaving faceted navigation, multi-storefront hreflang, and review schema for you to handle. (via Catalyst), commercetools, Salesforce Commerce CloudSalesforce Commerce Cloud SEO is the technical, on-page, and international work you do on a storefront built on Salesforce B2C Commerce (formerly Demandware, commonly SFCC) — an enterprise SaaS platform that ships strong native SEO building blocks (Business-Manager-editable robots.txt, scheduled auto-generated sitemaps, rule-based meta tags, canonical-by-design master/variation products) but leaves hreflang, faceted-navigation URLs, schema, and PWA Kit crawlability to deliberate, platform-literate configuration. (via PWA Kit / the Composable Storefront), Medusa, Saleor, and Elastic Path.
For SEO, the thing that matters is not which engine you pick but how much SEO scaffolding each one ships versus leaves for you to build. That scaffolding falls on a spectrum:
- Ships real tooling — Shopify Hydrogen (a
getSeoMetametadata utility, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. routes,robots.txt, and automatic crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-blocking on preview deployments) and BigCommerce Catalyst (a sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. that proxies BigCommerce’s own indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., plus Next.js App Router metadata conventions). - Ships SDK helpers, not routes — commercetools Frontend (a three-sitemap pattern you wire up yourself via SDK methods) and Salesforce PWA Kit (sitemap setup that branches on your routing, with manual regeneration).
- Ships nothing SEO-specific — Medusa, Saleor, and Elastic Path are pure commerce APIs; SEO is entirely a function of whichever frontend (usually Next.js) you build.
None of these platforms change the underlying renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. decision (SSR/SSG/CSR) that actually determines crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. — that’s the frontend’s job, covered by the headless ecommerceAn ecommerce architecture where the commerce engine (Shopify, Commercetools, BigCommerce) is decoupled from the storefront frontend. A separate JavaScript framework (Next.js, Remix, Nuxt) renders pages and fetches product data via API — giving full UI control at the cost of owning all SEO basics yourself. hub. Platform choice determines how much you inherit, not whether your pages are crawlable.
Related: Headless Ecommerce, JavaScript SEO, Next.js SEO
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 19, 2026.
Editorial summary and recorded change details.Summary
Corrected a stale framework claim (Shopify Hydrogen now runs on React Router 7, not Remix — confirmed via npm registry: @shopify/hydrogen peer-depends on react-router with no Remix dependency, and @shopify/remix-oxygen carries a formal deprecation notice) and flagged that Shopify's own SEO doc still shows Remix-flavored prose; updated the BigCommerce Catalyst sitemap doc link to its current URL (developer.bigcommerce.com path now 301s to docs.bigcommerce.com).
Change details
-
Shopify Hydrogen section, cheat-sheet table, quotes lens, and every other 'Remix-based' reference to Hydrogen corrected to reflect its 2026 migration to React Router 7, with a note that the vendor's own SEO doc still reads 'Hydrogen uses Remix's built-in meta features' and lags the package metadata.
-
Official Docs and Resources lenses: BigCommerce Catalyst sitemap doc link updated from developer.bigcommerce.com to the current docs.bigcommerce.com path (old path 301s; quoted text reverified verbatim at the new location).
Full comparison unavailable — no prior snapshot was archived for this revision.