Salesforce Commerce Cloud SEO完全ガイド

Salesforce Commerce Cloud(B2C Commerce/SFCC、旧Demandware)のSEOを解説。Business Managerで編集できるrobots.txt、定期生成サイトマップ、ルールベースのメタタグ、マスター/バリエーション商品のcanonical設計と、hreflang、ファセットURL、構造化データ、PWA Kit/Storefront Nextのクロール対応を扱います。

Salesforce Commerce Cloud(B2C Commerce、旧Demandware、略称SFCC)には、Business Managerでサイト別に編集できるrobots.txt、定期ジョブで自動生成するXMLサイトマップ、カタログ全体のタイトルと説明を作るMeta Tag Rules、GoogleのProductGroupとほぼ対応するマスター/バリエーション商品モデルなど、強力なSEO基盤があります。一方、hreflang、ファセットURL、構造化データ、PWA KitまたはStorefront Nextでのクロール可能性は実装側の責任です。SSRだけでは不十分なので、PWA Kitでは?__server_onlyで検証し、Storefront Nextでは同等の手順を確認します。成果を左右するのはプラットフォームの限界ではなく、意図的な設定と運用です。

要点 — SFCC(B2C Commerce、旧Demandware)には、Business Managerで編集できる サイト別のrobots.txt、定期ジョブで自動生成されるXMLサイトマップ、カタログ全体の タイトルと説明を生成するルールベースのMeta Tag Rules、Googleの ProductGroup/hasVariant/isVariantOf schemaとほぼ1対1で対応する、canonicalを 前提としたマスター/バリエーション商品モデルなど、強力な標準SEO基盤があります。 一方、規模が大きくなるほど重要になるhreflang(B2C専用機能はなく、サイトマップの “Include Alternate URLs”またはカスタム<link>タグで実装)、ファセット/絞り込みURL (カスタム開発)、構造化データ(設定スイッチではなくテンプレート実装)、PWA Kitまたは Salesforceの新しいStorefront Nextでのヘッドレス環境のクロール可能性は、自分たちで 対応する必要があります。SSRだけでは不十分です。PWA Kitでは?__server_onlyで検証し、 Storefront Nextでは同等の方法を確認してください。さらに、多地域ブランドを複数ロケールの 1サイトで構成するか、複数サイトで構成するかという最大の設計分岐が、同期すべきSEO設定面の 数を決定します。

この主張の根拠 Salesforce B2C Commerce provides sitemap generation that merchants configure and run for storefront URLs. 対象範囲: Salesforce B2C Commerce; scheduling and content selection require configuration. 信頼度: 高 · 検証日: Salesforce Developers: Create a sitemap この主張の根拠 Salesforce documents server-side rendering and crawler considerations for PWA Kit storefronts. 対象範囲: Salesforce PWA Kit; SSR alone does not guarantee indexing or ranking. 信頼度: 高 · 検証日: Salesforce Developers: PWA best practices

全体像:強力な標準機能と、高度なプラットフォーム知識

SFCCのSEO解説は、内容の薄い代理店の宣伝か、SEOの視点を欠いた開発者ドキュメントの どちらかに偏りがちです。実態はその中間です。SFCCには競合プラットフォームの多くを上回る、 管理画面から設定可能な標準SEO機能があります。しかし、意図的に設定しなければ十分に機能せず、 放置すると悪影響を及ぼす初期設定もあります。 各作業を「標準の構成要素」と「自分たちで 実装するもの」に分けると、プラットフォームの全体像が見えやすくなります。

まず理解すべき点は次の3つです。

  1. SEOの設定はBusiness Managerに集約されています。 中心となる場所は Merchant Tools → サイト → SEOで、Canonical URL tags、URL Redirects、Sitemaps、Robots、 Meta Tag Rules、URL Rules/Aliasesがそれぞれ独立した画面とルールを持ちます。
  2. マスター/バリエーション商品モデルが全体を左右します。 1つのマスター商品が、 色やサイズごとの複数のバリエーション商品を持ちます。このモデルがSEO設計の中心であり、 Googleが推奨するバリエーションのマークアップとも対応します。詳しくは後述します。
  3. 修正方法を決める前に、ストアフロントのアーキテクチャを特定します。 現在の Salesforce Commerce Cloudには、SEO上の挙動が異なる少なくとも4世代のストアフロントが あります。旧来のSiteGenesisパイプライン、現行のSFRA(Storefront Reference Architecture)、実績のあるヘッドレス構成のPWA Kit(Composable Storefront)、そして 2026年のB2C Commerceリリースサイクルで登場した新しいReactフレームワーク Storefront Nextです。管理画面のパス、カートリッジの挙動、レンダリング方式はそれぞれ 異なるため、1つで確認した修正が別の構成へ自動的に適用できるとは限りません。この記事の Business Manager画面はSFRA/SiteGenesisに広く当てはまり、後半のPWA Kit固有の手順は 適用範囲を明記しています。

標準の構成要素: サイト別に編集できるrobots.txt、任意のhreflangと最終更新日を含められる 定期自動生成XMLサイトマップ、ロケール対応の整ったURLを作るURL Rules + Hostname Aliases、 canonicalを前提としたバリエーション商品、ルールベースのMeta Tag Rules、Business Manager内の URL変更に伴う自動301、初回読み込み時のPWA Kit SSR。

自分たちで実装するもの: hreflang、ファセット/絞り込みURL、構造化データ、複数ロケールに 対応するrobots.txt、H1テンプレート、ヘッドレス構成におけるすべてのページ内タグ管理。

全体を左右する設計分岐:サイトとロケール

SEO画面を設定する前に、多地域ブランドを複数ロケールを持つ1サイトとして構成するのか、 それともロケールまたは地域ごとの複数サイトとして構成するのかを決めます。SFCCの多地域 ストアフロントは、Business Manager内で個別のサイトとして構築されることが一般的です。 重要なのは、各サイトが完全に独立したSEO設定面を持つことです。サイトマップジョブ、 robots.txt、Meta Tag Rules、URL Rulesがサイトごとに存在します。10サイトなら、10組すべてを 手作業で同期し続けなければなりません。この判断は記事内のあらゆる設定作業を暗黙に増やすため、 早い段階で明示してください。

URL構造:URL RulesとHostname Aliasesの比較

SFCCには2つの設定方法があり、どちらを選ぶかはロケール構成の複雑さによって決まります。

  • URL Rules(Merchant Tools → サイト → SEO → URL Rules)は、ロケール、カテゴリ、商品パスの セグメントをパターンへ割り当てます。比較的単純ですが柔軟性は低く、ロケールのルーティングには 代替ホスト名、URLパラメーター、パスのいずれか1つを選びます。
  • Hostname Aliases(Merchant Tools → サイト → SEO → Aliases)は、より多機能なJSONエイリアス ファイルです。同じサイト内で、一部のロケールにccTLD形式のホスト名、別のロケールに サブフォルダー形式を使うような混在構成にも対応できます。混在ルーティングが必要な場合は、 エイリアスファイルを使う必要があります。

押さえておくべき仕組みは次のとおりです。

  • 小文字へ統一する。 SFCCのURL設定ガイドは、同じ文字列で大文字・小文字が異なる複数のURLを 生成しないよう、Lower Caseを選択するよう案内しています。実務家も、一般にクローラーには 小文字が好まれると指摘しています。
  • 空白にはハイフンを使う。 空白はURLエンコード(%20)するか、プラス、アンダースコア、 マイナス、ピリオドへ置換できます。SalesforceのSEO URLガイドでは、検索エンジンはハイフンを 区切り文字として扱う一方、アンダースコアを結合文字として扱うため、アンダースコアでつないだ 2語は1語として解釈されると説明しています。したがって、ハイフン(マイナス)が最も明快です。 NOVOSも、初期値の%20よりハイフンを推奨しています。
  • categoryとcategory-pathを使い分ける。 2〜3階層を超えるサイトでは、通常は category-pathではなくcategoryを使います。ただし、異なる親カテゴリの下に同名カテゴリが ある場合は、区別するためにcategory-pathを使います。
  • 商品IDは自動で付加される。 ルールに商品IDを追加する必要はありません。B2C Commerceが .html拡張子とともに必ず自動付加します。実務家によれば、カスタム開発なしに.htmlを 削除する方法はありません。
  • 商品はカテゴリパスではなくドメインへ割り当てる。 商品は複数カテゴリへ割り当てられるため、 カテゴリ由来のURLセグメントは不安定になります。NOVOSは、重複と複雑さを減らすために商品を ドメインへ割り当てることを推奨しています。
  • Salesforce公式ガイドが示す一般的なURL衛生: URLは読みやすく短く保ち、フォルダー数を できるだけ減らし、パラメーターを避け、キーワードを組み込みます。また、ページ種別を示す文字列、 独自のsc.html拡張子、demandwareという語をURLに含めないようにします。

典型的な落とし穴: Default-StartとHome-Showパイプラインをマッピングしないと、 wwwとnon-wwwのホスト名で重複するホームページが生成されます。必ず明示的にマッピングし、 wwwの有無による重複を防いでください。もう1つ、実務家が繰り返し指摘する注意点として、 エイリアスファイルにはversion 1を 宣言する必要があります。宣言がなければ、システムはファイル全体を無視します。

プリセットのURL構造を選び、ドロップダウンでプレフィックスを削除できるBigCommerceや、 /products/と/collections/が固定されるShopifyと比べ、SFCCのURL層ははるかに柔軟です。 その分、正しく設定する作業そのものが独立した重要タスクになります。

XMLサイトマップ

サイトマップ生成は、手作業で保守する静的ファイルではなく、Business Managerの定期ジョブです。 App Launcher → Merchant Tools → サイト → SEO → Sitemapsから開き、Jobタブでスケジュールを 設定します。SalesforceはCPUとメモリの急増を避けるため、早朝などアクセスの少ない時間帯に設定し、 ステージングから日次データをレプリケーションした後に実行するよう案内しています。

つまずきやすい点は3つあります。

  • インスタンスタイプごとに設定する。 サイトマップ設定はStaging、Production、Development間で レプリケーションできません。各インスタンスで個別に設定します。多くのサイト設定とは逆の挙動です。
  • changefreq/priorityの調整に価値はない。 Googleはサイトマップ内のこれらの値を無視すると 明言しています。調整に開発工数を使わないでください。一方、生成したサイトマップへ自動付与される lastmodは正確に保ちます。再クロール対象を示す実用的なシグナルだからです。
  • hreflangはチェックボックスで追加できる。 **“Include Alternate URLs”**を選ぶと、標準の サイトマップ内にhreflang注釈を埋め込めます。ただし、ロケール数が増えるとファイルごとのリンク数 上限を超える可能性があります。その場合は、ソリューションアーキテクトとカスタムサイトマップを 構築する必要があります。

ヘッドレスでは仕組みが異なります。 PWA Kitストアフロントについて、Salesforce公式の 「Improve SEO with a Sitemap」ガイドは、サイトマップが*“provide search crawlers with instructions on the pages to index and the site hierarchy, which can improve your SEO rankings.”* (翻訳) 検索クローラーに、インデックス登録するページとサイト階層に関する指示を 与え、SEO順位の向上につながる可能性があります。と明記しています。ルートをBusiness Managerで 設定している場合は、そこでサイトマップを生成します。それ以外の場合は、SCAPIの uploadCustomSitemapAndTriggerSitemapGenerationエンドポイントからアップロードします。 接続にはvanity domain(組み込みCDNまたはseo.example.comのようなサブドメイン)、対応する hostname alias、example.com/sitemap_index.xmlで取得できるサイトマップが必要です。PWA Kitでは ssr.jsにapp.get('/sitemap_index.xml', runtime.serveStaticFile('static/sitemap_index.xml'))を追加し、 アプリ設定のssrSharedでファイルを公開します。

Robots.txt

実装方法は明確に2つあり、混同すると実際のデプロイ不具合につながります。

  1. Business Managerのサイト設定(推奨される標準ルート)。 App Launcher → Merchant Tools → サイト → SEO → Robotsで、サイトごとのrobots.txtを記述できます(上限5万文字)。サイト設定として 保存され、インスタンス間でレプリケーションできます。
  2. カートリッジ単位の静的ファイル(カスタムストアフロント/SFRA)。 カスタムカートリッジの cartridge/static/defaultにrobots.txtを置き、UX Studioで管理します。staticディレクトリは サイト固有ではなくカートリッジ固有なので、このファイルをインスタンス間で移動できるのは コードレプリケーションだけです。

注意点は2つあります。

  • キャッシュの無効化。 キャッシュが有効な場合、カートリッジ単位の新しいrobots.txtを 配信するには、静的コンテンツのキャッシュを無効化する必要があります。
  • robots.txtはサブフォルダー単位ではなくドメイン単位。 複数ロケールをサブフォルダーで 運用する場合、ドメインルートにある1つのrobots.txtですべてのロケールの要件を満たす必要が あります。全ロケールをカバーするルールを設計してください。

私も賛同する実務上の原則は、robots.txtを最小限に保つことです。検索結果への掲載は canonicalタグとnoindexで制御します。robots.txtが制御するのはクロールであり、 インデックス登録ではありません。過度に依存することこそアンチパターンです。開発/ステージングは デプロイ済みカートリッジの初期設定でクロール不可に保ち、本番は意図的に設定します。 (プラットフォーム共通の仕組みはクロール と canonicalization を参照してください。)

Canonical URLとマスター/バリエーション商品モデル — SFCCの差別化点

ここは、SFCCのデータモデルとGoogle公式ガイドがほぼ完全に一致する部分であり、多くのSFCC解説が 十分に踏み込めていない部分でもあります。

ここで説明する SFCC のパターンでは、子バリエーション URL が `rel=canonical` でマスター PDP を指し、ProductGroup が構造化データ上の商品ファミリーを結び付けます。

SFCC では、マスター商品が正規の商品詳細ページです。色、サイズ、その他の各子バリエーション URL は、rel canonical でマスター URL を指します。構造化データでは、マスターを ProductGroup に対応付け、子の Product エンティティを hasVariant と isVariantOf で接続します。公開ストアフロントの出力を確認してください。

SFCCでは、色やサイズの違いを1つのマスター(ベース)商品と、その子である バリエーション商品として表現します。Salesforceは、順位を維持または改善するため、 バリエーション商品URLをマスター商品へcanonical化することを推奨しています。つまり、色やサイズ ごとの各PDPのrel="canonical"をベース商品へ向け、ランキングシグナルを1つのURLに集約します。

では、まさにこの*“one product, many variations”* (翻訳) 「1商品に複数のバリエーションがある」状況について、Googleの推奨を確認します。 Googleの商品バリエーションガイドは、“use the ProductGroup class with associated properties variesBy, hasVariant, and productGroupID to group such variants together.” (翻訳) このようなバリエーションをグループ化するには、variesBy、hasVariant、productGroupIDの 各プロパティとともにProductGroupクラスを使用します。と説明しています。 これはSFCCのマスター/バリエーションモデルと概念的に一致します。

  • マスター商品はGoogleのProductGroupに当たります。
  • バリエーション商品はhasVariantの構成要素です。「separate」パターンでは、各Productが isVariantOfを使ってグループの@idを参照します。
  • Googleは、nestedパターン(ProductGroup.hasVariant — “the most compact and natural representation of a product group” (翻訳) 商品グループを最も簡潔かつ自然に表現する 方法です。)と、separateパターン(Product.isVariantOf — “might be easier for some content management systems (CMSes) to generate” (翻訳) 一部のコンテンツ管理システム (CMS)では生成しやすい場合があります。)の両方を示しています。独立したPDPをまたいで バリエーション商品をテンプレート化するSFCCには、separateパターンが自然に適合します。

1ページ内でバリエーションを選択する構成について、Googleは*“only one distinct canonical URL for the overall ProductGroup”* (翻訳) ProductGroup全体に対して、明確に区別された canonical URLを1つだけ設定します。としています。これはSFCCがすでに推奨している 「バリエーション → マスター」のcanonicalルールそのものです。

Googleはcanonical化のシグナルを一貫させるよう明記しているため、両者を一致させます。重複URLの 統合ガイドでは、rel="canonical"を*“a strong signal that the specified URL should become canonical,”* (翻訳) 指定したURLをcanonicalにするべきだという強いシグナルです。、 サイトマップへの掲載を*“a weak signal,”* (翻訳) 弱いシグナルです。と位置づけ、 “these methods can stack and thus become more effective when combined.” (翻訳) これらの 方法は積み重ねられるため、組み合わせるとより効果的になります。と説明しています。ただし、 指定を矛盾させてはいけません。Googleは*“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").”* (翻訳) 異なる canonical指定手法を使って、同じページに別々のURLをcanonicalとして指定しないでください (たとえば、サイトマップではあるURLを指定し、同じページのrel="canonical"では別のURLを 指定しないでください)。と警告しています。SFCCでは、バリエーション商品のrel="canonical"、 サイトマップ、hreflang、内部リンクのすべてが同じマスターURLを示す必要があります。さらに、 “when linking within your site, link to the canonical URL rather than a duplicate URL” (翻訳) サイト内でリンクする際は、重複URLではなくcanonical URLへリンクしてください。 という原則に従い、内部ナビゲーションは特定のバリエーションURLではなくマスター商品へ向けます。

(バリエーションschemaの詳細は商品バリエーションSEO、canonicalの仕組みは canonicalization を参照してください。)

Meta Tag Rules

タイトルと説明には2つの実装方法があります。オブジェクトごとに手動で入力する方法 (Category/Product → Page Title/Page Descriptionフィールド)と、Meta Tag Rules (Merchant Tools → サイト → SEO → Meta Tags)を使い、ページ種別全体へ式を適用して ルールベースで動的生成する方法です。

  • 基本的な動的ルール: ${Category.Name} | Example Brandのようなカテゴリタイトル。
  • 上書きとフォールバックの併用: ${IF Category.pageTitle THEN Category.pageTitle ELSE Category.Name}を使うと、ルールをカタログ全体の初期値として保ちながら、マーチャンダイザーが 特定ページだけを上書きできます。このパターンを標準にしてください。ルールは大規模運用に適しますが、 個別の例外はこの併用構文を使うか、汎用ルールを継承する必要があります。
  • 接続語をローカライズする。 ローカライズしたルールでは、|区切りの前後に置く語などの 接続語も翻訳し、言語または言語・国レベルで設定します。
  • H1には制約がある。 タイトルや説明とは異なり、H1タグを動的にテンプレート化する標準の Meta Tag Rules構文はありません。H1のテンプレート化にはカスタム開発が必要です。

リダイレクト

SFCCには、標準の自動リダイレクト動作と手動設定ツールがあります。

  • 自動301は、Business Manager内でカテゴリまたは商品のURLを上書きしたときに作動します。 また、基になる商品IDが正しければ、SFCCは入力を誤ったPDPのURLを自動修正します。
  • 3つの手動ツール: 1対1の対応にはURL Redirects、従来のURLパターンを静的リソースへ リダイレクトする場合はStatic Mappings、複雑なワイルドカードパターンには Dynamic Mappingsを使います。
  • ステータスコード: 恒久的な移転には301(カスタム開発で変更する場合は308)、一時的な移転には 307を使います。(選び方の背景はAhrefsの11種類のリダイレクト と 301と302の違い を参照してください。)
  • ハードコードしたパスではなくオブジェクトIDを指定する。 転送先URLが後で変わったときの エラーやリダイレクトループを防ぐため、NOVOSはURL文字列ではなくオブジェクト種別/IDを 転送先にすることを推奨しています。

優先順位のルールは重要です。開発者ドキュメントには、“If there’s a conflict between your URL redirects and your URL rules for SEO, the URL redirects take precedence.” (翻訳) SEO用の URLリダイレクトとURLルールが競合する場合は、URLリダイレクトが優先されます。と明記されています。

移行の観点: SFRAを再公開するとき、順位を維持するうえで最も重要なSEO要素はリダイレクト戦略 です。AcxiomのSalesforceチームは、これがローンチ時のSEO作業の60–70%を占めるとしています。 これは、Webサイト移行を成功させるにはチェックリストだけでは足りない という、より広い教訓とも一致します。

構造化データ/schema — 機能差を正確に捉える

多くの解説が省いている重要な事実があります。SFCCのBusiness Managerには、Meta Tag Rulesや canonical処理に相当する、商品schemaを有効にする標準スイッチはありません。JSON-LDの商品 schemaを標準搭載するBigCommerceのCornerstoneテーマとは異なり、SFCCのschemaは テンプレート/開発者の責任です。SFRAのリファレンスストアフロントには、テンプレートコードに 商品やパンくずのschemaが一部含まれますが、これは開発者が実装したものであり、管理画面の機能では ありません。schemaはチェックボックスではなく開発タスクとして扱い、canonical節で説明した ProductGroup/バリエーションのパターンを目標形にします。実装環境で可能なら、Googleが推奨する JSON-LD形式を使ってください。

特にヘッドレス構成では、レンダリング上の制約も設計に含めます。Googleは、構造化データを クライアント側のhydration時だけに挿入するのではなく、サーバーレンダリングされたHTMLに含める よう案内しています。PWA Kitストアでは、JSON-LDをSSR出力に含める必要があります。詳しくは ヘッドレスの節を参照してください。

Hreflangと複数サイト/ロケールの設計

まずB2BとB2Cを区別します。 Salesforceのわかりやすい専用hreflang機能 “Alternate Language Links”はB2B Commerceの機能であり、B2C Commerceには専用画面として 存在しません。検索結果や一部の代理店ブログでさえ、この2つのCloudを混同しています。B2C Commerceの hreflangは、専用の代替言語管理画面ではなく、前述したサイトマップの**“Include Alternate URLs”** チェックボックスで設定します。

現実的な実装方法は2つです。

  1. サイトマップへ埋め込むhreflang: “Include Alternate URLs”を使います。単純ですが、 大規模環境ではサイトマップ1ファイル当たりのサイズ上限を超える可能性があります。
  2. カスタム<link rel="alternate" hreflang="x">タグ: ページの<head>へ直接出力します。 ロケールとURLの組み合わせが多すぎてサイトマップ方式では収まらない場合に必要です。

標準的なhreflangの運用ルールも適用されます。Googleのローカライズ版ページに関するガイドでは、 各ページの<head>に、そのページ自身を含むバリエーションごとの<link>要素を一式入れ、 すべてのバージョンで同じ組み合わせを維持し、該当する言語がない場合のx-defaultも加えるよう 説明しています。Googleは、<head>内の<link>要素とXMLサイトマップのどちらでもhreflangを 宣言できるとしています。これはSFCCで使える2つの方法と一致します。

Bingに関する注記: Bingは歴史的にGoogleと同じ方法ではhreflangをサポートせず、代わりに HTMLのcontent-languageシグナルを参照してきました。そのため、サイトマップのチェックボックス だけでhreflangを実装したSFCCサイトでは、Bingが求める言語シグナルを渡せていない可能性があります。 ただしBingの公式見解には一貫しない報告もあるため、厳格なルールとして扱う前に現在の挙動を確認して ください。

複数サイト構成が深くなるほど、負担はさらに増えます。各サイトは独自のサイトマップジョブと robots.txtを持つため、新しいサイトとしてロケールを追加することは、言語ファイルを1つ増やす だけではなく、完全に新しいSEO設定面を増やすことです。(国際SEOの仕組みは hreflangクラスターを参照してください。)

ファセットナビゲーション/絞り込みURL

SFCCは、SEOに適したフィルター/絞り込みURLを標準では生成しません。ファセットナビゲーションで 整ったURLと適切なインデックス登録を実現するには、カスタム開発が必要です。絞り込みの組み合わせに 対する標準のcanonical/noindex動作もないため、判断基準を自分たちで構築します。次の切り分けは、 SFCCの絞り込み機能へ応用できる実務的な枠組みです。BigCommerceなど他のプラットフォームでも 有効です。クロール可能なフィルターURLが組み合わせ爆発を起こすという根本問題は共通だからです。

ページ種別CanonicalRobots directive
メインカテゴリ(PLP)自己参照(Self)index
検索需要の高い絞り込み自己参照(Self)index
ナビゲーション専用の絞り込みメインカテゴリ(Main category)noindex,follow
並べ替え専用メインカテゴリ(Main category)noindex,follow
ページネーション(2ページ目以降)固有URLへの自己参照(Self (its own URL))index
バリエーション商品のPDPマスター商品(Master product)マスターへcanonical(canonical to master)

SFCCでも変わらない原則が2つあります。

  • robots.txtがブロックするのはクロールであり、インデックス登録ではない。 DisallowしたURLも、 そこへリンクがあればインデックス登録される可能性があります。Googleはページを取得できないため、 canonicalやnoindexも読めません。パラメータールールとページ上のcanonical+noindexを併用します。
  • ページネーションへnoindexを付けない。 GoogleのECサイト向けガイドは、2ページ目以降を 1ページ目へ統合するのではなく、各ページに固有のcanonical URLを設定するよう案内しています。 noindexを使う対象はフィルター/並べ替えのバリエーションであり、ページネーションではありません。

(プラットフォーム共通の詳細は、Ecommerce SEOクラスターの ファセットナビゲーション を参照してください。)

PWA Kit(および後継のStorefront Next)におけるヘッドレスSEO

ヘッドレスのストアフロントは、SCAPI上に構築されManaged Runtimeへデプロイされる、Salesforceの 実績あるReactフレームワークPWA Kitか、2026年のB2C Commerceリリースサイクルで登場した 新しいStorefront Nextフレームワークで動作します。ここでのSEO課題は、ほぼ全面的に クロール可能性の問題であり、Salesforce公式ドキュメントもその観点から説明しています。

以下の手順を使う前に適用範囲を確認してください。 この節の?__server_onlyテスト、 app/ssr.jsのファイルパス、SSR/hydrationの具体的な接続方法は、従来のPWA Kit/Composable Storefront向けに書かれ、SalesforceのPWA Kit開発者ドキュメントで直接確認したものです。 Storefront Nextは別の構成です。PWA KitのReact Router 5に対し、React 19とReact Router 7の ファイルベースルーティング、fetch-then-renderのローダーモデルを採用しています。同じManaged Runtime上で動作しますが、独自のstreaming SSRからhydrationへの流れを持ちます。Salesforceは 「Migrate from PWA Kit to Storefront Next」 という専用ガイドを用意するほど、両者を明確に区別しています。Storefront Nextを使う場合は、 ?__server_onlyや以下のファイルパスがそのまま使えると考えないでください。この節をその構成の 絶対的な手順として扱う前に、Storefront Nextの公式ドキュメント で 同等のサーバーレンダリング検証手順を確認します。どちらでも根本原則は同じです。クローラーに 重要なコンテンツ(title、meta、canonical、主要本文、価格/在庫状況、JSON-LD)は、クライアント 専用のhydrationへ先送りせず、サーバーレンダリングまたはstreamingされたHTMLへ含める必要があります。

レンダリングの仕組み。 初回ページ読み込みでは、PWA Kitはサーバーサイドレンダリングを 使います。公式ドキュメントには、“For the critical first page load, we use server-side rendering because it offers a powerful tool for optimizing performance: caching.” (翻訳) 重要な初回ページ 読み込みでは、パフォーマンス最適化に有効なキャッシュを利用できるため、サーバーサイドレンダリングを 使用します。とあります。SSRはExpressアプリ(app/ssr.js)を通じて実行され、“Managed Runtime’s CDN cache can store a previously rendered version of a page and serve it to the user in an instant.” (翻訳) Managed RuntimeのCDNキャッシュは、以前にレンダリングしたページを保存し、 即座にユーザーへ配信できます。と説明されています。初回読み込みは実際のHTMLなので、ここまでは クローラーにとって好都合です。

hydration境界がSEO上のリスクになります。 初回読み込み後は、“rendering duties are transferred from the server side to the client side through a process called hydration,” (翻訳) hydrationと呼ばれる処理を通じて、レンダリングの役割がサーバー側からクライアント側へ 移されます。その時点で*“your React app starts running in the user’s browser.”* (翻訳) Reactアプリがユーザーのブラウザー上で動作し始めます。コードは、サーバーとクライアントの両方で 安全に動くisomorphicなものでなければなりません。window.locationはクライアント専用、 req/resはサーバー専用です。さらに重要なのは、Salesforceが一部のコンテンツを意図的に クライアント専用としていることです。“Some content, such as personalized or frequently changing content, must only be rendered on the client side to get the best possible performance.” (翻訳) パーソナライズされたコンテンツや頻繁に変わるコンテンツなど、一部のコンテンツは最善の パフォーマンスを得るためにクライアント側でのみレンダリングする必要があります。ここにSEO上の 緊張関係があります。クローラーに重要なtitle、meta、canonical、主要本文、価格/在庫状況、 JSON-LDをこのクライアント専用領域へ入れると、クローラーから見えない可能性があります。

検証方法はSalesforce自身が示しています。 PWA Kitのベストプラクティスチェックリストは、 ホーム、PLP、PDPなどの入口ページに?__server_onlyを付け、“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.” (翻訳) サーバーレンダリング されたページにクローラー向けの十分なデータがあり、サーバーとクライアント間のレイアウトシフトが 小さい(理想的には発生しない)ことを確認します。これはSEO順位の向上に役立つ可能性があります。 と案内しています。これはSFCCのヘッドレスSEOで最も有用な確認方法であり、開発者でなくても実行 できます。URLに?__server_onlyを付け、title、meta、canonical、主要本文、商品schemaがすべて 存在することを確認してください。

SCAPIでURLロジックを同期します。 getUrlMappingエンドポイントにより、ヘッドレス ストアフロントは*“support localized, user-friendly URLs based on URL rules and URL redirects set up in Business Manager”* (翻訳) Business Managerで設定したURLルールとURLリダイレクトに 基づいて、ローカライズされた使いやすいURLをサポートします。商品、カテゴリ(カテゴリの 絞り込みを含む)、コンテンツアセットのURLを解決し、ロケールが渡されなければサイトの初期ロケールへ フォールバックします。Salesforceは長いTTLを推奨しており、初期値は12時間です。これにより、 ヘッドレスフロントエンド用に別のURLシステムを保守せず、Business Managerで設定した同じURL Rulesと URL Redirectsを利用できます。

埋めるべき機能差。 Salesforce公式のPWA Kitドキュメントは、SEOをほぼSSR/クロール可能性の 問題として扱い、PWA Kitにおけるmetaタグ、canonical、hreflang、schemaにはほとんど触れていません (サイトマップには別の専用ドキュメントがあります)。ページ内タグは、実装チームのhead管理層 (React Helmetまたは同等の仕組み)が担います。担当者がいなければ、技術的にはクロールできる PWA Kitストアでも、title、canonical、schemaが欠けたまま公開されかねません。 (ヘッドレス共通の仕組みはJavaScript SEO と ヘッドレスCMS SEO を参照してください。)

SFCCと他プラットフォームの率直な比較

Shopify、BigCommerce、Magento、WooCommerce、PrestaShopと比較すると、SFCCはエンタープライズ 領域に位置します。ホスティング型プラットフォームの中でも、サイト別に編集できるrobots.txt、 URL Rules + Aliases、canonicalを前提としたバリエーション、ルールベースのmetaタグなど、標準の SEO設定自由度は特に高い一方、使いこなすには最も深いプラットフォーム知識が求められます。 ShopifyがURLプレフィックスを固定し、robots.txtをテンプレートの背後へ隠し、BigCommerceが プリセットのURL構造と標準JSON-LDを提供するのに対し、SFCCは素材となる設定手段を渡し、 Business Managerを理解していることを前提とします。「初期状態でSEOが良好」なプラットフォーム ではなく、「意図的に設定すれば優れたSEOを実現できる」プラットフォームです。その基準で評価して ください。

専門家メモを追加

専門家の引用を固定

新しい人物ですか?まず、 /admin/experts/ → 専門家の引用を固定 から未登録プロフィールを作成してください。