XML sitemap

sitemaps.org仕様に準拠したXMLサイトマップを作成し、検索エンジンがサイトコンテンツを効率的にインデックスできるようにします。

xmlsitemap
139,100 sites
114
drupal.org
Drupal 8 Drupal 9 Drupal 10 Drupal 11

インストール

Drupal 11, 10 v2.0.0
composer require 'drupal/xmlsitemap:^2.0'
Drupal 9 v8.x-1.5
composer require 'drupal/xmlsitemap:8.x-1.5'
Drupal 8 v8.x-1.2
composer require 'drupal/xmlsitemap:8.x-1.2'

概要

XML Sitemapは、sitemaps.orgプロトコルに準拠したサイトマップを自動的に作成します。これにより、サイト上のURLの構造化されたリストと、最終更新日時、更新頻度、相対的な優先度に関するメタデータを提供することで、検索エンジンが検索結果を最新の状態に保つのを支援します。

このモジュールは、Node、Taxonomyターム、ユーザー、メニューリンクなど、Drupalのすべてのコンテンツエンティティタイプをサポートしています。どのエンティティタイプとバンドルをサイトマップに含めるかを設定し、デフォルトの優先度と変更頻度を設定し、個々のアイテムでこれらの設定を上書きできます。

サイトマップはキャッシュされたXMLファイルとして生成され、検索エンジンのクローラーに直接提供されるため、多くのリンクを持つ大規模サイトでも最適なパフォーマンスを確保できます。

Features

  • sitemaps.org仕様に準拠したXMLサイトマップを生成
  • すべてのコンテンツエンティティタイプをサポート(Node、ユーザー、Taxonomyターム、メニューリンクなど)
  • エンティティタイプとバンドルごとに含める/除外を設定可能
  • コンテンツタイプごとにカスタマイズ可能な優先度(0.0-1.0)と変更頻度の設定
  • きめ細かい制御のためのアイテムごとのサイトマップ設定の上書き
  • コンテンツが変更されたときにcronによる自動的なサイトマップ再生成
  • 50,000リンクを超えるサイト向けのサイトマップインデックスのサポート
  • サイトマップファイルのGzip圧縮サポート
  • ブラウザでサイトマップを表示するための人間が読めるXSLスタイルシート
  • 言語ごとのサイトマップリンクを持つ多言語サポート
  • robots.txtモジュールとの統合によるサイトマップ参照の自動追加
  • Metatagモジュールとの統合によるnoindexコンテンツの除外
  • サイトマップリンクデータをクエリするためのViews統合
  • サイトマップの再生成と再構築のためのDrushコマンド

Use Cases

基本的なSEO設定

モジュールをインストールした後、Nodeエンティティタイプを有効にし、どのコンテンツタイプを含めるか(例:記事、ページ)を選択します。適切な優先度を設定します - 重要なランディングページは0.8-0.9、ブログ投稿は0.5-0.6、アーカイブページは0.3-0.4。cronを実行してサイトマップを生成し、Google Search Consoleに送信します。

複数のサイトマップを持つ大規模サイト

50,000以上のURLを持つサイトの場合、モジュールは複数のサイトマップチャンクを持つサイトマップインデックスを自動的に作成します。必要に応じて詳細設定でチャンクサイズを設定します。cron再生成を無効にし、パフォーマンス向上のためにトラフィックの少ない期間にDrushコマンドを使用することを検討してください。

多言語サイト

Languageモジュールが有効になっている場合、XML Sitemapは言語固有のサイトマップコンテキストを自動的に作成します。各言語は適切なhreflang属性を持つ独自のサイトマップを取得します。含まれるすべてのコンテンツタイプでコンテンツ翻訳が正しく設定されていることを確認してください。

Eコマース製品カタログ

サイトマップに含める製品エンティティタイプを有効にします。製品を高い優先度(0.7-0.8)に設定し、変更頻度をdailyまたはweeklyに設定します。アイテムごとの上書きを使用して、注目製品をブーストしたり、在庫切れのアイテムを降格させたりします。在庫に基づいて優先度を動的に調整するためにhook_xmlsitemap_link_alterの使用を検討してください。

特定のコンテンツの除外

コンテンツ編集フォームのアイテムごとのXML Sitemap設定を使用して、特定のアイテムを除外します。一括除外の場合は、バンドル設定を使用してコンテンツタイプ全体を無効にします。Metatagを使用している場合は、アイテムをnoindexに設定し、metatag除外オプションを有効にします。

カスタムリンク

XML Sitemap Customサブモジュールを有効にして、静的ファイル、外部マイクロサイト、レガシーURLなど、自動的に検出されないURLを追加します。カスタムリンクは同じ優先度と変更頻度の設定をサポートしています。

検索エンジンへの送信

XML Sitemap Enginesサブモジュールを有効にして、サイトマップが更新されたときに検索エンジンに自動的に通知します。Google送信を設定し、オプションで他の検索エンジン用のカスタムping URLを追加します。

Tips

  • 現実的な優先度を設定する - コンテンツの重要性を区別するために0.0-1.0の範囲全体を使用する
  • 変更頻度は希望のクロール頻度ではなく、実際の更新パターンに基づいて設定する
  • デバッグを容易にするためにXSLスタイルシートオプションを使用する - ブラウザでsitemap.xmlを表示できる
  • ステータスレポートでサイトマップのステータスを監視して、再生成やファイルサイズに関する警告を確認する
  • 再生成タイミングをより良く制御するために、cronでDrushコマンドを使用することを検討する
  • サイトマップの問題をデバッグするときは一時的に開発者モードを有効にする
  • サイトマップに含めることを期待する前に、匿名ユーザーがコンテンツにアクセスできることを常にテストする

Technical Details

Admin Pages 6
XML Sitemap /admin/config/search/xmlsitemap

すべてのXMLサイトマップを一覧表示するメイン管理ページ。サイトマップID、コンテキスト、リンク数、チャンク数、最終更新日時を表示します。個々のサイトマップを編集または削除する操作を提供します。

設定 /admin/config/search/xmlsitemap/settings

再生成タイミング、出力形式、詳細オプションを含むグローバルなXML Sitemap設定を構成します。

サイトマップエンティティ /admin/config/search/xmlsitemap/entities/settings

XMLサイトマップに含めるエンティティタイプとバンドルを選択します。

リンクバンドル設定 /admin/config/search/xmlsitemap/settings/{entity}/{bundle}

特定のエンティティタイプバンドル(例:記事コンテンツタイプ)のXMLサイトマップ設定を構成します。

リンクの再構築 /admin/config/search/xmlsitemap/rebuild

すべてのコンテンツを再インデックスしてXMLサイトマップデータを完全に再構築します。初期インストール後または緊急時に使用してください。

新しいXML Sitemapを追加 /admin/config/search/xmlsitemap/add

特定のコンテキスト(例:別の言語用)で新しいXMLサイトマップを作成します。

権限 2
XML Sitemap設定の管理

XML Sitemap設定を構成し、サイトマップに含めるリンクを選択します。これは制限された権限です。

XMLサイトマップリンク設定の上書き

個々のリンク/エンティティのXMLサイトマップ設定を上書きします。ユーザーが編集できるコンテンツの含有と優先度を変更できます。

Hooks 6
hook_xmlsitemap_link_info

このモジュールが提供するリンクのタイプに関する情報を提供します。

hook_xmlsitemap_link_alter

保存前にサイトマップリンクのデータを変更します。

hook_xmlsitemap_element_alter

個々のサイトマップエントリのXML要素コンテンツを変更します。

hook_xmlsitemap_root_attributes_alter

サイトマップのルート要素属性を変更します。

hook_xmlsitemap_context_info

利用可能なサイトマップコンテキストを定義します。

hook_xmlsitemap_context

現在のコンテキスト値を提供します。

Drush Commands 3
drush xmlsitemap:regenerate

XMLサイトマップファイルを再生成します。コンテンツの変更後にキャッシュされたサイトマップファイルを再構築するために使用します。

drush xmlsitemap:rebuild

すべての可能なXMLサイトマップデータをダンプして再処理し、その後ファイルを再生成します。サイトマップリンクデータの完全な再構築に使用します。

drush xmlsitemap:index

未インデックスのXMLサイトマップリンクを処理します。まだサイトマップに追加されていない新しいコンテンツをインデックスします。

Troubleshooting 6
サイトマップが「ページが見つかりません」または空で表示される

cronを実行してサイトマップファイルを生成してください。サイトマップキャッシュディレクトリが書き込み可能であることを確認してください。少なくとも1つのエンティティタイプバンドルが含有に有効になっていることを確認してください。

コンテンツがサイトマップに表示されない

サイトマップエンティティ設定でコンテンツタイプが有効になっていることを確認してください。個々のアイテムが「含める」に設定され、「公開済み」ステータスであることを確認してください。匿名ユーザーがコンテンツを表示できることを確認してください。

サイトマップ生成でメモリ不足になる

詳細設定でバッチ制限を減らしてください。URLエイリアスのプリフェッチを無効にしてください。Webベースの再生成の代わりにDrushコマンドの使用を検討してください。

コンテンツ変更後にサイトマップが更新されない

cronが実行されており、cron再生成が無効になっていないことを確認してください。最終生成以降に最小ライフタイムが経過していることを確認してください。手動でcronを実行するか、Drushを使用して再生成してください。

サイトマップチャンクが多すぎる

詳細設定でチャンクサイズを増やしてください。低優先度のコンテンツタイプやアーカイブの除外を検討してください。チャンクあたり最大50,000リンク、合計最大50,000チャンクです。

既存のsitemap.xmlファイルの競合

Webルートから静的なsitemap.xmlファイルを削除してください。XML SitemapはDrupalルーティングを通じてサイトマップを動的に提供する必要があります。

Security Notes 4
  • 'administer xmlsitemap'権限は制限付きとしてマークされており、信頼できる管理者にのみ与えるべきです
  • サイトマップファイルはサイトのURL構造を誰にでも公開する可能性があります
  • サイトマップは匿名ユーザーのアクセスを尊重するため、コンテンツアクセス権限が正しく設定されていることを確認してください
  • モジュールはリンクを含める前にエンティティアクセスをチェックしますが、カスタムリンクの追加はこれをバイパスします