一般にサイトマップというと、サイトを閲覧するユーザーにサイトの構造(ページ)を伝えるために提供されるWebページを思い浮かべるかもしれません。このサイトマップは、ユーザーが目的のページへ素早く見つけられるようにするために用意されるものです(ユーザービリティの向上)。
一方、XMLサイトマップは、検索エンジンのクローラーへサイトのページ(URL)やその最終更新日などの情報を伝えるためのファイルです。クローラーはその情報を使い、効率的にサイトのページをクロールすることができます(クローラビリティの向上)。
この記事では2番目のXMLサイトマップについて解説します。最初に必要性を考察し、その次に、その作成方法はGoogleにサイトマップの通知方法などを詳しく解説していきます。
なお、XMLサイトマップには、サイトのすべてのURLを記述する必要はありません。クロールしてもらいたい(検索結果に表示してほしい)重要なページを記載し、反対にクロールされなくても良いページを除外することにより、より一層のクローラビリティの向上が見込めます。例えば、重複ページがある場合は「正規URL」のみを記述し、そのほかのURLは除外します。
SEOの観点では、クローラーにサイトマップで重要なページのURLを伝えることで、いち早くクロールしてもらい検索結果への表示の促進が期待されます。
XMLサイトマップは必要か?
はじめに、XMLサイトマップは必ず用意しなければならないものか?という疑問から解消していきましょう。結論から言うと、用意したほうがいいが、必ずしも必要なものではありません。
SEO対策としては、優先度は低いものになります。用意する場合も、労力に見合うだけの効果が見込めるか、見極めてから対応すれば良いでしょう。
WordPressであればデフォルトでXMLサイトマップが用意されています。次のURLにアクセスするとデフォルトのXMLサイトマップを確認することができます。
http(s)://example.com/wp-sitemap.xml
WordPressでは、もっと出来の良いものがプラグインで簡単に設置できます。このように労力をほとんどかけずに設置できる場合は用意するのも良いでしょう。
ただし、用意したほうが良いケースもいくつかあります。
- どこからもリンクされていないページがある
- インデックスされていないページが大量にある
- サイトのページが非常に多い
クローラーはリンクを辿って新しいページを発見しますので、ページがどこからもリンクされていないと、いつまで経っても発見されることはありません。そのようなページは、Google Search Consoleでインデックスへの登録をリクエストしてもよいですが、数が多い場合はXMLサイトマップを用意するといいでしょう。
インデックスに登録されていないページが大量にある場合も、XMLサイトマップを用意することで、インデックスへの登録の促進が期待できます。新しく開設したサイトや移転したばかりのサイトなどでは、このような状況が発生するでしょう。
最後はサイトのページが非常に多い場合です。サイトのページが多い場合は、新規のページや更新されたページを効率よくクロールしてもらうためにサイトマップを用意すると良いでしょう。
サイトマップの必要性については、Googleのドキュメントにも記載がありますので、以下に引用します。
次の場合にサイトマップが必要になることがあります。
- サイトのサイズが非常に大きい。その場合、新しいページや更新されたばかりのページの一部が Google のウェブクローラによるクロール対象から漏れることがあります。
- サイトにどこからもリンクされていない、または適切にリンクされていないコンテンツ ページのアーカイブが大量にある。サイトのページがうまく相互に参照されていない場合でも、サイトマップに含めることで Google が一部のページを見落とさないようにできます。
- サイトが新しく、外部からのリンクが少ない。Googlebot などのウェブクローラは、ページからページヘリンクをたどることによってウェブをクロールします。そのため、他のサイトからのリンクがないページは Google のクローラに検出されないことがあります。
- サイトに動画や画像などのリッチメディア コンテンツが多数含まれている、またはサイトが Google ニュースに表示されている。サイトマップがあれば、状況に応じて Google 検索でサイトマップからの追加情報が考慮されます。
次の場合は、サイトマップは必要ありません。
引用元:サイトマップについて | Google 検索セントラル
- サイトのサイズが「小さい」。サイトのページ数がおよそ 500 ページ以下の場合にサイズが小さいと考えます。検索結果に表示する必要のあるページのみをこの合計ページ数に加算します。
- サイトはサイト内で完全にリンクされている。つまり、Google がホームページからリンクをたどって、サイト内の重要なページをすべて見つけられるということです。
- 検索結果に表示させたいメディア ファイル(動画、画像)やニュースページが多くない。サイトマップは、サイト内の動画ファイル、画像ファイル、またはニュース記事を Google が探して理解するうえで役立ちます。画像、動画、ニュースの検索結果に表示する必要がない場合、サイトマップは必要ありません。
このようにGoogleもURLに漏れが生じるような場合にXMLサイトマップを用意することを推奨しています。
XMLサイトマップの作成方法
XMLサイトマップは、単なるテキストファイルです。したがって、エディタで作成することもできますが、これは間違いやすいので、一般的には何らかのツールを利用します。
また、作成したサイトマップのメンテナンスについても考慮する必要があります。ページの追加やURLの変更などがあればサイトマップの更新も必要になるでしょう。静的なサイトであれば問題にならないかもしれませんが、頻繁に更新されるようなサイトであれば自動化などの仕組みが必要になるでしょう。
ツールを利用するとしても、エディタで記述できるレベルの理解はしておく必要があります。例えばツールのオプションを選択するときや、作成されたファイルの内容をチェックする時などにこの知識が必要になります。幸い、サイトマップの内容は非常に簡単です。
ここでは最初に自分でも作成できるように、書き方を詳しく解説していきます。その後にツールを紹介します。
XMLサイトマップを作成する
XMLサイトマップは、その名の通りXMLに準拠して記述されたテキストファイルです。そのため、XMLサイトマップは次の記述から始めます。
<?xml version="1.0" encoding="UTF-8"?>
これはXML宣言と呼ばれるものです。サイトマップの文字コードはUTF-8である必要があります。したがってencoding属性もUTF-8を指定します。XML宣言の記述は、この例の通り記述すれば問題ありません。
サイトマップのファイル名には特に決まりはありませんが「sitemap.xml」という名前がよく使われます。
XML宣言の後に、XMLサイトマップに固有のタグを記述していきます。タグはsitemaps.orgで定義されています。
最初にXMLサイトマップの記述例を見てみましょう。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/foo/</loc>
<lastmod>2023-04-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/bar/</loc>
<lastmod>2023-05-05T09:14:34+09:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
</urlset>
1行目は前述したXML宣言です。その後の<urlset>からがXMLサイトマップのために定義されたタグです。サイトマップには次の3つの必須のタグがあります。
- <urlset>
-
XMLサイトマップの一番外側のタグです。つまりXMLサイトマップは<urlset>で始まり、</urlset>で終わります。すべてのタグはこの内側に記述します。xmlns属性は名前空間の宣言ですが、この例の通りに記述すれば問題ありません。
- <url>
-
個々のURLを示すタグです。クローラーに通知したいURLの数だけ記述します。このタグの内側にURLの情報を記述します。残りのタグはすべてこの中に記述します。
- <loc>
-
ページのURLを示すタグです。URLのプロトコル(httpやhttps)から記述する必要があります。
上記以外のタグはオプションです。それには次のようなものがあります。
- <lastmod>
-
ページの最終更新日時を示します。W3C Datetime形式(例:2023-05-17T12:34:12+09:00)で記述します。時刻部分は省略して2023-05-17のように記述することもできます。
- <changefreq>
-
クローラーにページが更新されるであろう頻度を伝えます。「daily」や「weekly」などの値を指定できます。クローラーはこの情報を考慮するかもしれませんが、従うわけではありません。
- <priority>
-
他のURLとの優先度の関係を示します。0.0から1.0までの値を指定できます。サイトの中で優先度の高いページは低いページよりも優先的にクロールされる可能性があります。
XMLサイトマップを分割する
XMLサイトマップは、複数のXMLサイトマップにファイルを分割することができます。また、1つのサイトマップファイルが、その制限を超える場合には、必ず分割しなければなりません。
1つのXMLサイトマップに記述できるURLの数は、最大50000件です。また、ファイルサイズは最大50MBです。ファイルはgzip形式で圧縮することもできますが、圧縮後のファイルサイズも50MBを超えることはできません。
複数のサイトマップを使用する場合は、サイトマップインデックスと呼ばれるファイルを別に用意します。サイトマップインデックスには、分割した個々のサイトマップファイルをリストします。
サイトマップインデックスもXML形式のファイルです。ファイル名は任意ですが、文字コードはUTF-8にする必要があります。このファイルの例を以下に示します。
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-post.xml</loc>
<lastmod>2023-05-21T17:09:12+09:00</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-static.xml.gz</loc>
<lastmod>2023-02-05</lastmod>
</sitemap>
</sitemapindex>
1行目は先ほどと同じXML宣言です。サイトマップインデックスにも3つの必須タグがあります。
- <sitemapindex>
-
すべてのタグを囲む一番外側のタグです。すべてのタグはこの内側に記述します。xmlns属性は名前空間の宣言です。この例の通りに記述すれば問題ありません。
- <sitemap>
-
個々のXMLサイトマップを示すタグです。このタグの内側にサイトマップの情報を記述します。
- <loc>
-
サイトマップの場所をプロトコル(httpsやhttp)から始まる完全なURLで指定します。
オプションのタグは1つだけです。
- <lastmod>
-
対応するサイトマップファイルの最終更新日時をW3C Datetime形式で指定します。<lastmod>タグを提供することでクローラは更新されたサイトマップだけ確認することができます。
XMLサイトマップ、サイトマップインデックスの配置場所
作成したXMLサイトマップやサイトマップインデックスは、自身のサイトに配置します。通常はサイトのルートディレクトリに配置します。名前が sitemap.xml の場合、次のようなURLでアクセスできる場所です。
https://example.com/sitemap.xml
ツールでXMLサイトマップを作成する
XMLサイトマップを作成するツールはいくつもありますが、ここでは無料で利用でき、Web上でサイトのURLを入力するだけで簡単に作成することができるツールを紹介します。
- sitemap.xml Editor
いくつかの項目を選択するだけで簡単にXMLサイトマップを作成できます。 - SML-Sitemaps.com
このツールもオプションを選択して簡単にXMLサイトマップを作成できます。
これらのツールはXMLサイトマップのファイルを作成してくれるだけです。ファイルはダウンロードして自身のサイトにアップロードする必要があります。
WordPressのプラグインを利用する
WordPressにはXMLサイトマップを自動で作成・更新するプラグインがいくつも提供されています。ここではWordPressで利用できる無料のプラグインを紹介します。
- XML Sitemaps(旧Google XML Sitemaps)
利用ユーザーも多いXMLサイトマップ作成プラグインです。 - XML Sitemap & Google News
シンプルで使いやすいプラグインです。
これらのプラグインは、有効化した際に自動でサイトマップを作成してサイトに配置してくれます。ページの追加や更新の際にも自動でサイトマップを更新してくれるので管理も楽です。
SEO対策プラグインなど機能の一部としてXMLサイトマップ作成機能が付属しているものもあります。XMLサイトマップ機能が競合する場合はどちらかのプラグインを削除するか機能をオフにします。
サイトマップをテストする
サイトマップを作成して自身のサイトに設置したら、問題がないかいくつかテストして確認しましょう。
文法をチェックする
手作業でファイルを作成した場合や手作業でファイルを修正した場合は、必ず文法チェックをしましょう。ネットで検索すればXMLサイトマップの文法チェックツール(いわゆるバリデーター)がいくつも見つかるでしょう。
このようなツールでチェックすると、かんたんに間違いを見つけることができます。
ブラウザでチェックする
サイトマップをサイトに配置したら、想定したURLでサイトマップにアクセスできるかも確認しましょう。ブラウザでURLにアクセスし、表示されるか確認します。
Googleにサイトマップを通知する
サイトマップを用意しても、検索エンジンが気づいていなければ意味がありません。ここでは、Googleにサイトマップを伝える方法を説明します。
robots.txtで通知する
robots.txt は、クローラーのページへのアクセスを制御するために設置されるファイルですが、サイトマップの場所をクローラーに伝える機能もあります。クローラーはクロールする前に、このrobots.txtを参照します。
robots.txt の任意の場所に、次のようなサイトマップのパスを指定します。すると次にクロールするときに、クローラーはその変更を検出します。
Sitemap: https://example.com/sitemap.xml
Google Search Consoleからサイトマップを送信する
Google Search Consoleから手作業でサイトマップをGoogleに送信することもできます。その手順は次の通りです。
ブラウザで、Google Search Consoleにログインします。
左側メニューから「サイトマップ」をクリックします。それから「新しいサイトマップの追加」にサイトマップのURLを入力し、「送信」ボタンをクリックします。
サイトマップが送信されると、ステータスが表示されます。
pingツールを使用する
ブラウザを使ってサイトマップを送信することができます。それにはブラウザのアドレスバーに、次のようにサイトマップのURLを入力して送信します。
https://www.google.com/ping?sitemap=https://example.com/sitemap.xml
ブラウザで上記のURLにアクセスすると次のようにサイトマップを受信した旨のレスポンスが返されます。
まとめ
サイトマップはサイトのページのインデックス漏れを防ぎ、クローラービリディを向上させることにより、検索結果への表示を促進するためのものです。
SEOとしては、これよりも重要な施策がたくさんありますので、余裕があるときに対策すると良いでしょう。