サイトマップとは?XML・HTMLそれぞれの必要性と自動生成の作り方



「サイトマップって、いろいろあるみたいだけど、何のために作るもの?」
そんな素朴な疑問を抱いているかもしれない。
サイトマップは、検索エンジンのために作るマップ(XML)と、ユーザーのために作るマップ(HTML)の2種類がある。
2つは、明確に分けて考える必要がある。それぞれの必要性や作り方が異なるからだ。しかし、2つが混ざって混乱している方も少なくない。
そこで本記事では「サイトマップとは何か?」を、混乱中の方にもわかりやすくお伝えする。
読み終えると、クリアな理解のもとにサイトマップを使いこなせるようになるはずだ。さっそく見ていこう。
1. サイトマップとは?基本の知識
冒頭でも触れたとおり、「サイトマップ」は大きく分けて2種類ある。
- 検索エンジン向けのXMLサイトマップ
- ユーザー向けのHTMLサイトマップ
それぞれ解説する。
1-1. クローラー向けのXMLサイトマップ
1つめの「XMLサイトマップ」は、検索エンジンのクローラー(ロボット)が読み取るために作るサイトマップだ。
XMLサイトマップには、サイト内に存在するページのリスト、各ページの更新頻度、優先度などの情報が掲載されている。
XMLとは?
XMLサイトマップの「XML」は、Extensible Markup Language(拡張可能なマークアップ言語)の略で、言語の名前だ。
XMLサイトマップは、(HTMLではなく)XMLの言語によって記述されたサイトマップという意味になる。
「拡張可能ってどういう意味?」と気になる方に補足説明すると、XMLはHTMLに続く次世代の言語として開発されたものである。
HTMLは決められたタグしか使えないが、XMLは独自にタグを指定でき、HTMLよりも拡張性が高い。その意味で「拡張可能な」と名付けられている。
余談だが、XMLが作成されたのは1998年2月のW3C(WWWコンソーシアム)だ。当時は、XMLがHTMLに取って代わるといわれたが、そうはならず、20年以上経った今も、HTMLは使われている。
XMLは構造化フォーマットの一種
検索エンジンのクローラー向けのサイトマップを、XMLの言語で書く理由は、XMLなら文書やデータの論理構造や意味を記述するタグを指定できるからだ。
XMLなら、テキストの意味を理解できないクローラーにも意味がわかるように、情報を伝えられる。
このようなデータのことを「構造化データ」と呼ぶが、XMLは構造化データを作るフォーマットの一種なのである。
※構造化データについて詳しくは「構造化データとは?実装するとできることや3つの実装方法を解説」を参照してほしい。
XMLサイトマップの例
XMLサイトマップの実物を見てみよう。
今ご覧いただいている「lucy.ne.jp」のサイトマップのひとつは、https://lucy.ne.jp/sitemap.xml にある(ファイルの拡張子は.xml だ)。
アクセスすると、以下のとおり表示される。
ソースを見てみると、以下のとおりだ。これがXMLの言語で書かれた実物のサイトマップとなる。
XMLタグの定義
前述のソースを見ると、一見、HTMLに似ている。<***> タグで始め、</***> タグで閉じる、といった文法は同じだ。
ただタグの内容が異なっていて、HTMLでは指定できない属性が指定されている。以下はサイトマップに使われるXMLタグの定義だ。
属性 |
説明 |
|
<urlset> |
必須 |
ファイルの他のタグを囲み、現在のプロトコル標準を参照します。 |
<url> |
必須 |
各 URL エントリの親タグです。 その他のタグは、このタグ内に含めます。 |
<loc> |
必須 |
ページの URL です。 ウェブ サーバーによっては、http などのプロトコルから始め、末尾にスラッシュを含める必要があります。 この値は 2,048 文字以下で指定する必要があります。 |
<lastmod> |
オプション |
ファイルの最終更新日です。 この日付は W3C Datetime 形式で記述します。 必要な場合は、時刻の部分を省略して YYYY-MM-DD の形式で記述することもできます。 このタグは、サーバーが返す If-Modified-Since (304) ヘッダーとは別のものです。検索エンジンは、両方のソースからの情報を別々に使用することがあります。 |
<changefreq> |
オプション |
ページの更新頻度です。 検索エンジンではこの値を参考情報として使用しますが、指定した値とは異なる頻度でクロールされることがあります。 有効な値は次のとおりです。
“always” 値は、アクセスするたびに内容が更新されるドキュメントに使用します。 “never” 値は、アーカイブ ページの URL に使用します。 このタグの値は、コマンドではなくヒントとして使用されることに注意してください。検索エンジンのクローラは、この情報を使用してクロール頻度を調整しますが、実際のクロールは “hourly” と指定されたページでは 1 時間に 1 回以下、”yearly” と指定されたページでは 1 年に 1 回以上行われます。また、”never” と指定されたページも予期せず変更された場合に備えて定期的にクロールされます。 |
<priority> |
オプション |
サイト内の他の URL と比較したこの URL の優先度です。0.0 から 1.0 までの値を指定できます。この値は他のサイトのページとの比較方法に影響するものではなく、検索エンジンのクローラに重要なページを知らせるためのものです。 ページのデフォルトの優先度は 0.5 です。 ページに割り当てた優先度が、検索エンジンの検索結果に表示されるページの掲載順位に影響することはほとんどありません。検索エンジンでは、この情報を使用してサイトから URL を選択するため、最も重要なページを検索インデックスに優先的に登録することができます。 また、サイト内のすべての URL に高い優先度を設定しないでください。優先度は相対的なものであるため、サイト内で URL を選択する場合にのみ使用します。 |
出典:sitemaps.org
「最終更新日・更新頻度・優先度」を伝達可能
上表のポイントは、XMLを使うことで以下3つの情報をクローラーに伝えられる点だ。
● <lastmod>:ファイルの最終更新日
● <changefreq>:ページの更新頻度
● <priority>:URL の優先度
だから「XMLサイトマップはSEOに重要」といわれるのである。
SEOとの関連性については後ほど「2. XMLサイトマップはSEOに必要」にて詳説するので、続けて読み進めてほしい。
1-2. ユーザー向けのHTMLサイトマップ
続いて、2つめの「ユーザー向けのHTMLサイトマップ」の話に移ろう。
HTMLサイトマップは、Webサイト内にユーザー向けに作成して公開するページである。
たとえば以下は警視庁のWebサイトだが、全ページのヘッダー部分にサイトマップへのリンクが設置されている。
出典:警視庁
ユーザー向けサイトマップの例
実際のサイトマップは、以下のとおりだ。
出典:警視庁
ソースを確認すると、通常のHTMLで書かれていることがわかる。
メインページから下層ページまでを含む
HTMLサイトマップの基本的な作り方は、メインページから下層ページまで全ページをリストにし、1クリックでアクセス可能にすることだ。
ただ、数千ページ以上を抱える大きなサイトでは全ページを含むことは難しいので、重要なページを整理したうえで掲載する。
なお、後述するが現代においてHTMLサイトマップの必要性は薄れており、設置しないサイトも増えている。「3. ユーザー向けのHTMLサイトマップは必要ない」にて解説する。
2. XMLサイトマップはSEOに必要
ここからはXMLサイトマップ、HTMLサイトマップそれぞれの必要性について、深掘りしていこう。
まずはXMLサイトマップ(クローラー向け)だが、こちらはSEO対策として必要である。
2-1. XMLサイトマップによって得られる2つのSEO効果
XMLサイトマップは、次の2つのSEO効果をもたらす。
1:効率的な検索エンジンのクロール
1つめのSEO効果は、検索エンジンの効率的なクロールを促すことだ。
先ほど紹介したXMLタグの説明を再掲しよう。
クローラーに<lastmod>(最終更新日)と<changefreq>(更新頻度)を伝えることによって、更新直後のベストタイミングでクローラーが来てくれる可能性が高まる。
属性 |
説明 |
<lastmod> |
ファイルの最終更新日です。 この日付は W3C Datetime 形式で記述します。 必要な場合は、時刻の部分を省略して YYYY-MM-DD の形式で記述することもできます。 このタグは、サーバーが返す If-Modified-Since (304) ヘッダーとは別のものです。検索エンジンは、両方のソースからの情報を別々に使用することがあります。 |
<changefreq> |
ページの更新頻度です。 検索エンジンではこの値を参考情報として使用しますが、指定した値とは異なる頻度でクロールされることがあります。 有効な値は次のとおりです。
“always” 値は、アクセスするたびに内容が更新されるドキュメントに使用します。 “never” 値は、アーカイブ ページの URL に使用します。 このタグの値は、コマンドではなくヒントとして使用されることに注意してください。検索エンジンのクローラは、この情報を使用してクロール頻度を調整しますが、実際のクロールは “hourly” と指定されたページでは 1 時間に 1 回以下、”yearly” と指定されたページでは 1 年に 1 回以上行われます。また、”never” と指定されたページも予期せず変更された場合に備えて定期的にクロールされます。 |
出典:sitemaps.org
<changefreq>(更新頻度)は、言い換えると「希望するクロール頻度」である。hourly(1時間ごとに)、daily(毎日)、yearly(1年に1回)など指定できる。
更新直後にクローラーが来てくれれば、インデックスされるのが早くなり、検索結果ページに表示されるのが早くなる。
※「インデックスって何?」という方は「インデックスとは?SEOに初めて取り組む人向けの重要知識まとめ」もぜひ目を通してほしい。
2:重要ページの伝達
XMLサイトマップの2つめのSEO効果は、重要ページの伝達だ。<priority>のタグによって、優先度を数字で指定できる。
属性 |
説明 |
<priority> |
サイト内の他の URL と比較したこの URL の優先度です。0.0 から 1.0 までの値を指定できます。この値は他のサイトのページとの比較方法に影響するものではなく、検索エンジンのクローラに重要なページを知らせるためのものです。 ページのデフォルトの優先度は 0.5 です。 ページに割り当てた優先度が、検索エンジンの検索結果に表示されるページの掲載順位に影響することはほとんどありません。検索エンジンでは、この情報を使用してサイトから URL を選択するため、最も重要なページを検索インデックスに優先的に登録することができます。 また、サイト内のすべての URL に高い優先度を設定しないでください。優先度は相対的なものであるため、サイト内で URL を選択する場合にのみ使用します。 |
出典:sitemaps.org
ここでいう優先度とは、自サイト内の他のURLと比較した場合の優先度だ。0.0〜1.0(0%〜100%)で指定でき、デフォルトは0.5(50%)となる。
実際の記述例を見てみよう。
重要な注意点1:リソースは限られている
ここで、話は少し横にそれるのだが、重要な注意点なので先にお伝えしたい。
更新頻度や優先度を指定できると聞いて、すべてのページに、
「更新頻度:always(常に)」「優先度:1.0(100%)」
の設定をする人がいる。
「自サイトの更新頻度と優先度を上げたい」というわけだが、前提として「リソース(資源)は限られている」ことをしっかり認識しよう。
クローラーが見て回るべきページの数は大量にあり、すべてのページにalwaysでクロールすることはできない。
検索結果ページにも限りがある。自サイトのページだけで検索上位を独占することはできない。
だから、優先順位を示す必要があるのだ。
限られたリソースを、サイトにとって重要なページに使ってもらうために(どうでもいいページに使われないために)、意思表示するのがXMLサイトマップの記述だ。
すべてのページに「更新頻度:always(常に)」「優先度:1.0(100%)」の設定をするのは、仕事の優先順位を決めずに「全部やれ」という上司と同じである。よい結果を得られない。
クローラーが何からやるべきか迷わないように、XMLサイトマップに明確な指示を書くことで、よいSEO効果を得られる。
重要な注意点2:Googleにとって重要なのは「最終更新日」
ここまでお伝えしてきたことは、基礎知識としてインプットしてほしい。
しかし一方で、最新情報としては、Googleにおける更新頻度タグや優先度タグの重要性は低下し、その情報を活用していないことも覚えておこう。
Googleは、自己申告に頼らない客観的な観測によってページを評価する仕組みへ、進化し続けているためだ(XMLサイトマップに書かれる更新頻度や優先度は、サイト運営者の自己申告である)。
参考までに、Googleのスポークスパーソンであるジョン・ミューラーは、2015年5月のEnglish Google Webmaster Central office-hours hangout で、
「更新頻度や優先度は、もう重要な役割を担っていない」
と発言している。
Googleがチェックしているのはタイムスタンプ(ページの最終更新日)で、前回クロールした日時と照らして再クロールする、と述べている。
ここまでの解説と矛盾するようで申し訳ないのだが、Google対策という観点でみれば、<changefreq>(更新頻度)と<priority>(優先度)の書き方には、強くこだわる必要はない。
2-2. XMLサイトマップの必要度が高い4つのサイト
Googleは、XMLサイトマップの必要度が高いサイトとして、以下を挙げている。
1:大きいサイト(500ページ以上)
大きいサイト(ページ数が多いサイト)は、クローラーが新しいページや更新されたページを見落とす率が高くなる。
2:内部リンクされていないページがあるサイト
どこからも内部リンクされておらず、孤立したページが大量にある場合、XMLサイトマップがないとクローラーが見つけられない可能性が高くなる。
※補足:XMLサイトマップの設置以前に、そもそも内部リンクされていないページが大量にあるサイトは好ましくない。対策は「内部リンクとは?SEOでの重要性と効果が出る張り方のコツ」を参照してほしい。
3:外部リンクが少ないサイト(新しいサイト)
クローラーは、すでにクローラーが訪れたことのある既知のページからのリンクをたどって巡回している。
新しいサイトなど外部からリンクを受けていないサイトは、XMLサイトマップを作成し、XMLサイトマップをSearch ConsoleからGoogleへ送信することで、Googleに存在を知らせることができる。
※XMLサイトマップの送信については後ほど「4-2. Search ConsoleからXMLサイトマップを送信する方法」にて紹介する。
4:画像・動画・ニュースの検索結果ページに表示させたいサイト
画像検索・動画検索・ニュース検索など、通常検索以外の検索結果ページに表示させたい場合、XMLサイトマップが役立つ。
XMLサイトマップで追加情報を付与すれば、Googleが考慮できるからだ。
Googleは、画像・動画・ニュース検索に合わせたサイトマップのガイドラインを公開している。ガイドラインに従ってサイトマップを作ることで、各検索結果に表示される確率が高まる。
▼ Googleのガイドライン
2-3. 必要度が低い3つのケース
逆に、XMLサイトマップがなくても、クローラーが十分にはたらけるサイトもある。
先ほど「クロールのリソースは限られている」という話をした。XMLサイトマップによって効率化を図らなくても、リソースの範囲内で対応できているサイトは、XMLサイトマップの必要度が低い。
具体的には3つのケースが挙げられる。
1:検索結果に表示させたいページが少ない(500ページ以下)
検索結果に表示させたいページ数が少ないサイトは、XMLサイトマップなしでも、クローラーが巡回できる可能性が高い。
具体的な数字として、Googleは「およそ500ページ以下の場合にサイズが小さいと考える」としている。
この500ページには、検索結果に表示する必要があるページのみ、カウントする。
2:すべてのページが内部リンクでつながっている
孤立しているページがなく、優れた内部リンクで全ページが包括的にリンクされている場合も、XMLサイトマップの必要性が低くなる。
その理由は、XMLサイトマップによって得られる効果を、すでに内部リンクによって実現できているからである。
3:検索結果に表示させたいメディアファイルやニュースページが多くない
優れた内部リンクでも対応できないものに、「画像・動画・ニュース記事」に特化したサイトマップ機能がある。
画像・動画・ニュースの検索結果への表示を目指さないのであれば、その目的でのXMLサイトマップは不要と判断できる。
2-4. デメリットはないので迷ったら作成を推奨
「自サイトにXMLサイトマップが必要なのか、必要ないのか、よくわからない」
という場合は、作成することを推奨する。
XMLサイトマップを作成することによる、SEO的なデメリットは何もないからだ。
必要度の低いサイトでは、XMLサイトマップを作っても何も変化が起きない可能性がある、というだけである。
何も変化が起きないのは、XMLサイトマップなしで、すでにクローラーが十分なパフォーマンスを発揮できているサイトだからだ。
参考:Google Developers「サイトマップの概要」
3. ユーザー向けのHTMLサイトマップは必要ない
ここから話は変わって、
「ユーザー向けのHTMLサイトマップを作るべきなのか?」
について取り上げる。
結論からいうと、ユーザー向けのサイトマップは必要ない。労力をかけて作ったとしても、ユーザーに必要とされておらず、コスパが悪いからだ。
3-1. HTMLサイトマップが必要だったのは昔のサイト
HTMLサイトマップが必要だったのは、静的ページを何ページも個別に作成するしかなかった昔のサイトだ。以下のようなナビゲーションが定番だった。
現在は、WordpressなどのCMS(コンテンツをシステム的に管理するツール)を使ったサイト構築が一般的である。
CMSでは、システム的にページを分類でき、カテゴリ・タグ・日別・投稿者などの区分で、ナビゲーションが自動生成される。ユーザーもその形式に慣れ親しんでおり、サイトマップが使われる頻度は激減している。
あなた自身のことを振り返ってみてほしい。最近、どこかのサイトにアクセスして、サイトマップを使った記憶はあるだろうか。
3-2. HTMLサイトマップが必要ならナビゲーションとサイト内検索に問題がある
もしHTMLサイトマップが必要なら、
「そのサイトのナビゲーションとサイト内検索に問題があるからだ」
という発想を持ちたい。
Googleのジョン・ミューラーは、「今もまだHTMLサイトマップを作る価値があるのか?」というディスカッションで、以下のとおり述べている。
Do they make sense for users? I guess it’s a good signal that your normal navigation & in-site search are bad if people end up going to your HTML sitemap pages :).
(訳)
ユーザーにとって意味があるのか?
もしユーザーがHTMLサイトマップに行くことになるなら、それは、ナビゲーションとサイト内検索が悪いことを示す、わかりやすいシグナルだろう。
出典:Still Worth Making HTML Sitemaps? : bigseo
自サイトにHTMLサイトマップを設置する労力があれば、その労力を、ナビゲーションとサイト内検索の充実に充てたい。
以下に参考リンクを提示しておこう。
- ユーザーに親切なナビゲーションメニューの作り方
- グローバルナビゲーションとは?SEOやビジネス成果に効果的な作り方
- パンくずリストとは?SEO上の重要性と実装・構造化のエラーを解説
- サイト内検索の5つのやり方と得られる効果|導入方法・活用例も解説
4. XMLサイトマップの作り方
「XMLサイトマップは必要、HTMLサイトマップは不要」
という方針が確認できたところで、次はXMLサイトマップの作り方を見ていく。
XMLサイトマップは手動でも作れないことはないが、自動生成ツールを使うのが現実的だ。手動で作成し更新し続けるのは、手間がかかりすぎる。
自動生成の方法として、Wordpressプラグインとその他ツールの2種類を紹介しよう。
4-1. WordPressプラグイン
WordPressで構築しているサイトであれば、プラグインを導入してXMLサイトマップを生成する。
新しい記事を追加したりページを更新したりすると、XMLサイトマップも自動更新され、便利だ。
プラグインによっては、XMLサイトマップが更新されるたびに、検索エンジンへ更新通知を送信する機能を持っている。
All in One SEO / Yoast SEO
XMLサイトマップの自動生成および更新通知の送信機能を持つWordPressプラグインの有名どころとして、『All in One SEO』『Yoast SEO』ある。
『All in One SEO』も『Yoast SEO』も総合的なSEOツールで、その機能のひとつとしてXMLサイトマップの生成機能を備えている。
すでにどちらかのプラグインが導入されていれば、それを使おう。むやみにプラグインを増やすのは好ましくないからだ。
『All in One SEO』については、導入方法やXMLサイトマップの設定方法を「All in One SEOの設定方法と使い方」にて解説しているので、参考にしてほしい。
XML Sitemaps
総合的なSEOツールを導入しておらずシンプルにXMLサイトマップの機能だけ求めるなら、『XML Sitemaps(旧名: Google XML Sitemaps)』がおすすめだ。
『XML Sitemaps(旧名: Google XML Sitemaps)』の設定方法は「Google XML Sitemapsの設定方法」で解説しているので、参考にしてほしい。
4-2. その他ツール(オンラインジェネレーター)
WordPressやその他CMSを利用していない場合には、「オンラインジェネレーター」の選択肢がある。
▼ 日本語のツール
▼ 英語のツール
- XML Sitemaps Generator
- Free Sitemap Generator • XML • HTML • RSS • Google
- XML Sitemap Generator (for hreflang tags)
- Screaming Frog SEO Spider Website Crawler
以下は『XML Sitemaps Generator』の例だ。500ページまでのXMLサイトマップを無料で生成できる。
※本来はすべて英語だが、上記はGoogle Translateで日本語に変換した画像を掲載している。
試しにデジタル庁のXMLサイトマップを生成してみると、10分ほどでXMLサイトマップが生成された。
▼ 生成中の画面
▼ 生成されたXMLサイトマップ
4-2. Search ConsoleからXMLサイトマップを送信する方法
更新通知を自動送信する機能のないツールで生成したXMLサイトマップは、手動でGoogleへ送信する必要がある。
やり方は、生成したXMLサイトマップをサーバー上にアップロードし、そのURLをSearch Consoleの「新しいサイトマップの追加」に入力し、送信する。
5. まとめ
本記事では「サイトマップ」をテーマに解説した。要点をまとめておこう。
サイトマップには、大きく2つの種類がある。
● 検索エンジン向けのXMLサイトマップ
● ユーザー向けのHTMLサイトマップ
XMLサイトマップはSEOにとって重要だ。以下の効果が期待できる。
● 効率的な検索エンジンのクロール
● 重要ページの伝達
注意点として以下を覚えておいてほしい。
● 検索エンジンのリソースは限られている
● Googleにとって重要なのは「最終更新日」
XMLサイトマップの必要度が高い4つのサイトは以下のとおりだ。
● 大きいサイト(500ページ以上)
● 内部リンクされていないページがあるサイト
● 外部リンクが少ないサイト(新しいサイト)
● 画像・動画・ニュースの検索結果ページに表示させたいサイト
逆に必要度が低いケースとして以下が挙げられる。
● 検索結果に表示させたいページが少ない(500ページ以下)
● すべてのページが内部リンクでつながっている
● 検索結果に表示させたいメディアファイルやニュースページが多くない
ユーザー向けのHTMLサイトマップは、以下の理由から、作る必要は基本的にない。
● HTMLサイトマップが必要だったのは昔のサイト
● HTMLサイトマップが必要ならナビゲーションとサイト内検索に問題がある
XMLサイトマップの作り方として以下を紹介した。
● WordPressプラグイン(All in One SEO / Yoast SEO / XML Sitemaps)
● その他ツール(オンラインジェネレーター)
XMLサイトマップをうまく活用して効率的なクロールを推進し、更新記事が検索上位へ素早く登場できるサイトづくりを進めていこう。
SEOをより深く理解したい方へ。バズ部のノウハウを全て詰め込みました。
SEO SEO
無料eBook:バズ部式マーケティング
広告費を1/10にして売上を倍増させる全手法

広告に頼り切ったマーケティングの打開策としてコンテンツマーケティングについて調べているけれど、よく分からないと悩んでいませんか?
本書は弊社やクライアント様がコンテンツマーケティングに取り組み
- ・SEOのみで月間100万PV集めた方法
- ・平均6.92%のコンバージョン率が出た新規顧客獲得法
- ・CPLやCPAを大幅に改善した方法とそのからくり
など、コンテンツマーケティングの効果と、具体的な施策内容を全94ページに渡って詳細に解説しているものです。
ぜひ、貴社のWEBマーケティングにもご活用ください。