XMLサイトマップの作り方
こんにちは、SEO分析ツール「アナトミー」開発チームの江頭です。
XMLサイトマップ(sitemap.xml)は、検索エンジンのクローラーが参照するファイルです。sitemap.xmlを作るには、サイトマップ作成ツールを使用する方法が一般的です。
また、サイトマップのSEO上の効果を得るには、サイトマップを更新したことを検索エンジンへ通知する必要があります。
今回は、XMLサイトマップの書き方やサイトマップ作成ツール、サイトマップをGoogleへ通知する方法について説明します。
SEOの基本知識についてはオンラインセミナーでも解説しています。セミナーではGoogle公式のSEOガイドであるGoogle検索セントラルの「Google検索の仕組み」と「スターターガイド」の内容を分かり易く解説します。これからSEOを始めようと考えている方は是非ご参加ください。
XMLサイトマップとは
XMLサイトマップ(sitemap.xml)とは、サイトの住所録のような役割を持つファイルで、検索エンジンのクローラーが読み取って利用します。サイトマップを作成すると、クローラーの巡回速度をUPし、検索結果への反映を早める効果があります。
サイトマップには、サイト内に存在するページの URL がリストアップされています。クローラーはサイトマップに記載された URL を参考にして、サイト内を巡回しているので、サイトマップを用意しておくと、クローリングが効率的に行われるようになります。
XMLサイトマップの必要性
サイトマップは特に、次のような状況下で威力を発揮します。
- サイトをリリース/リニューアルした直後で、なるべく早くインデックス登録したいとき
- TOP からたどれないページが数多くあり、それらもインデックス登録したいとき
- URL が数万以上など非常に多いサイトのとき
サイトマップには、URLとコンテンツの最終更新日時を記述できるようになっています。そのため、Googleはどのページの内容が更新されたのかをXMLサイトマップファイルをチェックするだけで判別できるようになります。
特にページ数の多い大規模なサイトでは、サイトマップは必須です。
また、LPやメルマガのみで案内しているページのように、内部リンクが張られていないページをインデックス登録させるにはサイトマップは必須となります。
なお、サイトマップがなくても、クローラーはサイトのTOPページからリンクをたどり、サイト内にあるページをくまなく探します。しかし、サイトマップがある場合と比べると、クローラーがサイト内を巡回して新しいページや更新されたページを探すのには時間がかかってしまいます。
更新頻度が少ないサイトや小規模なサイトでは、サイトマップがなくても実害はないでしょう。
クロール・インデックス登録については定期開催のオンラインセミナーでも解説しています。Googleが公式のドキュメントで推奨している対策方法についても解説していますので、SEOをこれから始めようと考えている方は是非ご参加ください。
XMLサイトマップを手動で作るか?自動で作るか?
XMLサイトマップの書式はテキスト形式です。
そのため、手作業でXMLサイトマップを作成し、サーバーにアップロードすることも可能です。
しかしながら、手作業でのXMLサイトマップ更新は非常に手間がかかるだけでなく、更新を忘れたりするとインデックス登録されるまでに時間がかかるといったデメリットがあります。
Googleのジョン・ミューラー氏もXMLサイトマップを手動で作成することは推奨していません。
XMLサイトマップを作成する場合は、必ず自動化するようにしましょう。
- 関連記事:SEOチェックリストのダウンロード
サイトマップに登録する必要があるページを確認する
サイトマップを作成する前に、サイト内のページのインデックス状況を確認しておきましょう。
SEO分析ツール「アナトミー」の検索流入確認機能を使えば、サイト内で検索流入が0のページが分かります。
検索流入が0のページは、Googleにインデックスされていない可能性が高いため、サイトマップに記入し、明示的にクロールしてもらうようにしましょう。
サイトマップの種類
Googleクローラーは、以下の3種類のサイトマップに対応しています。
- XML サイトマップ形式
- RSS
- テキストファイル
3種類の形式のうち、小規模サイトから大規模サイトまで柔軟に対応でき、作成ツールも豊富に用意されている形式がXMLサイトマップです。そのため、サイトマップの形式としてはXMLサイトマップを利用することをお勧めします。
XMLサイトマップは、WordPressのプラグインや、Webサービスなどを利用して自動作成できます。
sitemap.xmlの書き方
XML サイトマップは、次のようなテキスト形式です。 ファイル名は sitemap.xml が一般的です。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://technical-seo.jp/</loc>
<lastmod>2020-01-30T12:43:44+09:00</lastmod>
</url>
<url>
<loc>https://technical-seo.jp/</loc>
<lastmod>2020-02-05T16:28:31+09:00</lastmod>
</url>
</urlset>
サイトマップ内に記載するタグは以下の通りです。
① urlset タグ
XMLサイトマップに1つだけ記述するタグです。
② url タグ
1つの URL 情報につき、url タグで囲みます。
url タグ内は、loc タグや lastmod タグを記述します。
③ locタグ
URL を絶対 URL で指定します。
(例)https://example.com/foo/bar/
日本語を含める場合は、パーセントエンコーディングが必要です。
(例)https://example.com/ブログ
→ https://example.com/%e3%83%96%e3%83%ad%e3%82%b0
④ lastmod タグ
最終更新日時を W3C datetime 形式で指定します。
タイムゾーン | 書式 |
---|---|
日本 | ”[年]-[月]-[日]T[時]:[分]:[秒]+09:00” という書式になります。 (例)2020年2月5日 16:43:24の場合 → 2020-02-05T16:43:24+09:00 |
UTC | ”[年]-[月]-[日]T[時]:[分]:[秒]Z” という書式になります。 (例)2020年2月5日 16:43:24の場合 → 2020-02-05T07:43:24Z |
lastmod は、「数あるURLの中からどの URL を優先したらいいのか」をクローラが判断する材料になります。静的ページの場合は「HTML ファイルの最終更新日時」、ブログ記事のような場合は「記事の最終更新日時」を lastmod に設定するのがよいでしょう。
⑤ changefreq タグ
指定不要です。Google クローラーはこの項目を利用しません。
⑥ priority タグ
指定不要です。Google クローラーはこの項目を利用しません。
XMLサイトマップの詳しい仕様については、以下を参照してください。
Sitemaps XML format – sitemaps.org
XMLサイトマップを手作業で作成することは推奨されません。書式については大まかに把握しておいて、サイトマップ作成ツールやプラグインで生成されたファイルが正しいかをチェックできれば十分でしょう。
GoogleのXMLサイトマップの制限
1ファイルにつき50,000URLが上限
サイトマップに記述可能なURL数は50,000までです。ECサイトのように、50,000URLを超えるような大規模なサイトでは、サイトマップファイルを分割します。サイトマップインデックスファイルと呼ばれる、分割したサイトマップを列挙したファイルを準備します。
大きなサイトマップを分割する – Search Console ヘルプ
ファイルサイズは50MBが上限
XMLサイトマップのファイルサイズにも制限があります。URLが1,000文字を超えるような長いサイトの場合は、余裕をもったサイズに分割しておくことをお勧めします。
XMLサイトマップ自動生成ツール
それでは早速、サイトマップ自動作成ツールを使ってXMLサイトマップを作成してみましょう。まずはオンラインで利用できるツールから紹介します。
sitemap.xml Editor
URLを指定するとサイト内を巡回し、XMLサイトマップを自動生成してくれる便利なWebサービスです。
使い方は簡単です。
- TOP ページの URL を入力 する
- [サイトの更新頻度] は [記述しない] を選択 する
- 優先度の自動設定は [しない] を選択 する
- [サイトマップ作成] ボタンをクリックする
クローリングが始まり、しばらくするとXMLサイトマップが作成されます。
なお、除外ディレクトリも指定できるので、例えば blog ディレクトリ以外を「sitemap.xml Editor」で生成する、ということも可能です。
なお、URL 数が 1000 を超えるサイトはサイトマップを作成できないという制限があります。
WordPressでサイトマップを自動作成するプラグイン
WordPressには、XMLサイトマップを作成できる便利なプラグインが各種存在します。
ここでは代表的なプラグインを紹介します。
XML Sitemapsプラグイン
XML Sitemapsは、XMLサイトマップの自動生成に特化したWordPressプラグインです。
このプラグインをインストールするときの注意点ですが、「XML Sitemaps」で検索してもヒットしません。そのため、次の手順で検索してみてください。
- 検索キーワードに「XML Sitemaps Auctollo」を入力
- XML Sitemapsが表示されたことを確認し、「今すぐインストール」をクリック
XML Sitemapsプラグインの設定画面は以下の通りです。
XML Sitemapsの設定は、デフォルトのままで十分です。
サイトマップに追加したいページがある場合は、以下の手順でURLを設定します。
- [設定]-[XML Sitemap]メニューをクリックする
- Additional Pages内にある「新しいページの追加」ボタンをクリックする
- サイトマップに追加するURLを絶対URLで入力する
- 優先度は「0.3」を選択する
- 更新頻度は「毎日」を選択する
- 追加するページの最終更新日を 2020-10-02 のような形式で入力する
- [設定を更新]ボタンをクリックする
なお、XMLサイトマップの URL は、「WordPress アドレス直下の sitemap.xml」になります。
WordPressアドレス | https://example.com/blog/ |
XMLサイトマップのURL | https://example.com/blog/sitemap.xml |
XMLサイトマップのURL にアクセスすると、プラグインで生成されたXML サイトマップが確認できます。
WordPressのその他のプラグインや、プラグインを使わずにサイトマップを出力する方法については、以下の記事を参照してください。
XML サイトマップの作成を自動化する
サイトマップ生成を自動化したい場合や、URL 数が 1000 を超える場合は、gulp タスクから利用できる「gulp-sitemap」を使ってみてください。
https://www.npmjs.com/package/gulp-sitemap
gulp-sitemap を使うと、例えば HTML ファイルを含むローカルディレクトリから sitemap.xml を生成できます。
まず、Node.js をインストールします。次に、gulp をインストールします。
$ npm install gulp
npm コマンドで gulp-sitemap パッケージをインストールします。
$ npm install --save-dev gulp-sitemap
次のような gulpfile.js を作っておきます。
const gulp = require('gulp');
const sitemap = require('gulp-sitemap');
gulp.task('sitemap', function (done) {
gulp.src('dist/**/*.html', {
read: false
})
.pipe(sitemap({
siteUrl: 'https://technical-seo.jp'
}))
.pipe(gulp.dest('./dist'));
done();
});
gulp.task('default', gulp.task('sitemap'));
gulp コマンドを実行すると、dist ディレクトリにある HTML ファイルを元にして、sitemap.xml が出力されます。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://technical-seo.jp/</loc>
<lastmod>2020-01-17T01:30:55.455Z</lastmod>
</url>
<url>
<loc>https://technical-seo.jp/contact/</loc>
<lastmod>2020-01-17T01:30:55.459Z</lastmod>
</url>
:
サイトマップの配置場所
サイトマップは、ドメイン直下に配置するのを基本と考えてください。
(例)https://example.com/sitemap.xml
ディレクトリごとにサイトマップを分割するような場合は、ドメイン直下ではなく、特定のディレクトリに配置することもできます。ただし、「loc タグのURLは、サイトマップを配置したディレクトリ以下しか指定できない」という制限があります。サイトマップを生成するときに注意しましょう。
(例)https://example.com/blog/ に sitemap.xml を配置する場合の、loc タグで指定可能な URL
〇 https://example.com/blog/
〇 https://example.com/blog/1234
〇 https://example.com/blog/tag/xyz
× https://example.com/
サイトマップ作成時に気を付けるポイント
サイトマップはドメインごとに作成する
サイトマップはドメインをまたいで指定することはできません。たとえば、example.com と blog.example.com の2つのドメインがある場合、example.com 用のサイトマップと blog.example.com 用のサイトマップの2つを用意する必要があります。また、example.com 用のサイトマップで、blog.example.com の URL は指定できません。
重要度の低いURLを除外する
インデックスに登録しない URL は、サイトマップからも除外しておきましょう。そうしておかないと、「インデックスに登録するつもりがないURLに、クローラーが巡回に来る」事態になります。無駄なクローリングが行われることで、重要なURLのクローリングが遅れてしまいます。
特に、URL数が多いサイトの場合は、ツールから生成されたサイトマップに一度目を通しておきましょう。
1ファイルの上限は50,000URL
Google が処理可能なサイトマップの上限は、50,000 URLまでです。これを超える場合、複数のサイトマップに分割が必要です。
サイトマップの登録
サーバーにアップしたサイトマップは、Googleサーチコンソール でサイトマップの URL を登録します。
サイトマップの URL を入力し、[送信]ボタンをクリックします。サイトマップが認識されると、次のような完了画面が表示されます。
[OK] を押すと、Googleがサイトマップを分析した結果が表示されます。
エラー表示された場合の対処方法や、Googleサーチコンソールの高度な使い方については、以下の記事を参考にしてください。
また、サイトマップの URL を robots.txt で指定している場合でも、上記手順でサイトマップを手動で登録し、ステータスを確認することをお勧めします。
- 関連記事:robots.txtの書き方
なお、サイトマップの登録後、sitemap.xml の内容を更新した場合は、次に説明するサイトマップ更新通知を行ってください。
XMLサイトマップの更新
sitemap.xml の内容を変更した場合、単にファイルをサーバーにアップロードしただけでは、新しいサイトマップの内容が即座にクローラーに利用されることはありません。なぜなら、Google のクローラがサイトマップを巡回する頻度が非常に低く、サイトマップを更新しても、Google は気づかないためです。
そのため、サイトマップファイルを更新した後、Google側に更新通知をすることをお勧めします。詳しくは、以下の記事を参考にしてください。
まとめ
以上、サイトマップ作成の手順と Google への通知方法について説明しました。
サイトマップはクローラビリティを向上させるための肝になります。冒頭で書いたように、早めのインデックス処理が要求される「サイトリリース時」や「サイトリニューアル時」、URL数 が非常に多い EC サイトのような場合は、適切にサイトマップを設定しておきましょう。
Googleからの評価をアップするには、サイトマップだけではなく、適切な内部対策も必要です。
適切な内部対策の方法については無料のSEOセミナーで解説しています。セミナーでは、Google公式のSEOガイドであるGoogle検索セントラルの「Google検索の仕組み」と「スターターガイド」の内容を分かり易く解説します。これからSEOを始めようと考えている方は是非ご参加ください。
最後に弊社ではサーチコンソールとGA4データを1つにまとめて分析ができる「SEO分析ツール アナトミー」 を提供しております。運用しているサイトのSEOチェックを行うのに必要な機能が揃ったダッシュボードプランは全て無料でずっとご利用いただけます。是非、アナトミーに無料登録してサイトのSEOチェックをしてみてください。