サイトマップ(sitemap)の作り方と利用方法
サイトマップとは
サイトマップは、『サイト全体のページ構成を一覧表示したもの』で検索エンジンに対してページの構成を伝える『sitemap.xml』と、ユーザーにページの構成を伝える『sitemap.html』の2種類があります。
聞きなれない言葉で難しそうに思えますが、クローラーやユーザーにサイトの構成をわかり易く伝えるために設置するのが望ましいもので、特にクローラーに対してはサイトのインデックスを促す重要な役割を果たします。
別記事で、インデックスに関して書いているので、良ければ参考にして下さい。
2つのサイトマップの役割を良く理解し、サイトに設置する事でサイトの構成を伝えましょう。
『sitemap.xml』の役割
記事を書いてサーバーにアップロードしても、直接記事のURLを入力するか、リンクをたどってもらわなければ、まだその記事は見ることができません。
インデックスされていなければ、検索エンジンによる検索結果に表示される事はありません。
検索エンジンのロボットが書いた記事を読み取り(クロール)、検索データベースに登録(インデックス)してもらって初めて検索結果に表示されます。
クローラーは、この『sitemap.xml』に書かれたページのURL、『内部リンク』、『外部リンク』をたどってページを巡回します。
XMLサイトマップは、検索エンジンのクローラーのために作成します。
『sitemap.xml』を設置する事で、
といった効果が期待できます。
当サイトのXMLサイトマップの一部はこのように設定しています。
『sitemap.html』の役割
XMLサイトマップとは異なり、HTMLサイトマップはサイトを見てくれている人のために作成します。
見ているサイトがどのようにカテゴリ分けされており、どのような記事があるのか、わかりやすく一覧で表示します。
読者の方はHTMLサイトマップを見ることによって、サイト全体のページを把握する事が可能になります。
特に階層の深いサイトや規模の大きなサイトなどの場合は、サイト全体のページを把握するのが難しいため、読者の方には便利なページです。
XMLサイトマップの作成方法
サイトマップという聞きなれない単語を聞いて難しそうと思う方も多いかとは思います。
一から自分で作成するのは大変ですが、自動で作成してくれる便利な無料ツールがたくさんあります。
サイトマップは一度作れば終わりではなく、ページを追加した際やページを更新した際はサイトマップも更新する必要があります。
毎回、ツールを使って作成しても良いのですが、追加や更新する部分だけでも理解して、手入力で更新するのもそれ程難しくないため、挑戦してみて下さい。
使い易い有料ツールもありますが、サイトの構成・追加・更新をクローラーに伝えるという役割だけで、内容に間違いが無ければ良いだけのものであり、内容の良し悪しがあるようなものではないため、無料のツールがおすすめです。
ただし、無料ツールには、URL数の制限がある場合が多いため、大規模なサイトの場合は、『XMLサイトマップを分割』する、『手動で追加URLを入力する』などの対応が必要となるため、分割や手動が面倒な方は有料ツールを使うのも1つの方法です。
『XML-Sitemaps.com』で作成
私のこのサイトに設置しているXMLサイトマップは、『XML-Sitemaps.com』で作成し、ページを追加する度、更新する度に手入力で修正しています。
英語のサイトですが、簡単に作成する事ができます。
XML-Sitemaps.comのページを開き、自分のサイトのURLを入力します。
当ブログの場合は、『https://jun-jun.net』と入力しています。
『www』の有無などに気を付けて下さい。

『START』ボタンをクリックするとサイトの読込が開始されます。

サイトの読込が完了したら、『VIEW SITEMAP DETAILS』ボタンをクリックします。

『DOWNLOAD YOUR XML SITEMAP FILE』をクリックし、XMLファイルをダウンロードします。

下図の赤枠で囲んだ部分(<url>タグで囲まれた部分)が『1つ1つのページの単位』となります。

- <loc>~</loc>:ページのURLを記載
- <lastmod>~</lastmod>:最終更新日を記載
- <priority>~</priority>:ページの優先度(不要)
各項目の意味を説明します。
<loc>タグで囲まれた中にはページのURLを記載します。
相対パスではなく、『絶対パス』で記載します。
<lastmod>タグで囲まれた中にはページの最終更新日を記載します。
残念ながら、『XML-Sitemaps.com』で作られたサイトマップの最終更新日は、全てサイトマップを作成した日時が記載されてしまうため、記事を最後に編集した日に書き換えましょう。
作成されたXMLファイルには時刻まで記載されていますが、インデックススピードをとにかく重視するサイトでもない限り時間までの記載は不要かもしれません。
私のサイトのXMLファイルも『年月日』のみの記載で時刻は記載していません。
<priority>タグで囲まれた中にはページの優先度を記載します。
優先的にクロールして欲しいページには『1』に近い数値を記載するなど『0.0~1.0』の間の数値を記載する項目ですが、Googleはpriority項目を利用していないため、不要です。
そのまま残しておいても良いのですが、無駄にファイルの容量が大きくなってしまうため、削除してしまうのがベストかと思います。
『WordPress』を利用している場合
『WordPress』を利用している方は、上記のようなツールを使わなくとも、便利なプラグインがあるためそちらを使うのが良いかと思います。
Google XML Sitemapsなどが有名です。
私はWordPressなどのCMSを使わずにサイトを構築しているため、今回は詳細の説明はできませんが、気になる方は調べてみて下さい。
サイトマップ作成時の注意点
最終更新日は正確に
<lastmod>タグで囲まれた部分に、ページの最終更新日を記載します。
クローラーはこの更新日時を見て、ページの追加や更新を判断しますが、適当な日時を入力していたり、更新していないのに日時を更新するなど、誤った日時を記載している場合、最終更新日時の値を信じてもらえなくなってしまう可能性があります。
そうなると、ページの更新をクローラーに伝える事ができなくなってしまうため、必ず正確な日時を記載するようにしましょう。
URLを正確に入力する
URLは『正規化』しているものを記載しましょう。
https://jun-jun.net ⇔ http://jun-jun.net
https://jun-jun.net ⇔ https://www.jun-jun.net
https://jun-jun.net/ ⇔ https://jun-jun.net/index.html
『SSL化』しているのかしていないのか、『www』は有りか無しか、『index.html』の表記は有りか無しかなどは特に間違え易いため注意しましょう。
ここでは解説しませんが、『Google Search Console』上で、上記のような正規表現の設定をする事が可能です。
また、URLは1文字でも間違えれば別のURLになってしまうため、間違いのないように気を付けましょう。
『noindex』に指定しているものは書かない
ページの『metaタグ』内に、『noindex』を指定してインデックスさせないようにしているページはサイトマップに記載しないようにしましょう。
『Google Search Console』でエラーが表示されてしまいます。
何より、インデックスを促すためのサイトマップに、インデックスさせないページを記載するのは主旨に反します。
大規模サイトはファイルを分ける
XMLサイトマップは、
という制限があります。
規模の大きなサイトの場合は、XMLファイルを複数に分けるなどの対策を取りましょう。
『50,000URL』というとかなりの大規模サイトですが、手入力などされる方も分割すると編集がし易いといったメリットがあります。
私のこのサイトもたがだか100記事前後しかありませんが、カテゴリごとにXMLファイルを分けて複数のXMLファイルを作成しています。
Googleドキュメントを読む
サイトマップの作成方法については、サイトマップの作成と送信(Google)のGoogle公式ページにも詳しく記載されています。
一度全体に目を通しておくことをおすすめします。
サイトマップの設置を知らせる
XMLサイトマップを作成し、サーバーにアップロードしただけでは、クローラーに見に来てもらう事はできません。
XMLサイトマップは、
という特性があります。
『sitemap.xml』というファイル名で、『ルートディレクトリ』に置くのが一般的ですが、XMLサイトマップを『分割』し複数設置する事もあるため、自由度があるのかもしれません。
そうすると、クローラーは、どこに何という名前でサイトマップが設置されているかわかりません。
サイトマップの存在をクローラーに知らせる必要があります。
01『robots.txt』で知らせる
クローラーのアクセスを制御するページを指定
クロールを許可するページを指定
サイトマップのURLを記載
『robots.txt』は、上記のような場合に利用するものです。
例えば、特定のフォルダ内のファイルにクローラーにアクセスしないよう指示をしたり、アクセスを制御したフォルダ内の一部のファイルへのアクセスを許可するといった使い方、XMLサイトマップの名前や置き場所を知らせるといった使い方をします。
名前の通り、ロボット(クローラー)へ指示するためのファイルです。
『robots.txt』には、
という決まりがあるため、クローラーは『robots.txt』というファイルを教えられなくても見つける事が可能です。
その中に『XMLサイトマップの情報』を書けば、サイトマップの設置を知らせる事ができるというわけです。
自身のサイトのルートディレクトリに『robots.txt』というファイルがないか確認してみましょう。
無ければ、拡張子『.txt』のファイルを作成し、既にある場合は既存ファイルを編集しましょう。
記載方法はそれ程難しくはありません。
User-agent: *
Disallow: /aaa/
Allow: /aaa/images/
Sitemap: https://jun-jun.net/sitemap.xml
Sitemap: https://jun-jun.net/seo/sitemap.xml
『User-agent: *』は冒頭に記載が必要な行であるため、必ず記載します。
『Disallow: /aaa/』は、ルートディレクトリから見た相対パスで記載されており、【aaaフォルダの中はクロールしなくてよい】とクローラーに伝える行です。
『Allow: /aaa/images/』は、クロールしなくて良いと伝えた『aaa』フォルダ内の【imagesフォルダの中はクロールして】と伝える行です。
今回のXMLサイトマップの設置を伝える行は赤字で書かれた部分です。
『Disallow』と『Allow』の行は特にクローラーへの制御を行わない場合は記載不要です。
サイトマップが1つであれば1行、2つあれば2行と記載していきます。
URLの部分は自分のサイトのものと置き換えてて下さい。
『robots.txt』の注意事項
『robots.txt』はサイトのルートディレクトリに設置する
文字コードはUTF-8で保存する
サイトマップの置き場所はURLの絶対パスで記載する
『robots.txt』はエラーの無いように気を付ける
『robots.txt』はサイトのルートディレクトリに設置する
『robots.txt』はサイトのルートディレクトリに設置する必要があります。
ルートディレクトリ以外に設置しても、読みに来てもらえないため、無意味になってしまうので気を付けましょう。
『robots.txt』の文字コードはUTF-8にする必要があります。
その他の文字コードで作成してしまった場合、クローラーが認識できない可能性があるため注意しましょう。
『robots.txt』に記載するサイトマップのパスは絶対パスで記載します。
相対パスなどで書かないよう気を付けて下さい。
『robots.txt』を設置したが、エラーがあり読み込めない場合、サイトのトップページがインデックスから外されたという例があります。
他にも、『クローラーのアクセスを制御するページを指定』という機能があるため、設定を間違えると大変な事になってしまいます。
『robots.txt』の作成自体は難しいものではありませんが、慎重に作業を行って下さい。
02『Google Search Console』で知らせる
XMLサイトマップを読みにくるクローラーは、基本的に検索エンジンごとに異なります。
上記の『robots.txt』で知らせる方法では全ての検索エンジンにXMLサイトマップの情報を知らせる事ができますが、それだけでは見に来てくれる頻度が少ない場合があります。
日本国内における検索エンジンのシェアは、『Google』 ⇒ 『Yahoo!』 ⇒ 『Bing』という順で、3つの検索エンジンで99%前後のシェアを独占している状態です。
1位の『Google』と2位の『Yahoo!』の検索エンジンはGoogleのクローラーを使っており、『Google』と『Yahoo!』を合わせた検索エンジンのシェアは90%前後と言われています。
つまり、Googleのクローラーにサイトマップを知らせれば90%前後の検索エンジンに対応した事になります。
そのため、『Googleに直接サイトマップを送信』するのはかなり効率的な対策となります。
送信方法はとても簡単で、『Google Search Console』にログインし、左列の『サイトマップ』をクリックします。

『サーバーに設置したサイトマップのURLを入力』し、『送信』ボタンを押せば完了です。

一度送信すれば、不定期にクローラーがサイトマップを巡回してくれます。
頻繁に更新するサイトであれば、クローラーの巡回頻度も高くなりますが、更新頻度の少ないサイトの場合は、巡回頻度は低くなります。
早くインデックスさせたい場合は、同じサイトマップのURLを再度送信する事も可能です。
03『BingWebマスターツール』で知らせる
検索エンジン『Bing』はGoogleのクローラーは利用していません。
検索エンジンにおけるシェアは10%未満ですが、『Bing』という検索エンジンは、Windowsのデフォルトブラウザである『Edge』のデフォルト検索エンジンのため、PCユーザーの方は『Bing』を利用している方も多いため、軽視はできません。
Googleにサイトマップを送信している方は多いですが、『Bing』に対してXMLサイトマップを送信しない場合、どうしてもBingのインデックスの方が遅くなる傾向にあります。
特にタイムリーな記事を書く方などは、インデックスされるスピードの差でアクセス数に大きな影響をもたらす可能性が十分にあるため、是非Bingへの対応も検討してみて下さい。
こちらも送信方法は簡単で、
BingWebマスターツールにログインします。
初めてログインする際は、『Google Search Console』と同じGoogleアカウントを利用すれば『Google Search Console』の情報を自動で読み込んでもらえるため非常に便利です。
左カラム内の『サイトマップ』をクリックし、

『サイトマップ送信』ボタンをクリックします。

『サイトマップURL』を入力し、『送信』ボタンをクリックすれば完了です。

別記事に、indexされたかの確認方法を記載していますので、ページがしっかりとインデックスされているか確認したい方は参考にしていただければと思います。