sitemap.xmlの書き方

access_time

sitemap.xmlの書き方

ホームページを作成した時にWordpress等で作成した場合はプラグインでサッと作ってしまうことが多いと思いますが、小規模サイトでWordpress等を使用しない静的サイトの場合は自作する必要がありますので、今回はサイトマップの解説しようと思います。

sitemap.xmlとは?

sitemap.xmlは通常のHTML等で構成するいわゆるWebページではなく、クローラーにサイトの構成を伝えるために作成するものです。

サイトマップ自体は作らなくてもサイトに直接影響を与えることはありません。
クローラー用に作成するもので設定しておくことでページクロールを助ける効果があり結果としてサイトに良い影響を与えます。

ただ、WEBページのように作成するものではないので、WEBサイトを普通に閲覧する人は見るものではありません。
色々な設定もできますが、Googleの偉い人曰く「URL」と「更新日」が重要との事なのでそれを踏まえてクローラーに伝わるようにだけ作成すれば良いと個人的には思います。

サイトマップファイルの作り方

書き方はこんな感じです。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
	<url>
		<loc>https://tilenote.com/</loc>
 		<lastmod>2020-02-01</lastmod>
	</url>
</urlset>

作成の際の注意点3つ

  1. 使用する文字コードは「UTF-8」にする。
  2. 1つのサイトマップファイルのサイズが50MBを超えないようにする。
  3. 1つのサイトマップファイルに登録するURLの数が50,000件を超えないようにする。

文字コードについてはWindowsのメモ帳とかで作らずにSublimeText等のテキストエディターを使えば設定できます。
ファイルサイズやURLの数ですが、静的サイトで10,000ページ以上になるものを作るのは割と無謀な気がしますし、何かしらのCMSを利用して作成するべきと思うので、静的サイトを作成する前提であればあまり気にする必要もないと思います。

さきほどからタイトルで「sitemap.xml」の作り方といっていますが、拡張子だけ「.xml」になっていればファイル名は何でも構いません。制限に引っかかりそうだったり、サイトの構造上分けたほうがいい場合は、複数のサイトマップを登録することができます。

代表的なのが「sitemap.xml」であって「page-sitemap.xml」とか「sitemap2.xml」とかでもSearch Consoleで登録できれば問題なく動作します。一般的に作成されるのが「sitemap.xml」です。

WebサイトのURLに「/sitemap.xml」をつけると大抵のサイトであればそのサイトマップを見ることができると思います。

URLを追加するには<url>〜<url>の部分を複製して<loc>に記載のあるURLを変更して<lastmod>に更新日を記載して増やしてゆきます。
例としてはこんな感じです。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
	<url>
		<loc>https://tilenote.com/</loc> <- URLのフルパスを記載
 		<lastmod>2020-02-01</lastmod> <- 更新日を記載する
	</url>
	<url>
		<loc>https://tilenote.com/page1.html</loc>
 		<lastmod>2020-02-02</lastmod>
	</url>
	<url>
		<loc>https://tilenote.com/page2.html</loc>
 		<lastmod>2020-02-01</lastmod>
	</url>
	<url>
		<loc>https://tilenote.com/page3.html</loc>
 		<lastmod>2020-02-01</lastmod>
	</url>
</urlset>

ソースコードの解説

<?xml version=”1.0″ encoding=”UTF-8″?>

1行目のコレは呪文と思ってコピペしましょう。
サイトマップはxmlという言語で書きますので「xmlのバージョンと文字のエンコーディングはUTF-8で書きますよ」という宣言になります。深く考えずにコピペしましょう。

<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″>

2行目のコレも呪文とおもってコピペしましょう。
標準プロトコルを設定してます。必要に応じて複数設定しますが通常はコレのコピペで大丈夫です。

<URL>

各URLの親タグになります。サイトマップはこのタグの中にURLを記載したり更新日等の情報を盛り込んで記述することになります。ステータスはURLのみ必須でそれ以外はオプションとなりますので記載しなくても大丈夫です。
ステータスは下記の通りです。

  • <loc> 必須、URLを記載する
  • <lastmod> オプション、更新日を記載する
  • <changefreq> オプション、更新頻度を記載する
  • <priority> オプション、URLの優先度を記載する

<loc>の書き方

<loc>の値は必須なのでURLを記載します。
注意点はちゃんとhttpからのフルパスでURLを記載すること。
あとURLの最後がディレクトリになっているものは最後の「/」を記載するようにしてください。

<url>
	<loc>https://tilenote.com/sample/</loc> <- ディレクトリトップは最後の「/」までちゃんと書きます。
</url>

<url>
	<loc>https://tilenote.com/sample/page1.html</loc> <- html等がパスの場合はフルパスを記載する
</url>

<lastmod>の書き方

更新日を記載します。
書き方は、YYYY-MM-DDの形式で記載します。
2020年2月2日であれば記載は以下のようになります。

<url>
	<loc>https://tilenote.com/</loc>
	<lastmod>2020-02-02</lastmod>
</url>

<changefreq>の書き方

更新の頻度を記載します。有効な値は以下の通りです。

  • always
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • never

alwaysが常に更新されるページで下に行くほど更新頻度が少なくなる設定となります。クロールのヒントとして扱われますが、今はクローラーの精度もあがっているので<lastmod>の設定があれば個人的にはあまり必要性を感じないです。
書き方はの<changefreq>中に値を入れるだけです。

<url>
	<loc>https://tilenote.com/</loc>
	<changefreq>weekly</changefreq>
</url>

<priority>の書き方

URLの優先度の指定です。通常0.5に設定されていて0.0〜1.0の値に調整します。数値が大きいほうが優先度が高いと言うことになります。具体的な記載方法についてはこんな感じ。

<url>
	<loc>https://tilenote.com/</loc>
	<priority>1.0</priority>
</url>
<url>
	<loc>https://tilenote.com/sample/</loc>
	<priority>0.9</priority>
</url>

トップページは1.0に設定して他のページの優先度を段階的に下げて使用します。注意点はすべてのページが重要だからと全部同じ値にすると意味がなくなります。この辺も作り手のさじ加減な所も多い気がしますし、トップページを0.1とかの値にさえしなければさほど気を使わずに書いてしまって問題ないと思います。

まとめ

以上がサイトマップに記載できるものとなります。
フルで書くとこうなります。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
	<url>
		<loc>https://tilenote.com/</loc>
 		<lastmod>2020-02-01</lastmod>
 		<changefreq>daily</changefreq>
 		<priority>1.0</priority>
	</url>
	<url>
		<loc>https://tilenote.com/page1.html</loc>
 		<lastmod>2020-02-02</lastmod>
 		<changefreq>weekly</changefreq>
 		<priority>0.8</priority>
	</url>
</urlset>

ただ、個人的にはここまでガッツリ書くのではなく、URLと更新日が記載してあれば十分かと思います。

オマケ、サイトマップに記載しないURL

サイトマップだからといって何でもかんでもURLを書いておけばいいというわけではありません。検索エンジンに登録されないほうが良いURLや重複コンテンツとなるURLは記載するべきではありません、念の為こんなURLは登録しないほうが良いというURLの例をいくつか出しておきます。

<head>内にnoindexの設定のあるURL

ページ内に<meta name=”robots” content=”noindex”>の設定があるURLはサイトマップに登録しても、インデックス登録しないでほしいと宣言してありますので、サーチコンソールでエラーになります。
心当たりがあったらサッとサイトマップから消しましょう。

メール等の確認画面や完了画面のURL

最近はページ内で完結するように作る事が多い気がしますが、メール等の確認画面やサンクスページ等、通常検索で出てきてほしくないページは登録しないようにします。

スマホ用サイト等の重複する内容のページ

PC用とスマホ用でページを分けて作成する場合。

  • https://tilenote.com/ これがPC用サイト
  • https://tilenote.com/sp/ これがスマホ用サイト

といった感じの時は主となるPC用だけ登録しておけば大丈夫です。
その代わり、sp/の方のURLにはcanonicalでPC用のURLを指定しておきましょう。

ちなみにこの2個を登録すると重複コンテンツとなりますので注意です。
私はやったことあります。

この辺に気をつけて作成すれば問題ないと思います。
作成したらSearch Consoleにちゃんと登録しておきましょう!

HTML