テクニカルSEO BLOG
テクニカルSEOを中心にSEO対策をまとめています

XMLサイトマップの作り方

こんにちは、テクニカルSEO対策サービス「CLUSTER SEO」開発チームの江頭です。

XMLサイトマップ(sitemap.xml)は、検索エンジンのクローラーが参照するファイルです。sitemap.xmlを作るには、サイトマップ作成ツールを使用する方法が一般的です。

また、サイトマップのSEO上の効果を得るには、サイトマップを更新したことを検索エンジンへ通知する必要があります。

今回は、XMLサイトマップの書き方やサイトマップ作成ツール、サイトマップをGoogleへ通知する方法について説明します。

XMLサイトマップとは

XMLサイトマップ(sitemap.xml)とは、サイトの住所録のような役割を持つファイルで、検索エンジンのクローラーが読み取って利用します。サイトマップを作成すると、クローラーの巡回速度をUPし、検索結果への反映を早める効果があります。

サイトマップには、サイト内に存在するページの URL がリストアップされています。クローラーはサイトマップに記載された URL を参考にして、サイト内を巡回しているので、サイトマップを用意しておくと、クローリングが効率的に行われるようになります。

サイトマップは特に、次のような状況下で威力を発揮します。

  • サイトをリリース/リニューアルした直後で、なるべく早くインデックス登録したいとき
  • TOP からたどれないページが数多くあり、それらもインデックス登録したいとき
  • URL が数万以上など非常に多いサイトのとき

サイトマップがなくても、クローラーはサイトのTOPページからリンクをたどり、サイト内にあるページをくまなく探そうと努力します。しかし、クローラーがサイト内を巡回し、新しいページや更新されたページを探すのには時間がかかってしまいます。これを手助けするのが「サイトマップ」です。

そのため、サイトマップには全ページの URL をリストアップする必要はなく、「クローラーに是非とも巡回に来てほしい URL」だけをリストアップすればよいことになります。

しかし、URL が数百ページ程度のサイトであれば、全ページのURLをリストアップするような運用でも問題ないでしょう。

サイトマップに登録する必要があるページを確認する

サイトマップを作成する前に、サイト内のページのインデックス状況を確認しておきましょう。

テクニカル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://cluster-seo.com/</loc>
    <lastmod>2020-01-30T12:43:44+09:00</lastmod>
  </url>
  <url>
    <loc>https://cluster-seo.com/blog/</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サービスです。

sitemap.xml Editor

使い方は簡単です。

  1. TOP ページの URL を入力 する
  2. [サイトの更新頻度] は [記述しない] を選択 する
  3. 優先度の自動設定は [しない] を選択 する
  4. [サイトマップ作成] ボタンをクリックする

クローリングが始まり、しばらくするとXMLサイトマップが作成されます。

なお、除外ディレクトリも指定できるので、例えば blog ディレクトリ以外を「sitemap.xml Editor」で生成する、ということも可能です。

なお、URL 数が 1000 を超えるサイトはサイトマップを作成できないという制限があります。

SEOチェックリストのダウンロード

WordPressでサイトマップを自動作成するプラグイン

WordPressには、XMLサイトマップを作成できる便利なプラグインが各種存在します。

ここでは代表的なプラグインを紹介します。

Google XML Sitemapsプラグイン

Google XML Sitemapsは、XMLサイトマップの自動生成に特化したWordPressプラグインです。

Google XML Sitemaps プラグイン

Google XML Sitemapsの設定は、デフォルトのままで十分です。サイトマップに追加したいページがある場合は、以下の手順でURLを設定します。

Google XML Sitemapsで追加ページを指定
  1. [設定]-[XML Sitemap]メニューをクリックする
  2. Additional Pages内にある「新しいページの追加」ボタンをクリックする
  3. サイトマップに追加するURLを絶対URLで入力する
  4. 優先度は「0.3」を選択する
  5. 更新頻度は「毎日」を選択する
  6. 追加するページの最終更新日を 2020-10-02 のような形式で入力する
  7. [設定を更新]ボタンをクリックする

なお、XMLサイトマップの URL は、「WordPress アドレス直下の sitemap.xml」になります。

WordPressアドレスhttps://example.com/blog/
XMLサイトマップのURLhttps://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 --global gulp-cli

npm コマンドで gulp-sitemap パッケージをインストールします。

$ npm init
$ npm install --save-dev gulp-sitemap

次のような gulpfile.js を作っておきます。

var gulp = require('gulp');
var sitemap = require('gulp-sitemap');
 
gulp.task('sitemap', function (done) {
    gulp.src('dist/**/*.html', {
            read: false
        })
        .pipe(sitemap({
            siteUrl: 'https://cluster-seo.com'
        }))
        .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://cluster-seo.com/</loc>
        <lastmod>2020-01-17T01:30:55.455Z</lastmod>
    </url>
    <url>
        <loc>https://cluster-seo.com/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 で指定している場合でも、上記手順でサイトマップを手動で登録し、ステータスを確認することをお勧めします。

なお、サイトマップの登録後、sitemap.xml の内容を更新した場合は、次に説明するサイトマップ更新通知を行ってください。

XMLサイトマップの更新

sitemap.xml の内容を変更した場合、単にファイルをサーバーにアップロードしただけでは、新しいサイトマップの内容が即座にクローラーに利用されることはありません。なぜなら、Google のクローラがサイトマップを巡回する頻度が非常に低く、サイトマップを更新しても、Google は気づかないためです。

そのため、サイトマップファイルを更新した後、Google側に更新通知をすることをお勧めします。詳しくは、以下の記事を参考にしてください。

まとめ

以上、サイトマップ作成の手順と Google への通知方法について説明しました。

サイトマップはクローラビリティを向上させるための肝になります。冒頭で書いたように、早めのインデックス処理が要求される「サイトリリース時」や「サイトリニューアル時」、URL数 が非常に多い EC サイトのような場合は、適切にサイトマップを設定しておきましょう。

Googleからの評価をアップするには、サイトマップだけではなく、適切な内部対策も必要です。弊社ではサイトのキーワード・リンクを再設計してビッグワードを狙うテクニカルSEO対策サービス「CLUSTER SEO」を提供しています。「オウンドメディアはあるけれど成果が上がらない…」というお悩みをお持ちでしたら、ぜひご利用ください!
テクニカルSEO対策サービス「CLUSTER SEO」

Page Top