高度な URL 設定 url
AEM CIF コアコンポーネントは、製品ページとカテゴリページの URL をカスタマイズする高度な設定を提供します。多くの実装では、検索エンジン最適化(SEO)用にこれらの URL をカスタマイズします。次のビデオでは、UrlProvider
サービスと Sling マッピングの機能を設定して、製品ページとカテゴリページの URL をカスタマイズする方法について詳しく説明します。
設定 configuration
SEO の要件とニーズに応じて UrlProvider
サービスを設定するには、プロジェクトで CIF URL プロバイダーの設定 の OSGI 設定を指定する必要があります。
製品ページの URL 形式 product
製品ページの URL を設定するもので、次のオプションをサポートしています。
{{page}}.html/{{sku}}.html#{{variant_sku}}
(デフォルト){{page}}.html/{{sku}}/{{url_key}}.html#{{variant_sku}}
{{page}}.html/{{sku}}/{{category}}/{{url_key}}.html#{{variant_sku}}
{{page}}.html/{{sku}}/{{url_path}}.html#{{variant_sku}}
{{page}}.html/{{url_key}}.html#{{variant_sku}}
{{page}}.html/{{category}}/{{url_key}}.html#{{variant_sku}}
{{page}}.html/{{url_path}}.html#{{variant_sku}}
Venia 参照用ストアがある場合:
{{page}}
は/content/venia/us/en/products/product-page
に置き換えられます{{sku}}
は製品の SKU(例:VP09
)に置き換えられます{{url_key}}
は製品のurl_key
プロパティ(例:lenora-crochet-shorts
)に置き換えられます{{url_path}}
は製品のurl_path
(例:venia-bottoms/venia-pants/lenora-crochet-shorts
)に置き換えられます{{variant_sku}}
は現在選択されているバリアント(例:VP09-KH-S
)に置き換えられます
url_path
が非推奨になったため、事前定義された製品 URL 形式は製品の url_rewrites
を使用し、url_path
が利用できない場合は、最もパスセグメントが多いものを代わりに選択します。
上記のサンプルデータでは、デフォルトの URL 形式を使用して形式設定された製品バリアント URL は /content/venia/us/en/products/product-page.html/VP09.html#VP09-KH-S
のようになります。
カテゴリページの URL 形式 product-list
カテゴリページまたは製品リストページの URL を設定するもので、次のオプションをサポートしています。
{{page}}.html/{{url_path}}.html
(デフォルト){{page}}.html/{{url_key}}.html
Venia 参照用ストアがある場合:
{{page}}
は/content/venia/us/en/products/category-page
に置き換えられます{{url_key}}
はカテゴリのurl_key
プロパティに置き換えられます{{url_path}}
はカテゴリのurl_path
に置き換えられます
上記のサンプルデータでは、デフォルトの URL 形式を使用して設定されたカテゴリページ URL は /content/venia/us/en/products/category-page.html/venia-bottoms/venia-pants.html
のようになります。
url_path
は、製品またはカテゴリの上位層の url_keys
と製品またはカテゴリの url_key
をスラッシュ /
で区切って連結したものです。各 url_key
は、特定のストア内で一意と見なされます。ストア固有の設定 store-specific-urlformats
CIF URL プロバイダーの設定 で設定したシステム全体のカテゴリおよび製品ページの URL 形式は、各ストアに対して変更できます。
CIF 設定では、エディターが別の製品またはカテゴリページの URL 形式を選択できます。何も選択されていない場合、実装はシステム全体の設定に戻ります。
ライブ web サイトの URL 形式を変更すると、サイトのオーガニックトラフィックに悪影響を与える可能性があります。ベストプラクティスを参照して、事前に URL 形式の変更を慎重に計画してください。
カテゴリ対応の製品ページ URL context-aware-pdps
製品 URL にカテゴリ情報をエンコードできるので、複数のカテゴリに属する製品に対しても、複数の製品 URL でアドレス指定できます。
デフォルトの URL 形式では、次のスキームを使用した代替値の 1 つが選択されます。
url_path
が e コマースバックエンドによって定義されている場合は、それを使用します(非推奨)url_rewrites
から、製品のurl_key
で終わる URL を代替値として使用します- これらの代替値から、パスセグメントが最も多いものを使用します
- 複数ある場合は、e コマースバックエンドで指定された順序で最初の 1 つを使用します
このスキームは、子カテゴリが親カテゴリよりも具体的であるという前提に基づいて上位カテゴリが最も上位にある url_path
を選択します。選択された url_path
は 正規 と見なされ製品ページまたは製品サイトマップの正規リンクとして常に使用されます。
ただし、買い物客がカテゴリページから製品ページに移動する場合、またはある製品ページから同じカテゴリ内の別の関連製品ページに移動する場合は、現在のカテゴリのコンテキストを維持することをお勧めします。この場合、url_path
の選択は、上記の 正規 の選択よりも現在のカテゴリのコンテキスト内にある代替値を優先する必要があります。
この機能は、CIF URL プロバイダーの設定 で有効にする必要があります。有効にすると、次の場合に、選択により代替値のスコアが高くなります。
- 最初から特定のカテゴリの
url_path
の一部に一致する(ファジープレフィックスの一致) - または、任意の場所で特定のカテゴリの
url_key
と一致する(完全な部分一致)
例えば、以下の 製品クエリ に対する応答について考えてみます。次のような場合:
- ユーザーが「2022年夏の新製品/新規」カテゴリページを表示している
- ストアがデフォルトのカテゴリページ URL 形式を使用する
代替の「new-products/new-in-summer-2022/gold-cirque-earrings.html」は、最初からのコンテキストのパスセグメントの 2 つに一致します。つまり、「new-products」と「new-in-summer-2022」です。ストアがカテゴリ url_key
のみを含んだカテゴリページ URL 形式を使用している場合でも、コンテキストの url_key
と一致するため、同じ代替値が選択されます。どちらの場合も、製品ページの URL は「new-products/new-in-summer-2022/gold-cirque-earrings.html」の url_path
に対して作成されます。
{
"data": {
"products": {
"items": [
{
"sku": "VA18-GO-NA",
"url_key": "gold-cirque-earrings",
"url_rewrites": [
{
"url": "gold-cirque-earrings.html"
},
{
"url": "venia-accessories/gold-cirque-earrings.html"
},
{
"url": "venia-accessories/venia-jewelry/gold-cirque-earrings.html"
},
{
"url": "new-products/gold-cirque-earrings.html"
},
{
"url": "new-products/new-in-summer-2022/gold-cirque-earrings.html"
}
]
}
]
}
}
}
特定のカテゴリおよび製品ページ specific-pages
カタログのカテゴリや製品の特定のサブセットに対してのみ、複数のカテゴリページおよび製品ページを作成できます。
選択条件 specific-pages-selection
特定のカテゴリページの選択はカテゴリの url_path
または url_key
に基づいて簡単に行えます。一致するサブカテゴリは、完全なカテゴリ url_path
を含む URL 形式でのみサポートされます。それ以外の場合は、url_key
の完全一致のみが可能です。
特定の製品ページは、製品の SKU またはカテゴリのいずれかによって選択されます。後者の場合は、一部のカテゴリ情報を製品 URL にエンコードする必要があります。この機能は、一部のデフォルト URL 形式でのみ使用できます。次の表に、SKU またはカテゴリ別の特定のページ選択をサポートする URL 形式の比較を示します。
{{page}}.html/{{url_key}}.html
{{page}}.html/{{category}}/{{url_key}}.html
{{page}}.html/{{url_path}}.html
{{page}}.html/{{sku}}.html
{{page}}.html/{{sku}}/{{url_key}}.html
{{page}}.html/{{sku}}/{{category}}/{{url_key}}.html
{{page}}.html/{{sku}}/{{url_path}}.html
ディープリンク specific-pages-deep-linking
UrlProvider
は、特定のカテゴリおよび製品ページへのディープリンクをオーサー層インスタンスで生成するように事前に設定されています。この機能は、編集者がプレビューモードでサイトを閲覧し、特定の製品またはカテゴリページに移動し、編集モードに切り替えてページを編集する場合に便利です。
一方、パブリッシュ層インスタンスでは、例えば検索エンジンのランキングを落とさないように、カタログページの URL を安定した状態に保つ必要があります。パブリッシュ層が理由で、インスタンスはデフォルトでは特定のカタログページへのディープリンクをレンダリングしません。この動作を変更するには、常に特定のページの URL を生成するように CIF URL プロバイダー固有のページ戦略 を設定できます。
複数のカタログページ multiple-product-pages
編集者がサイトのトップレベルのナビゲーションを完全に制御する場合、単一のカタログページを使用してカタログのトップレベルのカテゴリをレンダリングすることが望ましくない場合があります。その代わりに、編集者は、トップレベルナビゲーションに含めるカタログのカテゴリごとに 1 つずつ、複数のカタログページを作成できます。
使用例として、各カタログページには、カタログページ用に設定されたカテゴリに固有の製品ページやカテゴリページへの参照を含めることができます。UrlProvider
はこれらの接続を使用して、設定済みカテゴリのページおよびカテゴリへのリンクを作成します。ただし、パフォーマンス上の理由から、サイトのナビゲーションルート/ランディングページの直接のカタログページの子のみが考慮されます。
カタログページの製品ページとカテゴリページをそのカタログページの下位に配置することをお勧めします。そうしないと、ナビゲーションやパンくずなどのコンポーネントが正しく機能しない場合があります。
カスタマイズ customization
カスタム URL 形式 custom-url-format
カスタム URL 形式を指定するには、プロジェクトで ProductUrlFormat
または CategoryUrlFormat
サービスインターフェイスを実装し、その実装を OSGi サービスとして登録します。これらの実装が使用できる場合は、設定されている事前定義済み形式に置き換えます。複数の実装が登録されている場合、サービスランキングの高い実装は、サービスランキングの低い実装に置き換わます。
カスタム URL 形式の実装では、指定されたパラメーターから URL を作成するメソッドと URL を解析して同じパラメーターを返すメソッドのペアを実装する必要があります。
Sling マッピングとの結合 sling-mapping
UrlProvider
に加え、URL の書き換えと処理を行うために、Sling マッピングを設定できます。AEM アーキタイププロジェクトでは、ポート 4503(パブリッシュ)および 80(Dispatcher)の Sling マッピングを設定する設定例も提供されています。
AEM Dispatcher との統合 dispatcher
URL の書き換えは、mod_rewrite
モジュールを備えた AEM Dispatcher HTTP サーバーを使用して実行することもできます。AEM プロジェクトアーキタイプ は、既に生成されたサイズに対する基本的な 書き換えルール が含まれている、参照用 AEM Dispatcher 設定を提供します。
ベストプラクティス best-practices
最適な URL 形式を選択 choose-url-format
前述したように、使用可能なデフォルト形式の 1 つを選択するか、カスタム形式を実装するかさえ、ストアのニーズと要件に大きく依存します。次の提案は、知識に基づいた決定を下すのに役立つ場合があります。
SKU を含む製品ページの URL 形式を使用します。
CIF コアコンポーネントでは、すべてのコンポーネントで SKU をプライマリ識別子として使用します。製品ページの URL 形式に SKU が含まれていない場合、それを解決するには GraphQL クエリが必要です。この解決策は、最初の 1 バイトを受信するまでの時間(TTFB)に影響を及ぼす可能性があります。また、買い物客が検索エンジンを使用して SKU で製品を見つけることができる方が望ましい場合もあります。
カテゴリコンテキストを含む製品ページの URL 形式を使用します。
CIF URL プロバイダーの一部の機能は、カテゴリ url_key
やカテゴリ url_path
など、カテゴリコンテキストをエンコードする製品 URL 形式を使用する場合にのみ使用できます。これらの機能が新しいストアに必要ない可能性がある場合でも、最初にこれらの URL 形式のいずれかを使用すると、将来の移行作業を軽減するのに役立ちます。
URL の長さとエンコードされた情報のバランス。
カタログのサイズ、特にカテゴリツリーのサイズと深さによっては、カテゴリの完全な url_path
を URL にエンコードすることが合理的でない場合があります。その場合、代わりにカテゴリの url_key
のみを含めることで、URL の長さを短くすることができます。このメソッドにより、カテゴリ url_path
を使用する際に利用できるほとんどの機能がサポートされるようになります。
また、Sling マッピングを使用して、SKU と製品 url_key
を組み合わせます。ほとんどの eコマースシステムでは、SKU は特定の形式に従っており、受信リクエストのために SKU と url_key
を分離することは簡単にできます。そのことを念頭に置くと、製品ページの URL を /p/{{category}}/{{sku}}-{{url_key}}.html
に、カテゴリ URL を /c/{{url_key}}.html
にそれぞれ書き換えることができます。/p
および /c
接頭辞は、製品ページとカテゴリページを他のコンテンツページと区別するために、引き続き必要です。
新しい URL 形式への移行 migrate-url-formats
デフォルトの URL 形式の多くは、何らかの形で相互に互換性があります。つまり、ある形式の URL が別の形式の URL で解析される可能性があります。これは、URL 形式間の移行に役立ちます。
一方、検索エンジンでは、すべてのカタログページを新しい URL 形式で再度クロールするのにしばらく時間が必要になります。このプロセスをサポートし、エンドユーザーエクスペリエンスを向上させるために、古い URL から新しい URL にユーザーを転送するリダイレクトを提供することをお勧めします。
その 1 つのアプローチとして考えられるのは、ステージング環境を実稼動 e コマースバックエンドに接続し、新しい URL 形式を使用するように設定することです。その後、ステージング環境と実稼動環境の両方で CIF 製品サイトマップジェネレーターで生成された製品サイトマップ を取得し、それらを使用して Apache httpd 書き換えマップ を作成します。この書き換えマップは、新しい URL 形式のロールアウトと共に Dispatcher にデプロイできます。
例 example
Venia 参照用ストアプロジェクトには、製品ページとカテゴリページでのカスタム URL を使用方法を示す設定例が含まれています。この設定により、各プロジェクトで、SEO のニーズに応じて、製品ページとカテゴリページの個々の URL パターンを設定できます。上記の CIF UrlProvider
と Sling マッピングの組み合わせが使用されます。
ui.content/src/main/content/jcr_root/etc/map.publish/https
の Sling マッピング hostname.adobeaemcloud.com
フォルダーの名前を変更し、resource.resolver.map.location="/etc/map.publish"
をプロジェクトの JcrResourceResolver
設定に追加してこの設定を有効にします。