サイトマップ
から参照する、自動生成されたサイトマップファイルを作成する robots.txt
. これは、SEO と新しいコンテンツの発見に役立ちます。 AEMは、設定を行わずに、クエリインデックスのみに基づいて、または手動のサイトマップ設定に基づいて、3 種類のサイトマップを生成できます。
設定を使用しないサイトマップの作成
何もしない場合は、でサイトマップが表示されます。 sitemap.xml
にサイトマップインデックスがあります。 sitemap.json
. 公開されたすべてのドキュメントのリストが含まれます。
別のタイプのサイトマップから開始し、このタイプに切り替える場合は、を削除する必要があります。 helix-sitemap.yaml
設定ファイル(GitHub で手動で定義するか、自動生成)を作成して、サイトのインデックスを再作成します。
外部 URL で使用されるドメイン名
外部 URL の作成に使用するドメインをカスタマイズするには、という名前のプロパティを追加します。 host
または cdn.prod.host
プロジェクト設定( .helix/config
Google Drive をバックエンドとして使用する場合、または .helix/config.xlsx
(Sharepoint の場合)を選択し、そのファイルをプレビューしてアクティベートします。
インデックスに基づくサイトマップ設定の生成
ドキュメントを参照してください インデックス作成 インデックス作成の詳細情報。 インデックスに基づいてサイトマップ設定を生成するには、前述のように初期クエリインデックスが既に設定されていることを確認してください。 これにより、次の場所にサイトマップが生成されます。
https://<branch>--<repo>--<owner>.hlx.page/sitemap.xml
次の場所にサイトマップ設定が作成されます。
https://<branch>--<repo>--<owner>.hlx.page/helix-sitemap.yaml
を作成することをお勧めします。 sitemap-index.xml
すべてのサイトマップを参照し、それを github リポジトリのプロジェクトコードの一部として保持するファイル。 これにより、プロジェクトの拡大に合わせて、新しいサイトマップを簡単に追加できます。
サイトマップ設定の手動セットアップ
生成されたサイトマップ設定ファイルで提供されるよりも多くのカスタマイズが必要な場合は、その内容をコピーして、という名前のファイルに貼り付けることができます helix-sitemap.yaml
プロジェクトのルートフォルダーに移動します。
注意: 手動で設定したインデックスとサイトマップを使用する場合(例:コードリポジトリに helix-query.yaml と helix-sitemap.yaml ファイルが含まれる場合)、インデックス定義に robots プロパティを含めて、サイトマップがのページを確実に除外できるようにする必要があります robots: noindex
メタデータ。 自動生成されたインデックス定義を使用する場合は、の推奨事項に従ってください インデックス作成に関するドキュメント そのため、これらのページはインデックスから除外されます。
次の節では、サポートされるサイトマップのタイプについて説明します。
シンプルなサイトマップ
以下は簡単です helix-sitemap.yaml
. サイトマップに表示する必要のあるすべてのページを含んだ単一のインデックスを想定しています。
sitemaps:
example:
source: /query-index.json
destination: /sitemap-en.xml
サイトマップの URL に最終変更日を含める場合は、 lastmod
設定の形式を含むプロパティ。
sitemaps:
example:
source: /query-index.json
destination: /sitemap-en.xml
lastmod: YYYY-MM-DD
複数のサイトマップ
サイトのセクションごと、または国や言語ごとにサイトマップを持つことが一般的です。 AEMは、対応するを含むサイトマップをサポートします hreflang
参照。 次の例では、インデックスとサイトマップの XML ファイルの間に 1 対 1 のマッピングがあると仮定します。
sitemaps:
example:
languages:
en:
source: /en/query-index.json
destination: /sitemap-en.xml
hreflang: en
fr:
source: /fr/query-index.json
destination: /sitemap-fr.xml
hreflang: fr
alternate: /fr/{path}
英語とフランス語のセクションに共通の接尾辞を共有するページが 2 つある場合、それらは関連します(例:ページがある場合) /welcome
英語セクションとページ /fr/welcome
(フランス語セクションで、結果のエントリ) /sitemap-en.xml
次のようになります:
<url>
<loc>https://wwww.mysite.com/welcome</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://wwww.mysite.com/welcome"/>
<xhtml:link rel="alternate" hreflang="fr" href="https://wwww.mysite.com/fr/welcome"/>
</url>
同様のエントリは、次の場所で利用できます /sitemap-fr.xml
.
プライマリ言語の手動指定
ページの代替バージョンがあっても、一般的なサフィックスを使用して識別できないことがあります。パスを変更してはいけない従来の web サイトを移植している場合などが考えられます。 その場合、以下を指定できます。 primary-language-url
別の場所については、ドキュメントのメタデータ内。
プライマリ言語が英語だとします。ページがあります /welcome
英語の節のと /fr/bienvenu
フランス語のセクションでは、後者は前者の代替バージョンです。
まず、その情報をのドキュメントに追加します。 /fr/bienvenu
メタデータで以下を行います。
グローバルに追加することもできます metadata
に示すように、シート 一括メタデータ.
次に、インデックス付きプロパティを追加します primary-language-url
フランス語インデックスに対して:
primary-language-url:
select: head > meta[name="primary-language-url"]
value: attribute(el, "content")
最後に、フランス語のページを再公開します。 サイトマップを再構築.
デフォルト言語の指定
もう 1 つの一般的な要件は、複数の言語を使用するサイトマップのデフォルト言語を指定することです。 これを行うには、プロパティを追加します default
サイトマップで以下を行います。
sitemaps:
example:
default: en
languages:
en:
source: /en/query-index.json
destination: /sitemap-en.xml
hreflang: en
fr:
source: /fr/query-index.json
destination: /sitemap-fr.xml
hreflang: fr
alternate: /fr/{path}
結果のサイトマップでは、英語のサブツリーのすべてのエントリに、hreflang という代替エントリが追加されます x-default
.
1 つのサブツリーに対して複数のシュアフランジを指定する
場合によっては、複数のホットフランジを 1 つの言語サブツリーにのみマッピングする必要があります。例えば、結果のサイトマップに次の内容を表示するとします。
<url>
<loc>https://myhost/la/page</loc>
<xhtml:link rel="alternate" hreflang="es-VE" href="https://myhost/la/page"/>
<xhtml:link rel="alternate" hreflang="es-SV" href="https://myhost/la/page"/>
<xhtml:link rel="alternate" hreflang="es-PA" href="https://myhost/la/page"/>
</url>
サイトマップソース内の各ページは正確に 1 回表示される必要がありますが、複数の代替フラグメントが関連付けられています。 これを行うには、で言語の配列を指定する必要があります hreflang
プロパティ:
sitemaps:
example:
languages:
la:
source: /la/query-index.json
destination: /sitemap-la.xml
hreflang:
- es-VE
- es-SV
- es-PA
1 つのサイトマップに集計された複数のインデックス
特に、サイトごとに検索エンジンに送信できるサイトマップに制限があるので、断片化された小さなサイトマップよりも 1 つの大きなサイトマップの方が簡単な場合があります。
次の例は、複数の個別のインデックスを 1 つのサイトマップに集計する方法を示しています。
sitemaps:
example:
languages:
dk:
source: /dk/query-index.json
destination: /sitemap.xml
hreflang: dk
alternate: /dk/{path}
no:
source: /no/query-index.json
destination: /sitemap.xml
hreflang: no
alternate: /no/{path}
同じ宛先を使用して、複数の小さなサイトマップを 1 つの大きなサイトマップに組み合わせることができます。
他のサイトマップを入力として含める
サイトマップ内のすべての言語がAEMで管理されているわけではない混合シナリオでは、次のように XML パスをソースとして指定することで、他の言語ツリーからのサイトマップを含めることができます。
sitemaps:
example:
languages:
en:
source: /en/query-index.json
destination: /sitemaps/sitemap-en.xml
hreflang: en
fr:
source: https://www.mysite.com/legacy/sitemap-fr.xml
destination: /sitemaps/sitemap-fr.xml
hreflang: fr
alternate: /fr/{path}
この例では、外部フランス語のサイトマップを使用して、すべてのサイトマップの場所を計算します。 AEMは、を使用して外部サイトマップのフランス語の対応する部分を分解することにより、英語のサイトマップ URL の代替値を決定します。 alternate
定義。