「サイトマップを作ってGoogleに送れば、SEOに効くはず」。サイトマップはSEO対策の基本として紹介されることが多く、WordPressなどのCMSでは自動で作られるため、送信を済ませれば対策は終わりと思われがちです。ところが、Googleの公式ヘルプにも、サイトマップに載せたURLがすべてクロールされ、インデックスに登録されるとは限らないと明記されています。サイトマップはXMLとHTMLで役割が違い、数千ページを超えたらインデックスの制御の一部として扱います。
本記事では、XMLとHTMLのサイトマップの違いと作り方から、数千ページを超えるサイトでの分け方とURLの選び方まで、大規模サイトのインデックスの制御を支援する立場で順を追ってお伝えします。
- サイトマップのSEO上の役割は、検索に出したいURLをGoogleに見つけてもらうことで、登録や順位は保証されない
- XMLサイトマップは検索エンジンが読むファイル、HTMLサイトマップは訪れた人がページを探すページ
- XMLサイトマップはCMSかデータベースから自動で作り、Search Consoleかrobots.txtでGoogleに伝える
- 数千ページを超えたら、ページの種類ごとにサイトマップを分け、canonicalと同じ規則で載せるURLを選ぶ
サイトマップにSEO効果はあるか
サイトマップのSEO効果は、検索に出したいページのURLをGoogleに伝え、見つけてもらいやすくすることです。Googleは、サイトマップを読み込んで、サイトのクロールを効率よく進めるとしています。
ただし、載せたURLがすべてインデックスに登録されるとは限りません。サイトマップが関わるのは、検索結果に出る前の、ページを見つけてクロールする工程です。
サイトマップに書く項目のうち、Googleが使うものと使わないものは次の表のとおりです。
項目 | Googleの扱い |
|---|---|
URL(loc) | クロールするURLの候補にする。正規URLを示す弱いシグナルにもなる |
最終更新日(lastmod) | 値が一貫して正確だと確かめられる場合に使う |
優先度(priority) | 使わない |
更新頻度(changefreq) | 使わない |
※ 出典:Google検索セントラル「サイトマップの作成と送信」「rel="canonical" などを利用して正規 URL を指定する方法」
サイトマップが要るサイトの目安
サイトマップが要らない場合があるとGoogleが説明しているのは、検索結果に出したいページがおよそ500ページ以下で、ホームページからリンクをたどって全ページに届くサイトです。反対に、サイトマップが役立つとGoogleが挙げているサイトは次の3つです。
- ページ数が多く、すべてのページへのリンクを確かめにくいサイト
- 新しく、ほかのサイトからのリンクが少ないサイト
- 動画や画像が多いサイトや、Googleニュースに表示されるサイト

※ 出典:Google検索セントラル「サイトマップについて」
XMLサイトマップとHTMLサイトマップの違い
XMLサイトマップとHTMLサイトマップは、読む相手が違います。XMLサイトマップはGoogleなどの検索エンジンが読むファイルで、HTMLサイトマップはサイトを訪れた人がページを探すためのページです。
項目 | XMLサイトマップ | HTMLサイトマップ |
|---|---|---|
読む相手 | 検索エンジン | サイトを訪れた人 |
形式 | sitemap.xmlなどのXMLファイル | 通常のWebページ |
書く内容 | ページのURLと最終更新日 | ページへのリンクと分類の見出し |
SEOで担う役割 | 検索に出したいURLをGoogleに伝える | サイト内のリンクとして、ページへの経路を増やす |

HTMLサイトマップがSEOに関わるのは、ページの中のリンクを通してです。Googleがたどってページを見つけられるのは、通常、href属性を持つaタグのリンクです。HTMLサイトマップのリンクもaタグで書けば、Googleがページを見つける経路の一つになります。
XMLサイトマップは訪れた人がページを探す役に立たず、HTMLサイトマップは最終更新日を伝えられません。XMLとHTMLは、片方でもう片方の代わりはできません。
XMLとHTMLのサイトマップの作り方
サイトマップは、XMLならCMSかデータベースから自動で作り、HTMLならサイトの分類に沿ってリンクを並べたページを作ります。
XMLサイトマップの作り方
XMLサイトマップを作る手順は、次の4つです。
検索結果に出したいページの正規URLを選びます。同じ内容を表示するURLが複数あれば、正規URLにする1つだけを載せます。
WordPressなどのCMSは、サイトマップを自動で用意していることが多いです。Googleは、URLが数十に満たなければ手で書いてもよく、それより多ければ、サイトのデータベースからURLを書き出して自動で作る方法をすすめています。
ファイルはUTF-8で保存し、URLは https:// から書いた絶対URLにします。Search Consoleで送信しない場合、サイトマップが伝えられるのは置いたディレクトリより下の階層だけなので、ルートに置きます。
Search Consoleのサイトマップレポートで送信するか、robots.txtに「Sitemap:」で始まる行を書きます。Search Console APIで送信する方法もあります。
タグの書き方と、自分のサイトのサイトマップのURLを確かめる方法は、XMLサイトマップの記事で扱っています。WordPressで作る場合は、WordPressでサイトマップを作る方法をご覧ください。
HTMLサイトマップの作り方
HTMLサイトマップは、サイトの分類ごとに見出しを立て、その下に各ページへのリンクを並べた1枚のページとして作ります。作るときに満たす条件は次の3つです。
- 分類ごとの見出しの下に、各ページへのリンクを並べる
- リンクをhref属性を持つaタグで書く
- フッターなど、全ページに共通する場所からリンクする
手で作ったHTMLサイトマップは、ページを追加・削除するたびに直します。WordPressなら、HTMLサイトマップを作るプラグインを使うと、ページの追加に合わせて一覧も更新されます。
数千ページを超えるサイトでのサイトマップの扱い
数千ページを超えるサイトでは、サイトマップを、どのURLを検索に出すかを決めるインデックスの制御の一部として扱います。ページをデータベースとテンプレートから作るサイトでは、ページの種類ごとにURLが増え、検索に出したくないURLも自動生成のサイトマップに混ざりやすいためです。小さなサイトと扱いが変わるのは、次の4つです。
ページの種類ごとの分け方
数千ページを超えるサイトのXMLサイトマップは、求人・店舗・記事のように、ページの種類ごとに分けます。1つのサイトマップに載せられるのは、圧縮前で50MB、URLは50,000件までです。上限を超えたら複数に分け、サイトマップインデックスファイルにまとめて送信します。
サイトマップインデックスファイルには、最大50,000個のサイトマップを載せられます。Search Consoleでは、1つのサイトにつき500個までのインデックスファイルを送信できます。インデックスファイルに載せるサイトマップは、インデックスファイルと同じディレクトリか、その下の階層に置きます。
※ 出典:Google検索セントラル「サイトマップ インデックス ファイルでのサイトマップの管理」、sitemaps.org「プロトコル」
上限に合わせて機械的に区切るより、ページの種類で分けるほうが、登録の状況を見分けやすくなります。Search Consoleのページのインデックス登録レポートは、特定のサイトマップで絞り込めるからです。

たとえば、詳細ページのサイトマップだけ未登録の割合が高いなら、原因の候補を、詳細ページのテンプレートか、一覧から詳細ページへのリンクに絞れます。
載せるURLの選び方
サイトマップに載せるのは、検索結果に出したいページの正規URLだけです。数千ページを超えるサイトでは、サイトマップを書き出すプログラムで、次の4つに当たるURLを除きます。
- noindexを付けたページのURL
- robots.txtでクロールを止めたURL
- リダイレクトするURLと、404を返すURL
- canonicalで別のURLを正規に指定しているURL
Googleは正規ページを指定する方法のページで、サイトマップとcanonicalで同じページの正規版に別々のURLを指定しないよう求めています。サイトマップを書き出すプログラムが、canonicalを出力するテンプレートと同じ規則でURLを組み立てれば、2つは食い違いません。
数万ページあるので、全部のURLをサイトマップに入れて送れば、登録されるページは増えますか?
編集部
漏れていたページは、載せれば見つけてもらいやすくなります。ただ、noindexのページまで載せると、送信したURLのエラーが増え、本当に直すべき未登録のURLを探しにくくなります。
クロールの無駄を減らすためのURLの絞り込みは、クロールバジェットの記事で扱っています。
サイトマップとcanonicalが、別々の規則でURLを作っていませんか
データベースSEOは、数千〜数万ページ規模のデータベース型サイト向けのSEOです。内部リンクとURLの設計による構造の最適化と、クロールバジェットの配分・sitemap・canonicalによるインデックスの制御を行います。
lastmodの出し方
lastmodには、ページの内容を最後に大きく変えた日時を、データベースの値から出します。Googleは、lastmodの値が一貫して正確だと確かめられる場合に使うとしています。本文や構造化データ、リンクの変更は一般に重要な更新とされ、著作権表示の日付の変更は重要な更新とされません。
とりわけ見落とされがちなのが、ページに表示しない項目の更新でlastmodが変わることです。閲覧数や社内用の項目をページと同じレコードに持っていると、レコードの更新日時は、その項目を書き換えただけで新しくなります。lastmodには、レコードの更新日時ではなく、ページに表示する項目を変えた日時を記録して使います。
サイトマップを生成した日時を全ページのlastmodに入れるのも、sitemaps.orgの決まりに反します。一覧ページのように最終更新日を決めにくいページは、lastmodを省いてもかまわないとGoogleは説明しています。
HTMLサイトマップの絞り方
数千ページを超えるサイトのHTMLサイトマップには、分類や地域のような階層の入口までを載せ、詳細ページへは一覧ページからリンクします。数万件のリンクを1枚に並べたページでは、訪れた人が目当てのページを探せないためです。

Googleは、規模の大きなサイトほど、すべてのページがほかのページからリンクされているかを確かめにくく、新しいページを見つけられないことがあるとしています。リンクをたどっても詳細ページに届かないときは、まず一覧のページ分けと、リンクを出す条件を確かめます。HTMLサイトマップにリンクを足すのではなく、一覧ページのリンクの出し方を直します。
サイトマップとSEOのよくある質問
サイトマップとSEOについて、よくある3つの質問に答えます。
サイトマップは更新のたびに送り直す?
サイトマップは、更新のたびに送り直す必要はありません。Googleは、送信に成功したサイトマップを、サイトのクロールとは別のペースで読み直します。送り直すのは、サイトマップを大きく変えたときと、サイトマップレポートのステータスが「取得できませんでした」になり、原因を直したときです。Googleが、取得に何度か失敗したサイトマップの読み取りを止めるためです。
robots.txtだけで送信は足りる?
Googleにサイトマップを伝えるだけなら、robots.txtに書くだけで足ります。ただ、Search Consoleのサイトマップレポートに表示されるのは、レポートかAPIで送信したサイトマップだけです。取得の成否やエラーを確かめるために、Search Consoleでも送信しておくことをおすすめします。
pingでの送信はまだ使える?
pingでの送信は、今は使えません。Googleは2023年6月にサイトマップのpingのサポート終了を発表し、pingのリクエストは404エラーを返すとしています。pingを送るプラグインが残っていてもGoogle検索に問題は起きませんが、送信はSearch Consoleかrobots.txtで行います。
※ 出典:Google検索セントラル ブログ「サイトマップの ping エンドポイントのサポート終了について」
まとめ|サイトマップは役割と規模で作り分ける
サイトマップのSEO上の役割は、検索に出したいURLをGoogleに見つけてもらうことで、載せたURLの登録や順位は保証されません。XMLサイトマップは検索エンジンに、HTMLサイトマップは訪れた人に向けたもので、片方でもう片方の代わりはできません。数千ページを超えるサイトでは、ページの種類ごとにサイトマップを分け、canonicalと同じ規則で載せるURLを選び、lastmodをページの実際の更新日時から出します。
私たち合同会社Writers-hubは、データベースSEOとして、数千〜数万ページ規模のデータベース型サイトの構造の最適化、テンプレートの最適化、インデックスの制御を行っています。
ページの種類ごとに、インデックスの登録状況を見分けられていますか
データベースSEOでは、内部リンクとURLの設計による構造の最適化と、title・meta description・構造化データをページの種類ごとに整えるテンプレートの最適化を行います。クロールバジェットの配分、sitemap、canonicalによるインデックスの制御も扱います。







