この記事はAhrefs公式ブログの日本語訳です。
原文:How to Create an XML Sitemap (and Submit It to Google)
(著者:Joshua Hardwick / 原文の最終更新日:March 12, 2021)
※フルスピード註:この記事は2021年3月12日時点の記載をもとに翻訳しています。Ahrefs公式ブログの記事は今後追記・再公開されることがありますことをご了承ください。
地図がないと新しい目的地を見つけるのが難しいように、サイトマップがないと、Googleがあなたのウェブサイトのすべてのページを見つけるのが難しいことがあります。
幸いなことに、XMLサイトマップを作成し、Googleに送信することは簡単です。
その方法について、順を追って説明していきます。ですがその前に、基本的なことをいくつか説明しておきましょう。
(すでに基本的なことを理解している方は、サイトマップ作成の見出しまで一気にジャンプしてください)
SEO対策は初めてでしたら、Ahrefsのガイドがオススメです。
サイトマップとは何ですか?
サイトマップとは、Webサイトの重要なコンテンツをすべてリストアップしたXMLファイルのことです。検索エンジンに表示させたいページやファイルは、すべてサイトマップに登録する必要があります。
サイトマップは、50,000以上のURLをリストアップすることはできず、ファイルサイズも50MBを超えることはできません。サイトマップがどちらかの上限、または両方ともサイズオーバーの場合は、複数のサイトマップを作成する必要があります。
XMLサイトマップはどのようなものですか?
XMLサイトマップは、人間ではなく、検索エンジンのために作られたものです。XMLサイトマップを見たことがない人は、少し戸惑うかもしれません。
<?xml version="1.0" encoding="UTF-8"?> <? <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9 <url> <loc>https://ahrefs.com/</loc> <lastmod>2019-08-21T16:12:20+03:00</lastmod> </url> <url> <loc>https://ahrefs.com.com/blog/</loc>。 <lastmod>2019-07-31T07:56:12+03:00</lastmod> </url> </urlset>
これを分解してみましょう。
XML宣言
<?xml version="1.0" encoding="UTF-8"?> です。
これは、検索エンジンにXMLファイルを読んでいることを伝えるものです。また、使用されているXMLのバージョンと文字エンコーディングを明記します。サイトマップの場合、バージョンは1.0、エンコーディングはUTF-8である必要があります。
URLセット
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
サイトマップに含まれるすべてのURLのコンテナです。また、どのプロトコル規格が使用されているかをクローラに伝えます。ほとんどのサイトマップは、Google、Yahoo!、MicrosoftなどがサポートするSitemap 0.90標準を指定しています。
URL
<url> <loc>https://ahrefs.com/</loc> <lastmod>2019-08-21T16:12:20+03:00</lastmod> </url>
各URLの親タグになります。入れ子になった<loc>
タグでURLの場所を指定する必要があります。重要なことは、これらは相対的な正規のURLではなく、絶対的なものでなければならないということです。
ここでは必須のタグはこれだけですが、いくつかのオプションのプロパティがあります:
<lastmod>
:ファイルが最後に変更された日付を指定する。これはW3CのDatetime形式でなければなりません。例えば、2019年9月25日に記事を更新した場合、属性は2019-09-25と表示されます。時刻を含めることもできますが、これはオプションです。<priority>
:サイト上の他のすべてのURLに対する相対的な優先度を指定します。値の範囲は0.0~1.0です。高い方がより重要です。<changefreq>
: ページが変更される頻度を指定します。この値は、検索エンジンがそのURLを再検索する頻度を示すためのものです。有効な値は、always、hourly、daily、weekly、monthly、yearly、それから neverです。
これらのオプションタグは、いずれもSEO上それほど重要ではありません。
<lastmod>
については、GoogleのGary Ilyes氏は、「ウェブマスターはこのタグを正確に保つためにひどいことをしている」として、ほとんどの場合無視すると述べています。ほとんどのサイトマップジェネレータは、これを全ページの現在の日付に設定し、ファイルが最後に更新された日付には設定しないので、その理由を知るのは簡単なことです。
<priority>
については、Googleは、このタグは単なる「ノイズの袋」であるため、無視すると言っています。
<changefreq>
については、John Muellerが “優先順位や変更頻度は、もうSitemapではそれほど重要な役割ではありません. “と言っています。
なぜサイトマップが必要なのか?
Googleはウェブをクロールすることで新しいコンテンツを発見しています。ページをクロールする際、ページ内の内部リンクと外部リンクの両方に注意を払います。発見されたURLが検索インデックスにない場合、そのコンテンツを解析し、適切な場所にインデックスすることができます。
しかし、Googleはこの方法ですべてのコンテンツを見つけることができるわけではありません。あるウェブページが他の既知のページからリンクされていない場合、Googleはそれを見つけることができません。
そこで、サイトマップの出番です。
サイトマップは、Google(および他の検索エンジン)がクロールしてインデックスできるように、あなたのウェブサイトの最も重要なページを見つけることができる場所を教えてくれます。
検索エンジンは、まずインデックスを作成しなければ、あなたのコンテンツを評価することができないので、これは重要なことです。
サイトマップの作成方法
CMSの中には、サイトマップを生成してくれるものがあります。サイトマップは、サイトのページや記事を追加したり削除したりすると、自動的に更新されます。CMSがこれを行わない場合は、通常、プラグインが用意されています。
WordPressでサイトマップを作成する
WordPressはウェブサイトの34.5%を支えていますが、サイトマップを作成することはできません。サイトマップを作成するには、Yoast SEOのようなプラグインを使用する必要があります。
Yoast SEOをインストールするには、WordPressのダッシュボードにログインします。
プラグイン > 新規追加 に進みます。
「Yoast SEO」で検索してください。
最初の結果で 「今すぐインストール 」を押して、「有効化」を押してください。
SEO > 一般 > 機能 に進みます。「XML sitemaps」トグルがオンになっていることを確認します。
これで、サイトマップ(またはサイトマップインデックス)がyourdomain.com/sitemap.xmlまたはyourdomain.com/sitemap_index.xmlのいずれかに表示されるはずです。
参考:あなたのWordPressのインストールがサブフォルダまたはサブドメインにある場合、あなたのサイトマップはそのパスの下に格納されます。例えば、私たちのブログのサイトマップは、ahrefs.com/blog/sitemap_index.xmlでアクセスできます。
特定の種類のコンテンツ(タグページ、カテゴリページなど)をサイトマップに含めたり除外したりしたい場合は、「Search Appearance」の設定にアクセスしてくださいまた、エディター上の「詳細」メタボックスから、個別の投稿やページを除外することも可能です。
重要なこと:サイトマップから除外するのは、検索結果に表示させたくないページだけにしてください。詳しくは、WordPress SEOのガイドをご覧ください。
Wixでサイトマップを作成する
Wixは、サイトマップを自動的に作成します。yourwixsite.com/sitemap.xmlで見つけることができます。
残念ながら、サイトマップに含まれるページと含まれないページについては、あまりコントロールすることができません。あるページを除外したい場合は、そのページの「SEO(Google)」設定タブで、「このページを検索結果に表示する」スイッチをオフにしてください。
なお、この場合、ページにnoindexメタタグが追加され、検索結果に表示されないようになります。
参考:WixでURLを正規化した場合、サイトマップから削除されません。これはおそらくほとんどのユーザーに影響しませんが、正規化されたページをサイトマップに含めることはベストプラクティスではなく、Googleに複雑なシグナルを送る可能性があることを認識しておいてください。
Squarespaceでサイトマップを作成する
Squarespaceはサイトマップを自動的に作成することもできます。通常、yoursquarespacesite.com/sitemap.xmlで見つけることができます。
「SEO」タブで検索エンジンからページを除外(noindex)することはできますが、Squarespaceでサイトマップを手動で編集する方法はありません。
これにより、サイトマップからそのページを除外することもできます。
Shopifyでサイトマップを作成する
Shopifyは自動的にサイトマップを生成してくれます。yourstore.com/sitemap.xmlで検索してください。
残念ながら、Shopifyではページをnoindexにする簡単な方法はありません。.liquidファイル内のコードを直接編集する必要があります。
CMSを使わずにサイトマップを作成する
あなたのサイトのページ数が300ページ以下だと思うのであれば、Screaming Frogの無料版をインストールしてください。
インストールしたら、Mode > Spider に進みます。
「Enter URL to spider」と書かれたボックスにホームページのURLを貼り付けます。
「スタート」を押す。
参考:ホームページのcanonical(メイン)バージョンを必ず使用してください。これを行わないと、Screaming Frogは1つのURLしかクロールしません。
クロールが完了したら、右下のコーナーを見てください。
このようなことが書かれています:
499以下の場合は、「Sitemaps」→「XML sitemap」にてご確認ください。
<lastmod>
、<changefreq>
、<priority>
はGoogleが重要視していないので、サイトマップファイルから除外することをお勧めします。
「次へ」を押し、サイトマップをパソコンに保存します。こちらで完了です。
「500件中500件」と表示された場合は、サイトマップをエクスポートする意味がありません。なぜでしょうか?それは、サイト上のすべてのページをクロールする前にクロールの限界に達してしまったことを意味するからです。その結果、エクスポートしたサイトマップから数百ページが欠落している可能性があり、サイトマップの意味がなくなってしまうのです。
これを解決する一つの方法は、無料のサイトマップ作成ツールを検索することです。たくさんのサイトマップ作成ツールがあります。
しかし、そのほとんどは信頼できません。
最も人気のある生成ツールをいくつかテストしたところ、かなりの数が非正規のURL、インデックスされていないページ、リダイレクトを含んでいることがわかりました。これは、SEO上好ましくない行為です。
ジェネレーター | 正規化されたURLを含むか | インデックスされていないURLを含むか | リダイレクトを含むか |
---|---|---|---|
xml-sitemaps.com | Yes ❌ | No ✅ | No ✅ |
web-site-map.com | Yes ❌ | No ✅ | No ✅ |
xmlsitemapgenerator.org | Yes ❌ | No ✅ | No ✅ |
smallseotools.com/xml-sitemap-generator | Yes ❌ | Yes ❌ | Yes ❌ |
freesitemapgenerator.com | Yes ❌ | Yes ❌ | Yes ❌ |
duplichecker.com/xml-sitemap-generator.php | Yes ❌ | Yes ❌ | Yes ❌ |
xsitemap.com | Yes ❌ | Yes ❌ | Yes ❌ |
では、その解決策はあるのでしょうか?
Screaming Frogがサイト全体のクロールに失敗した場合、Ahrefs Site Auditでサイトをクロールします。
参考:あなたのサイトをより速くクロールするために検証します。その方法を説明します。
クロールが完了したら、ページエクスプローラーで、これらのフィルターを追加します。
Export > Current table を押します。
CSVファイルを開き、URL列からすべてのURLをコピーしてこのツールに貼り付けます。
キューに追加 > キューをsitemap.xmlとしてエクスポート をクリックします。
このファイルが完成したサイトマップです。
Googleにサイトマップを送信する方法
まず、自分のサイトマップがどこにあるのかを知る必要があります。
プラグインを使用している場合、URLはdomain.com/sitemap.xmlである可能性が高いです。
手動で行う場合は、サイトマップにsitemap.xmlのような名前を付け、ウェブサイトのルートフォルダにアップロードします。そうすれば、domain.com/sitemap.xmlのサイトマップにアクセスできるようになります。
参考:サイトマップの名前は自由に決めることができますが、sitemap.xmlにこだわるのは良い習慣です。複数のサイトマップがある場合は、sitemap_1.xml、sitemap_2.xmlのようなシンプルな命名方式にすることができます。
Google Search Console > Sitemaps > サイトマップの場所を貼り付ける > Submit を押す
これで完了です。
robots.txtファイルにサイトマップのURLを追加するのも良い方法です。このファイルは、ウェブサーバーのルートディレクトリにあります。サイトマップを追加するには、このファイルを開き、次の行を貼り付けます:
Sitemap: https://www.yourdomain.com/sitemap.xml
例のURLは、サイトマップの場所に置き換える必要があります。
複数のサイトマップがある場合は、複数の行を追加するだけです。
Sitemap: https://www.asos.com/sitemap_1.xml Sitemap: https://www.asos.com/sitemap_2.xml
サイトマップに影響を与える一般的なウェブサイトのエラーを修正する
Google Search Consoleは、サイトマップに関連するほとんどの技術的エラーについて教えてくれます。
たとえば、ここでは、送信したURLの1つがrobots.txtによってブロックされているという警告が表示されています。
これらの問題点と解決方法については、こちらで詳しく解説しています。
とはいえ、Googleが教えてくれない問題もあります。
以下に、より一般的な問題をいくつか挙げ、その見つけ方と解決方法を説明します。
サイトマップに無駄で低品質なページがある
サイトマップに含まれるすべてのページは、インデックス可能で正規化されている必要があります。
しかし、だからといって、それらのページがすべて高品質であるとは限りません。コンテンツが多い場合、低品質なページがサイトマップに含まれている可能性があります。
例えば、あるeコマースサイトの2つのページを見てみましょう。
どちらも検索者にとって価値がないにもかかわらず、そのウェブサイトのサイトマップに残っていて、Googleは両方のページをインデックスしています。
これらのページを見つけるには、 Site Audit > Duplicate Content に進みます。
canonicalのない重複ページとそれに近いページのクラスターを探します。オレンジ色の四角がそれです。クリックすると、そのグループ内のすべてのページが表示されます。
ページを確認し、クロールする価値があるかどうかを判断しましょう。
あなたのサイトに低品質なページがあることは、3つの理由からよくありません:
- クロールの予算を浪費する。Googleが無駄な低品質ページをクロールする時間とリソースを浪費することは、推奨できない状況です。その時間を、本来ならより重要なコンテンツのクロールに費やすことが望ましいためです。(ちなみに、Googleはクロール予算は「ほとんどのパブリッシャーが気にする必要はない」と述べています)。
- より重要なページからのリンクオーソリティを「盗む」ことになる。ページの権威性とランキングには明確な相関関係があります。低品質なページへの内部リンクは、より重要なページに流れる可能性のある権威性を希薄にするだけの役割を果たします。(興味深いことに、Ahrefsブログの記事をほぼ1/3削除したところ、トラフィックが減少するどころか増加しました。)
- ユーザーエクスペリエンスが損なわれる。これらのページにアクセスした訪問者には何の価値もありません。訪問者がクリックするのは手間が増えるだけですし、あなたのサイトが低品質で放置されていると感じれば、結局は離脱することになるかもしれません。
全体としてベストな方法は、あなたのウェブサイトから低品質なコンテンツを取り除くことであり、その後、サイトマップからも削除することです。その際、そのページへの内部リンクの削除も忘れないようにしましょう。これを怠ると、低品質なページという問題を別の問題(リンク切れ)にすり替えてしまうことになります。
重複や重複に近いページだけでなく、内容の薄いページも探すことができます。
サイト監査の「ページ」レポートで、「単語数が少ない」という警告が表示されているページがないか確認してみてください。
誤ってサイトマップから除外されたページ
上記の推奨される方法でサイトマップを作成した場合、noindexやcanonicalタグを持つページ(自己参照しない)は含まれません。
それは良いことです。canonical化されたURLやnoindex化されたページはサイトマップに含めないほうがよいでしょう。
とはいえ、サイトに不正なnoindexタグがあると、誤ってページが除外されてしまうことがあります。
エラーを確認するには、Site Auditの「Indexability」レポートに向かい、「Noindex page」警告をクリックします。これで、noindexされたすべてのページが表示されます。
これらのほとんどは意図的にnoindex化されている可能性が高いですが、再確認のためにリストをざっと見ておく価値はあります。通常、不正なnoindexタグは、サイトのサブセクション全体に存在するため、簡単に発見することができます。
noindexされるべきではないページがあれば、そのページからnoindexタグを削除して、サイトマップに追加してください。CMSやプラグインを使用している場合、これは自動的に行われるはずです。
不正なcanonicalとリダイレクトをチェックすることも意味があります。これを行うには、データエクスプローラーでこれらのフィルターを追加します。不正なcanonicalをチェックします。不正なリダイレクトがないかチェックする場合は、このようにフィルタします。不正なcanonicalとリダイレクトを削除し、本来該当するページをサイトマップに追加しましょう。
よくある質問
ここでは、サイトマップに関するよくある質問に対する回答をいくつかご紹介します。このセクションで回答されていない質問がある場合は、お知らせください。
AMPページにはサイトマップが必要ですか?
いいえ。必要ありません。
@JohnMu Are sitemaps needed for AMP pages w/canonical version? Is link=rel between the two enough to get indexed?
— Kevin Fowler (@Kfowler325) October 13, 2016
eコマースサイトのサイトマップはどのように作成するのですか?
eコマースサイトのサイトマップは、他のサイトと同じように作成することができます。ただし、ECサイトでは、重複ページや重複に近いページがないか確認する必要があります。これは、ファセットナビゲーションの使いやすさの影響で、大規模な監査の目をすり抜けてしまうことが多いからです。
まとめ
サイトマップを作成することは、それほど複雑ではありません。サイトをクロールして得られたURLのリストをフォーマットするだけです。
ただし、サイトマップに掲載されたページをGoogleがインデックスする必要はない、ということは覚えておいてください。また、サイトマップはランキングとは関係ありません。
Googleで上位にランクされたい方は、こちらをお読みください。
ご質問はありますか?コメント欄やTwitterで声をかけてください。
著者プロフィール
Joshua Hardwick
Ahrefs のコンテンツ責任者(わかりやすく言うと、私たちが公開するすべてのブログ記事が素晴らしいことを保証する責任者です)。