テーマを変更中でお見苦しい点があると思います。ご迷惑をおかけいたします。

XMLサイトマップの必要性とその作成方法

一般にサイトマップというと、サイトを閲覧するユーザーにサイトの構造(ページ)を伝えるために提供される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では、もっと出来の良いものがプラグインで簡単に設置できます。このように労力をほとんどかけずに設置できる場合は用意するのも良いでしょう。

ただし、用意したほうが良いケースもいくつかあります。

XMLサイトマップを用意したほうが良いケース
  • どこからもリンクされていないページがある
  • インデックスされていないページが大量にある
  • サイトのページが非常に多い

クローラーはリンクを辿って新しいページを発見しますので、ページがどこからもリンクされていないと、いつまで経っても発見されることはありません。そのようなページは、Google Search Consoleでインデックスへの登録をリクエストしてもよいですが、数が多い場合はXMLサイトマップを用意するといいでしょう。

インデックスに登録されていないページが大量にある場合も、XMLサイトマップを用意することで、インデックスへの登録の促進が期待できます。新しく開設したサイトや移転したばかりのサイトなどでは、このような状況が発生するでしょう。

最後はサイトのページが非常に多い場合です。サイトのページが多い場合は、新規のページや更新されたページを効率よくクロールしてもらうためにサイトマップを用意すると良いでしょう。

サイトマップの必要性については、Googleのドキュメントにも記載がありますので、以下に引用します。

次の場合にサイトマップが必要になることがあります。

  • サイトのサイズが非常に大きい。その場合、新しいページや更新されたばかりのページの一部が Google のウェブクローラによるクロール対象から漏れることがあります。
  • サイトにどこからもリンクされていない、または適切にリンクされていないコンテンツ ページのアーカイブが大量にある。サイトのページがうまく相互に参照されていない場合でも、サイトマップに含めることで Google が一部のページを見落とさないようにできます。
  • サイトが新しく、外部からのリンクが少ない。Googlebot などのウェブクローラは、ページからページヘリンクをたどることによってウェブをクロールします。そのため、他のサイトからのリンクがないページは Google のクローラに検出されないことがあります。
  • サイトに動画や画像などのリッチメディア コンテンツが多数含まれている、またはサイトが Google ニュースに表示されている。サイトマップがあれば、状況に応じて Google 検索でサイトマップからの追加情報が考慮されます。

次の場合は、サイトマップは必要ありません。

  • サイトのサイズが「小さい」。サイトのページ数がおよそ 500 ページ以下の場合にサイズが小さいと考えます。検索結果に表示する必要のあるページのみをこの合計ページ数に加算します。
  • サイトはサイト内で完全にリンクされている。つまり、Google がホームページからリンクをたどって、サイト内の重要なページをすべて見つけられるということです。
  • 検索結果に表示させたいメディア ファイル(動画、画像)やニュースページが多くない。サイトマップは、サイト内の動画ファイル、画像ファイル、またはニュース記事を 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までの値を指定できます。サイトの中で優先度の高いページは低いページよりも優先的にクロールされる可能性があります。

Googleのクローラーは<changefreq>と<priority>の値を無視します。

XMLサイトマップを分割する

XMLサイトマップは、複数のXMLサイトマップにファイルを分割することができます。また、1つのサイトマップファイルが、その制限を超える場合には、必ず分割しなければなりません。

XMLサイトマップの制限

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を入力するだけで簡単に作成することができるツールを紹介します。

XMLサイトマップ作成ツール
  • sitemap.xml Editor
    いくつかの項目を選択するだけで簡単にXMLサイトマップを作成できます。
  • SML-Sitemaps.com
    このツールもオプションを選択して簡単にXMLサイトマップを作成できます。

これらのツールはXMLサイトマップのファイルを作成してくれるだけです。ファイルはダウンロードして自身のサイトにアップロードする必要があります。

WordPressのプラグインを利用する

WordPressにはXMLサイトマップを自動で作成・更新するプラグインがいくつも提供されています。ここではWordPressで利用できる無料のプラグインを紹介します。

WordPress XMLサイトマップ作成プラグイン
  • XML Sitemaps(旧Google XML Sitemaps)
    利用ユーザーも多いXMLサイトマップ作成プラグインです。
  • XML Sitemap & Google News
    シンプルで使いやすいプラグインです。

これらのプラグインは、有効化した際に自動でサイトマップを作成してサイトに配置してくれます。ページの追加や更新の際にも自動でサイトマップを更新してくれるので管理も楽です。

SEO対策プラグインなど機能の一部としてXMLサイトマップ作成機能が付属しているものもあります。XMLサイトマップ機能が競合する場合はどちらかのプラグインを削除するか機能をオフにします。

WordPressではバージョン 5.5から、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に送信することもできます。その手順は次の通りです。

STEP
Google Search Consoleへログイン

ブラウザで、Google Search Consoleにログインします。

STEP
サイトマップを送信する

左側メニューから「サイトマップ」をクリックします。それから「新しいサイトマップの追加」にサイトマップのURLを入力し、「送信」ボタンをクリックします。

XMLサイトマップをGoogleへ送信する
STEP
サイトマップのステータス

サイトマップが送信されると、ステータスが表示されます。

送信したサイトマップのステータスの表示

pingツールを使用する

ブラウザを使ってサイトマップを送信することができます。それにはブラウザのアドレスバーに、次のようにサイトマップのURLを入力して送信します。

https://www.google.com/ping?sitemap=https://example.com/sitemap.xml

ブラウザで上記のURLにアクセスすると次のようにサイトマップを受信した旨のレスポンスが返されます。

pingでGoogleにサイトマップを送信する

まとめ

サイトマップはサイトのページのインデックス漏れを防ぎ、クローラービリディを向上させることにより、検索結果への表示を促進するためのものです。

SEOとしては、これよりも重要な施策がたくさんありますので、余裕があるときに対策すると良いでしょう。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

・PM、SE、SIなどを20年以上経験
・ネットワークスペシャリスト、セキュリティスペシャリストなど複数のIT国家資格を保有

目次