Plataformas de comércio headless

«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.» _(Tradução)_ (Síntese localizada do campo description em português para conferência na revisão nativa.)

Publicado pela primeira vez: 3 de jul. de 2026 · Última atualização: 3 de ago. de 2026 · Avançado

«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).» _(Tradução)_ (Síntese localizada do campo tldr em português para conferência na revisão nativa.)

«> TL;DR — Headless commerce platforms sit on a spectrum from “ships real SEO

scaffolding” to “leaves everything to you.” Shopify Hydrogen ships the most — a getSeoMeta utility, sitemap routes, robots.txt, and (via Oxygen) automatic crawler-blocking on preview deployments. BigCommerce Catalyst proxies BigCommerce’s own sitemap index and uses Next.js App Router generateMetadata conventions. commercetools Frontend and Salesforce PWA Kit give you SDK/API helpers, not shipped routes — you assemble the sitemap yourself, with real pagination 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 crawlers on shareable links; others don’t guarantee it) and redirect maps (no platform automates them). Platform choice sets how much scaffolding you inherit — not whether pages are crawlable, which is still the rendering decision the hub owns. » (Tradução) (Síntese localizada do trecho dezessete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

« Evidência desta afirmação Choosing a commerce API does not itself determine search rendering; the storefront must produce discoverable content, links, status codes, and metadata. Escopo: Google requirements for JavaScript storefronts. Confiança: alta · Verificado: Google Search Central: JavaScript SEO basics Evidência desta afirmação Shopify describes Hydrogen as its React-based framework for custom storefronts and Oxygen as its deployment platform. Escopo: Shopify-specific platform capability, not Google guidance. Confiança: alta · Verificado: Shopify Developers: Hydrogen » (Tradução) (Síntese localizada do trecho dezoito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Platform choice is not the rendering decision » (Tradução) (Síntese localizada do trecho dezenove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Start here, because it’s the single most common confusion. Whether Googlebot gets real HTML or an empty shell is decided by your frontend’s rendering model — server-side rendering (SSR), static generation (SSG), or client-side rendering (CSR). That’s the frontend framework’s job, and the Headless Ecommerce SEO hub covers it in depth. I won’t re-derive SSR vs. CSR here. » (Tradução) (Síntese localizada do trecho vinte, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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 = crawlability; platform = scaffolding. » (Tradução) (Síntese localizada do trecho vinte e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## The SEO-tooling spectrum » (Tradução) (Síntese localizada do trecho vinte e dois, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Here’s where the seven platforms land: » (Tradução) (Síntese localizada do trecho vinte e três, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Ships real tooling (a working reference storefront with SEO wired in): Shopify Hydrogen, BigCommerce Catalyst. » (Tradução) (Síntese localizada do trecho vinte e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Ships SDK helpers, not routes (you assemble the sitemap yourself): commercetools Frontend, Salesforce PWA Kit. » (Tradução) (Síntese localizada do trecho vinte e cinco, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Ships nothing SEO-specific (pure commerce API; frontend owns all of it): Medusa, Saleor, Elastic Path. » (Tradução) (Síntese localizada do trecho vinte e seis, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«That framing is the whole article. The rest is the per-platform detail. » (Tradução) (Síntese localizada do trecho vinte e sete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Shopify Hydrogen (Storefront API) » (Tradução) (Síntese localizada do trecho vinte e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho vinte e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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 tags. That getSeoMeta helper handles titles, descriptions, images, canonical URLs, and JSON-LD — 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. » (Tradução) (Síntese localizada do trecho trinta, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho trinta e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho trinta e dois, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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). » (Tradução) (Síntese localizada do trecho trinta e três, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## BigCommerce headless (Catalyst) » (Tradução) (Síntese localizada do trecho trinta e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Catalyst is BigCommerce’s Next.js App Router reference storefront. Its SEO scaffolding is real but architecturally different from Hydrogen’s. » (Tradução) (Síntese localizada do trecho trinta e cinco, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho trinta e seis, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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 SEO article already documents in detail — I’ll point there rather than re-explain generateMetadata syntax. » (Tradução) (Síntese localizada do trecho trinta e sete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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 redirect map.” He also flags recurring Catalyst regressions — generateMetadata returning a client-only fallback because the GraphQL query got thrown to a client component, canonical tags 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. » (Tradução) (Síntese localizada do trecho trinta e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## commercetools (Frontend / composable storefronts) » (Tradução) (Síntese localizada do trecho trinta e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«commercetools is the enterprise “composable/MACH” option, and its SEO scaffolding is proportionally thinner — you get SDK helper methods, not shipped routes. » (Tradução) (Síntese localizada do trecho quarenta, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Per commercetools’ Frontend docs, the platform generates three separate sitemaps — static pages, product pages, and category pages — combined into a sitemap index. 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 pagination 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. » (Tradução) (Síntese localizada do trecho quarenta e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Salesforce Commerce Cloud headless (PWA Kit / Composable Storefront) » (Tradução) (Síntese localizada do trecho quarenta e dois, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«PWA Kit’s SEO tooling is the most fragmented and manual of the platforms with an official reference storefront. » (Tradução) (Síntese localizada do trecho quarenta e três, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho quarenta e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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 CMS-like Page Designer content model, not a dedicated SEO utility like Hydrogen’s getSeoMeta. » (Tradução) (Síntese localizada do trecho quarenta e cinco, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Medusa, Saleor, and Elastic Path — pure APIs » (Tradução) (Síntese localizada do trecho quarenta e seis, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«These three are the “leaves everything to you” tier, and it’s worth being blunt about what that means. » (Tradução) (Síntese localizada do trecho quarenta e sete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho quarenta e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho quarenta e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho cinquenta, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho cinquenta e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Preview and staging leakage — the differentiated risk » (Tradução) (Síntese localizada do trecho cinquenta e dois, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«This is the one place platform choice makes a concrete, measurable SEO difference, so it’s worth calling out separately. » (Tradução) (Síntese localizada do trecho cinquenta e três, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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 content. No equivalent automatic guarantee is documented for Catalyst, commercetools, or PWA Kit. And it’s not theoretical: 1Digital Agency reports “Preview deployments indexed by Googlebot” 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. » (Tradução) (Síntese localizada do trecho cinquenta e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Redirect management — a migration concern, not a platform feature » (Tradução) (Síntese localizada do trecho cinquenta e cinco, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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 structures, and structured-data gaps, and you should never launch without a verified 301 map. That’s the same lesson the site’s Site Migrations 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. » (Tradução) (Síntese localizada do trecho cinquenta e seis, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Portability is the underrated upside » (Tradução) (Síntese localizada do trecho cinquenta e sete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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.” » (Tradução) (Síntese localizada do trecho cinquenta e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«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. » (Tradução) (Síntese localizada do trecho cinquenta e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Where to go next » (Tradução) (Síntese localizada do trecho sessenta, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«- Headless Ecommerce SEO — the hub: the SSR/SSG/CSR rendering decision, structured data (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 generateMetadata and sitemap.ts mechanics live.
  • JavaScript SEO — the general JS-rendering failure modes that apply to any JS-heavy storefront. » (Tradução) (Síntese localizada do trecho sessenta e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

Adicionar uma nota de especialista

Fixar uma citação de especialista

É uma pessoa nova? Crie o perfil não reivindicado dela em /admin/experts/ → Fixar uma citação de especialista primeiro.