Panduan Salesforce Commerce Cloud SEO

How SEO berfungsi pada Salesforce Commerce Cloud (B2C Commerce / SFCC, formerly Demandware) — strong native membangun blocks (Business-Manager-editable robots.txt, scheduled auto-sitemaps, aturan-based meta tags, canonical-oleh-design master/variation products) dan bagian Anda masih memiliki untuk bangun oleh hand (hreflang, faceted-nav URLs, schema, dan headless crawlability pada PWA Kit atau Salesforce's newer Storefront Next framework).

Pertama kali diterbitkan: 2 Jul 2026 · Terakhir diperbarui: 3 Agu 2026 · Advanced
Bahasa

Salesforce Commerce Cloud (B2C Commerce, formerly Demandware — SFCC untuk pendek) gives Anda strong native SEO membangun blocks: sebuah editable per-situs robots.txt di Business Manager, auto-generated sitemap XML sebagai sebuah scheduled job, aturan-based Meta Tag aturan untuk catalog-wide judul dan deskripsi, dan sebuah canonical-oleh-design master/variation product model itu maps almost exactly onto Google's ProductGroup schema. What ini leaves Anda adalah berfungsi itu actually decides rankings di enterprise scale: hreflang (no dedicated B2C admin fitur — sitemap alternate URLs atau custom tautan tags), faceted/refinement URLs (custom development), data terstruktur (sebuah template/developer job, not sebuah toggle), dan headless crawlability pada PWA Kit atau Salesforce's newer Storefront Next framework (SSR adalah necessary tetapi not sufficient — test dengan?__server_only pada PWA Kit; confirm equivalent pada Storefront Next). Nothing berfungsi well without deliberate configuration; platform isn't limitation, unfamiliarity dengan ini adalah.

TL;DR — SFCC (B2C Commerce, formerly Demandware) ships strong native SEO membangun blocks: sebuah per-situs robots.txt Anda edit di Business Manager, sitemap XML auto-generated sebagai sebuah scheduled job, aturan-based Meta Tag aturan untuk catalog-wide judul/deskripsi, dan sebuah canonical-oleh-design master/variation product model itu maps almost 1:1 onto Google’s ProductGroup/hasVariant/isVariantOf schema. berfungsi ini leaves Anda adalah what scales: hreflang (no dedicated B2C fitur — sitemap “Include Alternate URLs” (terjemahan) “sertakan Alternate URLs” atau custom <link> tags), faceted/refinement URLs (custom dev), data terstruktur (sebuah template job, not sebuah toggle), dan headless crawlability pada PWA Kit atau Salesforce’s newer Storefront Next framework (SSR adalah necessary tetapi not sufficient — test dengan ?__server_only pada PWA Kit; confirm equivalent pada Storefront Next). dan single biggest architectural fork adalah whether sebuah multi-region brand adalah one situs dengan banyak locales atau banyak situs — itu decides how banyak full SEO config surfaces Anda pertahankan di sync.

Evidence for this claim Salesforce B2C Commerce provides sitemap generation that merchants configure and run for storefront URLs. Scope: Salesforce B2C Commerce; scheduling and content selection require configuration. Confidence: high · Verified: Salesforce Developers: Create a sitemap Evidence for this claim Salesforce documents server-side rendering and crawler considerations for PWA Kit storefronts. Scope: Salesforce PWA Kit; SSR alone does not guarantee indexing or ranking. Confidence: high · Verified: Salesforce Developers: PWA best practices

frame: strong native alat, steep platform literacy

sebagian besar SFCC SEO konten adalah either thin agency marketing atau developer docs dengan zero SEO framing. honest take adalah di antara: SFCC memiliki more native, admin-configurable SEO tooling daripada sebagian besar competing platforms — tetapi nothing berfungsi well without deliberate setup, dan several defaults akan hurt Anda jika Anda leave them alone. Sort setiap task ke “native building block” (terjemahan) “native membangun block” vs. “you have to build it,” (terjemahan) “Anda memiliki untuk bangun ini,” dan platform stops menjadi mysterious.

Two things untuk memahami sebelum anything else:

  1. Business Manager adalah where SEO lives. SEO hub adalah Merchant alat → situs → SEO, dan ini splits ke Canonical URL tags, URL Redirects, Sitemaps, Robots, Meta Tag aturan, dan URL aturan/Aliases. setiap adalah sebuah separate screen dengan -nya own aturan.
  2. ** master/variation product model shapes everything.** sebuah single master product owns multiple variation products (oleh color, size). itu model adalah central SEO decision poin, dan ini happens untuk mirror how Google ingin Anda untuk mark up variants — more pada itu below.
  3. Name Anda storefront architecture sebelum Anda name sebuah fix. “Salesforce Commerce Cloud” (terjemahan) “Salesforce Commerce Cloud” now spans setidaknya four distinct storefront generations itu behave differently untuk SEO: legacy SiteGenesis pipeline architecture, saat ini SFRA (Storefront Reference Architecture), established headless PWA Kit (Composable Storefront), dan, sebagai dari 2026 B2C Commerce release cycle, Salesforce’s newer Storefront Next React framework. Admin paths, cartridge perilaku, dan rendering mechanics differ di seluruh them — sebuah fix verified pada one doesn’t automatically transfer untuk lainnya. ini artikel’s Business Manager screens apply broadly di seluruh SFRA/SiteGenesis; PWA Kit-spesifik mechanics later di ini piece adalah scoped explicitly where mereka apply.

Native membangun blocks: per-situs editable robots.txt, scheduled auto-generated sitemap XML (dengan optional hreflang dan last-modified dates), URL aturan + Hostname Aliases untuk locale-aware clean URLs, canonical-oleh-design variation products, aturan-based Meta Tag aturan, automatic 301s pada di-Business-Manager URL perubahan, dan PWA Kit SSR untuk pertama muat.

Yours untuk bangun: hreflang, faceted/refinement URLs, data terstruktur, multi-locale robots.txt handling, H1 templating, dan (di sebuah headless bangun) semua pada-halaman tag management.

architecture fork itu shapes everything: situs vs. locales

sebelum Anda touch sebuah single SEO screen, settle ini: adalah Anda multi-region brand modeled sebagai one situs dengan multiple locales, atau multiple situs (one per locale atau region)? di SFCC, multi-region storefronts adalah biasanya dibangun sebagai separate situs di Business Manager. itu penting because setiap situs adalah -nya own complete SEO configuration surface — -nya own sitemap job, -nya own robots.txt, -nya own Meta Tag aturan, -nya own URL aturan. Ten situs berarti ten dari everything untuk pertahankan di sync oleh hand. Name ini decision explicitly early, because ini silently multiplies setiap lainnya bagian dari ini artikel.

struktur URL: URL aturan vs. Hostname Aliases

SFCC gives Anda two configuration paths, dan right one depends pada how kompleks Anda locale setup adalah:

  • URL aturan (Merchant alat → situs → SEO → URL aturan) map locale, category, dan product path segments untuk sebuah pattern. mereka’re simpler tetapi less flexible — Anda pick one dari alternative hostnames, parameter URL, atau paths untuk locale routing.
  • Hostname Aliases (Merchant alat → situs → SEO → Aliases) adalah sebuah JSON alias file offering more capability — including sebuah mixed approach, like ccTLD-style hostnames untuk beberapa locales dan subfolder-style locales di yang sama situs. jika Anda perlu mixed routing, ini memiliki untuk go melalui alias file.

mechanics worth knowing:

  • Force lowercase. SFCC’s own URL configuration guidance tells Anda untuk select Lower Case so Anda tidak generate multiple URLs dengan berbeda cases dari yang sama text. Practitioners note lowercase adalah umumnya preferred oleh crawler.
  • gunakan hyphens untuk whitespace. Whitespace dapat menjadi URL-encoded (%20), atau replaced dengan plus/underscore/minus/period. Salesforce’s own SEO-URL guidance poin out itu mesin pencari treat hyphens sebagai separators tetapi underscores sebagai joiners (two underscore-joined kata read sebagai one), so hyphen (minus) adalah cleanest choice. NOVOS membuat yang sama recommendation di atas default %20.
  • category vs. category-path. untuk situs more daripada two atau three categories deep, gunakan category alih-alih category-path; tetapi jika Anda memiliki duplicate category names di bawah berbeda parents, gunakan category-path untuk disambiguate.
  • Product IDs auto-append. Anda tidak tambahkan product ID untuk aturan — B2C Commerce selalu appends ini automatically, dengan sebuah .html extension. Practitioners note there’s no cara untuk hapus .html without custom development.
  • Assign products untuk domain, not sebuah category path. NOVOS recommends ini untuk reduce duplication dan complexity, because products dapat menjadi assigned untuk multiple categories, which membuat sebuah category-based URL segment unstable.
  • umum URL hygiene dari Salesforce’s own guidance: pertahankan URLs readable dan pendek, gunakan sebagai few folders sebagai mungkin, hindari parameters, integrate keywords, dan don’t put sebuah halaman-jenis indicator, sebuah proprietary sc.html extension, atau kata demandware di URL.

** classic pitfall:** duplicate homepages dari unmapped Default-Start dan Home-tampilkan pipelines resolving untuk www dan non-www variants. Map them explicitly atau Anda get duplicate situs generated oleh hosts dengan dan without www. dan one alias-file gotcha practitioners flag repeatedly: alias file harus declare versi 1 atau sistem ignores ini entirely.

dibandingkan dengan sebuah platform like BigCommerce (which offers preset struktur URL dan menghapus prefixes dengan sebuah dropdown) atau Shopify (which forces /products/ dan /collections/), SFCC’s URL layer adalah far more configurable — dan far more -nya own job untuk get right.

sitemap XML

Sitemap generation adalah sebuah scheduled Business Manager job, not sebuah static file Anda maintain. Anda reach ini via App Launcher → Merchant alat → situs → SEO → Sitemaps, dan configure job’s schedule pada Job tab. Salesforce’s guidance adalah untuk schedule ini untuk rendah-traffic times (early morning) untuk hindari CPU dan memory spikes, dan untuk run ini setelah Anda daily data replication dari staging.

Three things itu trip people up:

  • Configure per instance jenis. Sitemap settings dapat’t menjadi replicated antara Staging dan Production atau Development — Anda set them individually pada setiap instance. ini adalah opposite dari sebagian besar situs preferences.
  • changefreq/priority adalah dead weight. Google memiliki confirmed ini ignores ini di sitemaps. Don’t spend engineering effort tuning them. melakukan pertahankan lastmod accurate — ini adalah auto-applied untuk generated sitemap dan ini adalah sebuah nyata signal untuk what untuk re-crawl.
  • Hreflang rides pada sebuah checkbox. Anda dapat embed hreflang oleh ticking “Include Alternate URLs” (terjemahan) “sertakan Alternate URLs”, which menambahkan hreflang annotations inside standard sitemaps. caveat: di enough locales ini pushes Anda past per-file tautan threshold, di which poin Anda perlu custom sitemaps dibangun dengan sebuah solusi architect.

Headless adalah sebuah separate mechanism. untuk sebuah PWA Kit storefront, Salesforce’s own “Improve SEO with a Sitemap” (terjemahan) “meningkatkan SEO dengan sebuah Sitemap” guide adalah explicit itu sitemaps “provide search crawlers with instructions on the pages to index and the site hierarchy, which can improve your SEO rankings.” (terjemahan) “menyediakan search crawler dengan instructions pada halaman untuk indeks dan situs hierarchy, which dapat meningkatkan Anda SEO rankings.” jika Anda routes adalah configured di Business Manager, generate sitemap there; otherwise Anda upload one via SCAPI uploadCustomSitemapAndTriggerSitemapGeneration endpoint. Wiring ini up memerlukan sebuah vanity domain (embedded CDN atau sebuah subdomain like seo.example.com), sebuah matching hostname alias, dan sitemap reachable di example.com/sitemap_index.xml; di PWA Kit Anda tambahkan app.get('/sitemap_index.xml', runtime.serveStaticFile('static/sitemap_index.xml')) di ssr.js dan expose file via ssrShared di app config.

Robots.txt

ada two distinct mechanisms, dan confusing them causes nyata deployment bugs:

  1. Business Manager situs preference ( recommended default path). App Launcher → Merchant alat → situs → SEO → Robots lets Anda write sebuah per-situs robots.txt (up untuk 50 000 characters). ini adalah stored sebagai sebuah situs preference dan dapat menjadi replicated antara instances.
  2. Cartridge-tingkat static file (custom storefront / SFRA). sebuah robots.txt placed di cartridge/static/default dari sebuah custom cartridge, managed via UX Studio. ini versi dapat hanya move antara instances via code replication, because static directory adalah cartridge-spesifik, not situs-spesifik.

Two gotchas:

  • Cache invalidation. dengan caching enabled, Anda harus invalidate static konten cache untuk sebuah baru cartridge-tingkat robots.txt untuk menjadi disajikan.
  • Robots adalah domain-scoped, not subfolder-scoped. jika Anda run multiple locales di subfolders, one robots.txt di domain root memiliki untuk satisfy setiap locale’s perlu — plan aturan untuk cover semua dari them.

practitioner philosophy, which I agree dengan: pertahankan robots.txt minimal. gunakan tag canonical dan noindex untuk control what’s disajikan di hasil; robots.txt controls crawling, not pengindeksan, so di atas-relying pada ini adalah actual anti-pattern. pertahankan dev/staging non-dapat di-crawl via deployed cartridge default, dan configure production deliberately. ( platform-agnostic mechanics adalah di crawling dan canonicalization.)

Canonical URLs dan master/variation product model — differentiating bagian

ini adalah where SFCC’s data model dan Google’s own guidance line up almost perfectly, dan where sebagian besar SFCC konten stops pendek.

In the SFCC pattern described here, child variation URLs point `rel=canonical` to the master PDP, while ProductGroup connects the structured-data family.

The SFCC master product is the canonical product detail page. Each color, size, or other child variation URL points rel canonical to the master URL. In structured data, the master maps to ProductGroup and child Product entities connect through hasVariant and isVariantOf. Verify the public storefront output.

SFCC mewakili sebuah product’s color/size variations sebagai sebuah single master (base) product dengan child variation products. Salesforce’s recommendation adalah untuk canonicalize variation product URLs untuk master product untuk pertahankan atau meningkatkan rankings — i.e., poin setiap color/size PDP’s rel="canonical" di base product so sinyal peringkat consolidate onto one URL.

Now lihat what Google recommends untuk exactly ini “one product, many variations” (terjemahan) “one product, banyak variations” situation. Google’s product-variant guidance adalah untuk “use the ProductGroup class with associated properties variesBy, hasVariant, and productGroupID to group such variants together.” (terjemahan) “gunakan undefined class dengan associated properties undefined, undefined, dan undefined untuk group such variants together.” itu’s sebuah conceptual match untuk SFCC’s master/variation model:

  • master product adalah Google’s ProductGroup.
  • variation products adalah hasVariant members (atau, di “separate” (terjemahan) “separate” pattern, setiap Product menggunakan isVariantOf untuk reference group’s @id).
  • Google documents both sebuah nested pattern (ProductGroup.hasVariant“the most compact and natural representation of a product group” (terjemahan) “paling compact dan natural representation dari sebuah product group”) dan sebuah separate pattern (Product.isVariantOf — which “might be easier for some content management systems (CMSes) to generate” (terjemahan) “mungkin menjadi easier untuk beberapa sistem manajemen konten (CMSes) untuk generate”). separate pattern adalah natural fit untuk how SFCC templates variation products di seluruh independent PDP renders.

untuk sebuah single-halaman variant selector, Google says untuk pertahankan “only one distinct canonical URL for the overall ProductGroup(terjemahan) “hanya one distinct canonical URL untuk overall undefined” — which adalah precisely “variation → master” (terjemahan) “variation → master” canonical aturan SFCC sudah recommends.

membuat two agree, because Google adalah explicit itu Anda canonicalization signals harus menjadi consistent. pada -nya consolidate-duplicate-URLs guidance, rel="canonical" adalah “a strong signal that the specified URL should become canonical,” (terjemahan) “sebuah strong signal itu specified URL seharusnya become canonical,” sitemap inclusion adalah “a weak signal,” (terjemahan) “sebuah weak signal,” dan “these methods can stack and thus become more effective when combined.” (terjemahan) “ini metode dapat stack dan thus become more effective when combined.” tetapi don’t contradict yourself — Google warns: “Don’t specify different URLs as canonical for the same page using different canonicalization techniques (for example, don’t specify one URL in a sitemap, but a different URL for that same page using rel="canonical").” (terjemahan) “Don’t specify berbeda URLs sebagai canonical untuk yang sama halaman menggunakan berbeda canonicalization techniques (misalnya, don’t specify one URL di sebuah sitemap, tetapi sebuah berbeda URL untuk itu sama halaman menggunakan undefined).” pada SFCC, itu berarti Anda variation-product rel="canonical", Anda sitemap, Anda hreflang, dan Anda tautan internal semua memiliki untuk name yang sama master URL. dan “when linking within your site, link to the canonical URL rather than a duplicate URL” (terjemahan) “when linking di dalam Anda situs, tautan untuk canonical URL alih-alih sebuah duplicate URL” — so tautan internal navigation untuk master product, not untuk spesifik variation URLs.

( umum variant-schema deep dive adalah di product variant SEO; canonical mechanics adalah di canonicalization.)

Meta Tag aturan

judul dan deskripsi memiliki two implementation paths: manual entry per object (Category/Product → halaman judul / halaman deskripsi fields), atau aturan-based dynamic generation via Meta Tag aturan (Merchant alat → situs → SEO → Meta Tags), which apply formulas di seluruh halaman jenis.

  • Basic dynamic aturan: sebuah category judul like ${Category.Name} | Example Brand.
  • Hybrid override + fallback: ${IF Category.pageTitle THEN Category.pageTitle ELSE Category.Name} lets merchandisers override spesifik halaman while aturan stays catalog-wide default. ini adalah pattern untuk standardize pada — aturan scale, tetapi apa pun one-off exception either menggunakan ini hybrid syntax atau inherits generic aturan.
  • Localize connectives. untuk localized aturan, translate apa pun connectives (like | separator’s surrounding kata) dan set them di language atau language-country tingkat.
  • H1 adalah sebuah limitation. Unlike judul dan deskripsi, there’s no standard Meta Tag aturan syntax untuk template H1 tags dynamically — H1 templating memerlukan custom development.

Redirects

SFCC memiliki beberapa native, automatic redirect perilaku plus manual alat:

  • Automatic 301s fire when Anda override sebuah category/product URL inside Business Manager, dan SFCC auto-corrects misspelled PDP URLs sebagai panjang sebagai underlying product ID adalah intact.
  • Three manual alat: URL Redirects untuk one-untuk-one mappings, Static Mappings untuk legacy URL patterns redirecting untuk static resources, dan Dynamic Mappings untuk kompleks wildcard-based patterns.
  • kode status: gunakan 301 untuk permanent (atau 308 jika altered via custom development) dan 307 untuk temporary. (Background pada choosing antara them adalah di Ahrefs’ 11 jenis dari redirects dan 301 vs. 302 guides.)
  • poin di object IDs, not hard-coded paths. NOVOS recommends redirecting untuk object jenis/IDs alih-alih literal URL strings untuk mencegah errors dan redirect loops when destination URL later perubahan.

precedence aturan penting dan ini adalah sebuah direct developer-docs quote: “If there’s a conflict between your URL redirects and your URL rules for SEO, the URL redirects take precedence.” (terjemahan) “jika there’s sebuah conflict antara Anda URL redirects dan Anda URL aturan untuk SEO, URL redirects take precedence.”

Migration framing: pada sebuah SFRA relaunch, redirect strategy adalah single sebagian besar critical SEO component untuk preserving rankings — Acxiom’s Salesforce practice puts ini di 60–70% dari launch SEO effort. itu’s consistent dengan broader lesson itu sebuah migration takes more daripada sebuah checklist untuk go well.

data terstruktur / schema — name gap honestly

Here’s honest bagian sebagian besar konten skips: pada SFCC there’s no native “turn on product schema” (terjemahan) “turn pada product schema” toggle di Business Manager comparable untuk Meta Tag aturan atau canonical handling. Unlike BigCommerce (whose Cornerstone theme ships JSON-LD product schema out dari box), schema pada SFCC adalah sebuah template/developer responsibility. SFRA reference storefront mencakup beberapa product/breadcrumb schema di template code, tetapi itu’s developer-implemented, not sebuah admin fitur. Treat schema sebagai sebuah bangun task, not sebuah checkbox — dan lean pada ProductGroup/variant pattern dari canonical bagian sebagai Anda target shape, since JSON-LD adalah Google’s recommended format when Anda setup allows ini.

One rendering constraint untuk design sekitar, terutama untuk headless membangun: Google’s guidance adalah itu data terstruktur seharusnya menjadi present di server-rendered HTML rather daripada injected hanya selama client-side hydration. pada sebuah PWA Kit store, itu berarti JSON-LD memiliki untuk menjadi di SSR output — see headless bagian.

Hreflang dan multi-situs/locale architecture

Disambiguate B2B dari B2C pertama. Salesforce’s clean, dedicated “Alternate Language Links” (terjemahan) “Alternate Language tautan” hreflang fitur adalah sebuah B2B Commerce fitur — ini melakukan not exist sebagai sebuah dedicated screen di B2C Commerce. hasil pencarian dan bahkan beberapa agency blogs blur two Clouds. di B2C Commerce, hreflang runs melalui sitemap’s “Include Alternate URLs” (terjemahan) “sertakan Alternate URLs” checkbox (covered above), not sebuah dedicated alternate-language admin screen.

So two realistic implementation paths adalah:

  1. Sitemap-embedded hreflang via “Include Alternate URLs” (terjemahan) “sertakan Alternate URLs” — sederhana, tetapi dapat blow past per-file sitemap size limit di scale.
  2. Custom <link rel="alternate" hreflang="x"> tags emitted directly di halaman <head> — necessary setelah Anda memiliki too banyak locale/URL combinations untuk sitemap approach.

Standard hreflang hygiene masih applies, dan ini adalah spelled out di Google’s localized- versi guidance: untuk setiap halaman, sertakan sebuah full set dari <link> elements di <head> — one per variant including itself — dan pertahankan itu set identical di seluruh setiap versi, plus sebuah x-default fallback untuk unmatched languages. Google documents itu Anda dapat declare hreflang either di <head> <link> elements atau via sebuah XML sitemap — which adalah exactly two SFCC routes.

Bing footnote: Bing memiliki historically not didukung hreflang cara Google melakukan, reading HTML content-language signal instead — so sebuah SFCC situs itu implements hreflang hanya via sitemap checkbox dapat not menjadi giving Bing language signal ini ingin. (Confirm saat ini Bing perilaku sebelum treating ini sebagai sebuah hard aturan; Bing’s stated mendukung memiliki telah reported inconsistently.)

deeper multi-situs architecture, more ini compounds — remember setiap situs carries -nya own sitemap job dan -nya own robots.txt, so sebuah locale ditambahkan sebagai sebuah baru situs adalah sebuah full baru SEO surface, not hanya sebuah baru language file. (International mechanics live di hreflang cluster.)

Faceted navigation / refinement URLs

SFCC melakukan not produce SEO-friendly filter/refinement URLs out dari box — clean URLs dan proper pengindeksan untuk faceted navigation memerlukan custom development. There’s no native canonical/noindex perilaku untuk refinement combinations, so Anda memiliki untuk bangun decision framework yourself. Here’s berfungsi triage I’d adapt untuk SFCC’s refinement mechanics — yang sama pattern itu berfungsi pada BigCommerce dan apa pun lainnya platform, since underlying masalah (sebuah combinatorial explosion dari dapat di-crawl filter URLs) adalah platform-agnostic:

halaman jenisCanonicalRobots directive
Main category (PLP)Selfindeks
tinggi-demand refinement (nyata search nilai)Selfindeks
Navigation-hanya refinementMain categorynoindex,ikuti
Sort-order hanyaMain categorynoindex,ikuti
Pagination (halaman 2+)Self (-nya own URL)indeks
Variation product PDPMaster productcanonical untuk master

Two principles itu don’t perubahan pada SFCC:

  • robots.txt blocks crawling, not pengindeksan. sebuah URL Anda disallow dapat masih menjadi terindeks jika something tautan untuk ini — dan Google dapat’t read Anda canonical atau noindex because ini tidak pernah fetched halaman. Pair parameter aturan dengan pada-halaman canonical + noindex.
  • Don’t noindex Anda paginated halaman. Google’s ecommerce guidance adalah untuk give setiap paginated halaman -nya own canonical URL, not untuk fold halaman 2+ ke halaman 1. noindex belongs pada filter/sort variations, not pada pagination.

( platform-agnostic deep dive adalah faceted navigation treatment di Ecommerce SEO cluster.)

Headless SEO dengan PWA Kit (dan -nya successor, Storefront Next)

jika Anda storefront adalah headless, ini runs pada PWA Kit — Salesforce’s established React framework (dibangun pada SCAPI, deployed untuk Managed Runtime) — atau, sebagai dari 2026 B2C Commerce release cycle, Salesforce’s newer Storefront Next framework. SEO story here adalah almost entirely sebuah crawlability story, dan Salesforce’s own docs frame ini itu cara.

Scope periksa sebelum Anda apply mechanics below. ini bagian — ?__server_only test, app/ssr.js file path, spesifik SSR/hydration wiring — adalah written untuk classic PWA Kit / Composable Storefront, verified directly terhadap Salesforce’s PWA Kit developer docs. Storefront Next adalah sebuah berbeda bangun: React 19 dengan React Router 7 file-based routing (vs. PWA Kit’s React Router 5) dan sebuah fetch-lalu-render loader model, juga running pada Managed Runtime dengan -nya own streaming SSR-lalu-hydration flow. Salesforce documents ini sebagai distinct enough untuk ship sebuah dedicated “Migrate from PWA Kit to Storefront Next” (terjemahan) “Migrate dari PWA Kit untuk Storefront Next” guide. jika Anda store adalah pada Storefront Next, don’t assume ?__server_only atau exact file paths below carry di atas unchanged — confirm equivalent server-rendering verification langkah di Storefront Next’s own docs sebelum treating ini bagian sebagai gospel untuk itu architecture. underlying SEO principle adalah yang sama either cara: crawler-critical konten (judul, meta, canonical, primary copy, price/availability, JSON-LD) memiliki untuk menjadi present di server-rendered atau streamed HTML, not deferred untuk client-hanya hydration.

How rendering berfungsi. untuk pertama pemuatan halaman, PWA Kit menggunakan server-side rendering: “For the critical first page load, we use server-side rendering because it offers a powerful tool for optimizing performance: caching.” (terjemahan) “untuk critical pertama pemuatan halaman, kami gunakan rendering sisi server because ini offers sebuah powerful alat untuk optimizing performa: caching.” SSR runs melalui sebuah Express app (app/ssr.js), dan “Managed Runtime’s CDN cache can store a previously rendered version of a page and serve it to the user in an instant.” (terjemahan) “Managed Runtime’s CDN cache dapat store sebuah previously rendered versi dari sebuah halaman dan sajikan ini untuk pengguna di sebuah instant.” So far, so baik untuk crawler — pertama muat adalah nyata HTML.

** hydration boundary adalah SEO risk poin.** setelah itu pertama muat, “rendering duties are transferred from the server side to the client side through a process called hydration,” (terjemahan) “rendering duties adalah transferred dari server side untuk client side melalui sebuah process called hydration,” di which poin “your React app starts running in the user’s browser.” (terjemahan) “Anda React app starts running di pengguna’s browser.” Anda code memiliki untuk menjadi isomorphic (safe pada both sides) — window.location adalah client-hanya, req/res adalah server-hanya. dan critically, Salesforce says beberapa konten adalah deliberately client-hanya: “Some content, such as personalized or frequently changing content, must only be rendered on the client side to get the best possible performance.” (terjemahan) “beberapa konten, such sebagai personalized atau frequently changing konten, harus hanya menjadi rendered pada client side untuk get best mungkin performa.” itu’s exact tension untuk SEO: anything crawler-critical (judul, meta, canonical, primary konten, price/availability, JSON-LD) harus not menjadi di itu client-hanya bucket, atau crawler dapat tidak pernah see ini.

cara verify ini — metode Salesforce itself documents. PWA Kit best- practices checklist tells Anda untuk test Anda entry halaman (home, PLP, PDP) oleh appending ?__server_only, which lets Anda “confirm that your server-rendered pages have enough data for crawlers and that the layout shift between server and client is small (ideally non-existent). This can help to improve your SEO ranking.” (terjemahan) “confirm itu Anda server-rendered halaman memiliki enough data untuk crawler dan itu layout shift antara server dan client adalah kecil (ideally non-existent). ini dapat help untuk meningkatkan Anda SEO peringkat.” ini adalah single sebagian besar berguna SFCC-headless SEO periksa, dan ini doesn’t memerlukan menjadi sebuah developer — muat URL dengan ?__server_only, dan confirm Anda judul, meta, canonical, main copy, dan product schema adalah semua present.

pertahankan URL logic di sync via SCAPI. getUrlMapping endpoint lets sebuah headless storefront “support localized, user-friendly URLs based on URL rules and URL redirects set up in Business Manager” (terjemahan) “mendukung localized, pengguna-friendly URLs berdasarkan URL aturan dan URL redirects siapkan di Business Manager” — ini resolves product, category (including category refinements), dan konten-asset URLs, dan falls back untuk situs’s default locale jika none adalah passed. Salesforce recommends panjang TTLs untuk ini ( default adalah 12 hours). payoff: Anda tidak maintain sebuah parallel URL sistem untuk headless frontend — yang sama URL aturan dan Redirects Anda configured di Business Manager drive ini.

** gap untuk bridge.** Salesforce’s own PWA Kit docs treat “SEO” (terjemahan) “SEO” almost entirely sebagai sebuah SSR/crawlability masalah — mereka say little tentang meta tags, canonical, hreflang, atau schema sebagai PWA Kit concerns (sitemaps get mereka own separate doc). itu pada-halaman tag berfungsi falls untuk implementation team’s head-management layer (React Helmet atau equivalent). jika nobody owns ini, sebuah technically-dapat di-crawl PWA Kit store dapat masih ship dengan missing judul, canonicals, dan schema. ( umum headless mechanics adalah di JavaScript SEO dan CMS headless SEO artikel.)

SFCC vs. lainnya platforms — honest versi

dibandingkan dengan Shopify, BigCommerce, Magento, WooCommerce, dan PrestaShop, SFCC sits di enterprise end: ini memiliki deepest native SEO configurability dari hosted platforms (per-situs editable robots.txt, URL aturan + Aliases, canonical-oleh-design variants, aturan-based meta tags), tetapi ini demands paling platform literacy untuk gunakan. Where Shopify forces URL prefixes dan hides robots.txt behind sebuah template, dan BigCommerce hands Anda preset struktur URL dan native JSON-LD, SFCC gives Anda raw levers dan expects Anda untuk know Business Manager. ini isn’t sebuah platform where “good SEO out of the box” (terjemahan) “baik SEO out dari box” adalah benar — ini adalah sebuah platform where “excellent SEO is possible if you configure it deliberately” (terjemahan) “excellent SEO adalah mungkin jika Anda configure ini deliberately” adalah benar. Judge ini pada itu.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.