本文へスキップ

サイトマップとは?

image

定義

サイトマップ(Sitemap)とは、ウェブサイトのすべてのページを整理して列挙したファイルで、検索エンジンにサイトの構造を知らせる役割を果たします。建物の設計図や地図のように、サイトマップは検索エンジンクローラーがウェブサイトを効率的に探索しインデックスできるよう支援します。

サイトマップには主に2つのタイプがあります。1つ目はXMLサイトマップで、主に検索エンジンのために作られ、人間が読むよりも機械が読みやすい形式です。2つ目はHTMLサイトマップで、ウェブサイト訪問者がサイトの全体構造を一目で把握できるように作られたページです。SEOの観点からはXMLサイトマップがより重要で、一般的に'sitemap.xml'というファイル名でウェブサイトのルートディレクトリに位置します。

サイトマップは特に、新しいウェブサイト、ページ数の多い大規模サイト、内部リンクがよく連結されていないサイト、外部リンクが少ないサイトで非常に有用です。検索エンジンがすべてのページを自然に発見することが難しい場合、サイトマップを通じて明示的にページの存在を知らせることができます。

特徴

  • 検索エンジンクローリング効率の向上:サイトマップは検索エンジンボットがウェブサイトのすべての重要なページを速く正確に見つけられるよう支援します。
  • 新しいコンテンツの高速インデックス:サイトマップに新しいページを追加して検索エンジンに知らせると、通常のクローリングよりもはるかに速くインデックスされます。
  • ページメタデータの提供:各URLの最終更新日、更新頻度、重要度などの追加情報を提供できます。
  • 多様なコンテンツタイプのサポート:一般的なウェブページだけでなく、画像、動画、ニュースなど特殊なコンテンツタイプのための専門サイトマップも存在します。
  • 自動生成と更新が可能:ほとんどのCMS(WordPress、Shopifyなど)は、サイトマップを自動的に生成し更新する機能を提供します。

活用方法

サイトマップを効果的に作成し活用する方法は以下の通りです。

ステップ1:サイトマップの生成 ウェブサイトの規模と技術スタックに応じて、様々な方法でサイトマップを生成できます。WordPressのようなCMSを使用する場合、Yoast SEOのようなプラグインが自動的にサイトマップを生成します。静的サイトやカスタムウェブサイトの場合は、オンラインサイトマップジェネレーターを使用するか、プログラミング言語を利用して直接生成できます。

ステップ2:サイトマップの最適化 サイトマップには検索エンジンにインデックスされることを望むページのみを含める必要があります。重複コンテンツ、リダイレクトされるページ、noindexタグのあるページ、エラーページなどは除外する必要があります。また、1つのサイトマップファイルは最大50,000個のURLと50MBのサイズを超えることができないため、大きなサイトは複数のサイトマップに分割し、サイトマップインデックスファイルで管理する必要があります。

ステップ3:robots.txtにサイトマップの場所を明記 robots.txtファイルにサイトマップの場所を明記すると、検索エンジンがサイトマップを簡単に見つけることができます。ファイルの最後に「Sitemap: https://yoursite.com/sitemap.xml」形式で追加します。

ステップ4:Google Search Consoleに提出 Google Search Consoleにログインし、「サイトマップ」セクションでサイトマップURLを提出します。これによりGoogleがサイトマップをすぐに認識し、クローリングを開始できます。

ステップ5:他の検索エンジンにも提出 Bing Webmaster Tools、Naver Search Advisorなど他の検索エンジンのウェブマスターツールにもサイトマップを提出するのが良いでしょう。

ステップ6:定期的な更新とモニタリング サイトマップはウェブサイトの変更事項を反映して定期的に更新される必要があります。Google Search Consoleでサイトマップの状態を確認し、エラーがあればすぐに修正する必要があります。

例1:基本的なXMLサイトマップ構造

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://zero-coke.com/</loc>
<lastmod>2024-03-23</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://zero-coke.com/blog/what-is-seo</loc>
<lastmod>2024-03-20</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://zero-coke.com/blog/what-is-backlink</loc>
<lastmod>2024-03-22</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>

この例は最も基本的なXMLサイトマップ構造です。各URLについて位置(loc)、最終更新日(lastmod)、変更頻度(changefreq)、優先度(priority)を指定できます。

例2:サイトマップインデックスファイル 大規模サイトの場合、複数のサイトマップを管理するためのインデックスファイルが必要です:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://zero-coke.com/sitemap-pages.xml</loc>
<lastmod>2024-03-23</lastmod>
</sitemap>
<sitemap>
<loc>https://zero-coke.com/sitemap-blog.xml</loc>
<lastmod>2024-03-23</lastmod>
</sitemap>
<sitemap>
<loc>https://zero-coke.com/sitemap-images.xml</loc>
<lastmod>2024-03-22</lastmod>
</sitemap>
</sitemapindex>

例3:画像サイトマップ 画像検索最適化のための専用サイトマップ:

<?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://zero-coke.com/blog/seo-guide</loc>
<image:image>
<image:loc>https://zero-coke.com/img/seo-infographic.png</image:loc>
<image:title>SEO最適化インフォグラフィック</image:title>
<image:caption>初心者のためのSEOガイド</image:caption>
</image:image>
</url>
</urlset>

例4:Node.jsを利用した動的サイトマップ生成

const { SitemapStream, streamToPromise } = require('sitemap');
const { createWriteStream } = require('fs');

async function generateSitemap() {
const sitemap = new SitemapStream({
hostname: 'https://zero-coke.com'
});

const writeStream = createWriteStream('./public/sitemap.xml');
sitemap.pipe(writeStream);

// ホームページを追加
sitemap.write({
url: '/',
changefreq: 'daily',
priority: 1.0
});

// ブログ投稿を追加
const posts = await getBlogPosts(); // データベースから取得
posts.forEach(post => {
sitemap.write({
url: `/blog/${post.slug}`,
lastmod: post.updatedAt,
changefreq: 'weekly',
priority: 0.8
});
});

sitemap.end();
await streamToPromise(sitemap);
console.log('サイトマップが正常に生成されました。');
}

generateSitemap();

メリットとデメリット

メリット

  • 検索エンジンの発見性向上:サイトマップを提供すると、検索エンジンがウェブサイトのすべての重要なページを漏れなく発見できます。特に内部リンク構造が複雑な場合や新しいサイトの場合に非常に有用です。

  • インデックス速度の改善:新しいコンテンツを公開したり既存のコンテンツを更新する際、サイトマップを通じて検索エンジンにすぐに知らせることができ、インデックス時間を大幅に短縮できます。

  • 追加メタデータの提供:URLの重要度、更新頻度、最終更新日などの情報を検索エンジンに伝えることで、クローリング優先順位を調整できます。これはクロール予算が限られている大規模サイトで特に重要です。

デメリット

  • メンテナンスが必要:ウェブサイトが頻繁に変更される場合、サイトマップも継続的に更新する必要があります。自動化されていなければ、これは追加の作業負担となる可能性があります。

  • 順位保証なし:サイトマップがあるからといって検索順位が自動的に上がるわけではありません。サイトマップは単にクローリングとインデックスを支援するツールに過ぎず、実際の順位はコンテンツの質、バックリンクなど他の要素によって決定されます。

  • 誤った設定時の逆効果:サイトマップに404エラーページ、重複コンテンツ、リダイレクトページなどが含まれていると、検索エンジンに混乱を与えクロール予算を無駄にすることになります。したがって、正確な設定と定期的な点検が必須です。

FAQ

Q:サイトマップがないと検索エンジンに表示されませんか? A:いいえ、サイトマップがなくても検索エンジンは内部リンクをたどってページを発見しインデックスできます。ただし、サイトマップがあるとこのプロセスがはるかに効率的で速くなります。特に新規サイトや内部リンク構造が複雑なサイトではサイトマップが非常に重要です。

Q:サイトマップのpriorityとchangefreq値は検索順位に影響しますか? A:Googleは公式にpriority値を無視すると明らかにしており、changefreqも参考にするだけで大きく重要ではありません。これらの値は相対的なヒントに過ぎず、検索エンジンは独自のアルゴリズムでクローリング優先順位を決定します。むしろlastmod(最終更新日)がより有用な情報です。

Q:サイトマップはどのくらいの頻度で更新すべきですか? A:ウェブサイトの更新頻度によります。毎日新しいコンテンツを公開するニュースサイトならリアルタイムで更新されるべきで、月1-2回更新される小規模ビジネスサイトならそれに合わせて更新すればよいでしょう。ほとんどのCMSは、ページが追加または変更されたときに自動的にサイトマップを更新します。

Q:HTMLサイトマップも作成すべきですか? A:HTMLサイトマップはSEOへの直接的な影響は大きくありませんが、ユーザーエクスペリエンスの面では有用です。特に複雑な構造の大規模ウェブサイトで訪問者が希望のページを素早く見つけられるよう支援します。リソースが許せば、XMLサイトマップとともにHTMLサイトマップも提供するのが良いでしょう。