ニュースサイトマップと動画・画像サイトマップについて解説!サイトマップ上級編
サイトマップとは、サイト上のページや動画などのファイルについての情報を伝えるファイルです。Googleのような検索エンジンはサイトマップを読み込んで、効率的にクロールをおこないます。サイトマップはサイト内のURLやファイルをGoogleに伝えるだけでなく、情報(最終更新日や代替言語ページなど)も提供することができます。
Googleは非常に高い精度で各ページを読み込みますので、サイトマップがなくても各ページが正しくリンクされていればサイトマップは必要ありません。しかし、大規模サイトや複雑な構造を持ったサイトであればクロールを改善させるためにサイトマップが役立ちます。
サイトマップとは
サイトマップは、ウェブサイトのすべてのページを検索エンジンに伝えるためのファイルです。多くの場合、ウェブサイトの構造をXML形式で表現したもので、ウェブサイト上の各ページのURL、更新日、変更の頻度、相対的な重要度などの情報を含んでいます。サイトマップの主な目的は、検索エンジンがウェブサイトの内容をより効率的にクロール(検索)し、インデックス(登録)するのを助けることです。
特に、大きなウェブサイトや、頻繁にコンテンツが更新されるウェブサイト、内部リンクが少ないウェブサイトではサイトマップにより、新しいページや更新されたページが検索エンジンに迅速に認識され、検索結果に表示される可能性が高まります。
サイトマップは、GoogleやBingなどの主要な検索エンジンによってサポートされており、ウェブマスターはこれを利用してウェブサイトのSEO(検索エンジン最適化)を改善することができます。サイトマップの作成と提出は、ウェブサイトの可視性とアクセス性を高める重要なステップです。
サイトマップインデックスのリファレンス
サイトマップインデックスタグは従来のサイトマップと同じ名前空間で定義され、Googleがサイトマップインデックスを使用できるようにするには、次の必須タグを使用する必要があります。
必須タグ
sitemapindex | XMLツリーの親タグ。すべての他のタグが含まれます。 |
sitemap | ファイルにリストされている各サイトマップの親タグ。 |
loc | サイトマップの場所(URL)。これはsitemapタグの最初で最後の子です。 |
【参考】省略可能なタグ
lastmod | 該当するサイトマップファイルが修正されたタイミングを特定します。 |
lastmodタグは省略可能なタグですので無理に入れる必要はありません。Googleが正確な情報だと判断されれば利用されることがある一方で、乱用が確認された場合にはlastmodは使われなくなります。
参考:ウェブページの最適な日付を Google 検索に知らせる(Google検索セントラル)
I think we use that if they’re precise enough
— Gary 鯨理/경리 Illyes (so official, trust me) (@methode) April 11, 2017
なお、サイトマップではpriorityという優先度を表すタグがありますが、Googleではpriorityは利用していません。
Googleにサイトマップを送信する方法
サイトマップを設置すればGoogleにサイト内のURLやファイルを伝えることができますが、単に設置するだけではクロールする保証はありません。送信することで確度は高まりますが、それでも確実にクロールされるとは限りません。それでも、インデックスが進まない場合、サイトマップの送信ができているかどうかは確認するようにしてください。
- Googleサーチコンソールから送信する
- robots.txtにサイトマップ情報を記載する
- Seaech Colsole APIを利用する
- WebSub(旧:PubSubHubbub)を利用する
サイトマップの送信方法は大きく上記の4つありますが、ほとんどの場合はGoogleサーチコンソールから送信するだけ、またはrobots.txtに次のような行を追記するだけで十分です。
Sitemap:https://www.example.com/sitemap.xml
※pingツールを利用する方法でサイトマップをGoogleに送信する方法もありますが、2023年12月末で終了します。厳密な終了タイミングは不明ですが、今後の利用は控えてください。
参考:サイトマップの ping エンドポイントのサポート終了について(Google検索セントラル)
サイトマップのサイズに関する制限
サイトマップはXML形式、RSS形式、テキスト形式などさまざまな形式をサポートしていますが、1つのサイトマップに対するファイルサイズの上限は圧縮していない状態で50MB、URLの件数は50,000件と定められています。ただし、サイトマップを複数のファイルに分割することは可能であり、インデックスファイルのみをGoogleに送信したり、複数のサイトマップを送信することはできます。
サイトマップのエンコードと配置場所
サイトマップはUTF-8でエンコードされている必要があります。配置場所は任意の場所ですが、サイトマップは親ディレクトリから下の階層しか伝えることができませんので、Googleサーチコンソールでサイトマップ送信をしない場合は伝えきれない情報が出てくる可能性があります。そのため、特別な事情がなければルートに配置するようにしてください。
また、サイトマップに記載する内容は絶対URLである必要があります。相対URLでは正確にクロールできないことがありますので、ご注意ください。
サイトマップの必要性
サイトマップがなくても適切にリンクされていれば検索エンジンがページを見つけることはできますが、サイトマップを設置することで検索エンジンからの漏れを減らすことにつながりますので設置が不利になることはありません。
ただし、サイトマップを設置する場合、クロールしてほしいすべてのページを含める必要があるため、敢えて手動で作るとなると非常に大きな手間がかかりますので、CMSによる自動化やツールによる自動生成を推奨します。
一般に、次のような条件のいずれかを満たすサイトではサイトマップが必要といえます。
- 大規模サイトである(数百ページ以上)
- 新しいサイトで外部からのリンクが少ない
- 動画や画像などのリッチコンテンツが多数含まれている
反対に、次のような条件のいずれかを満たす場合には手間をかけてまでサイトマップを作る必要はありません。
- 小規模サイトである
- サイト内が完全にリンクされている
- 検索結果に表示させたい動画、画像、ニュース記事などがない
サイトマップを作る場合、次のような3種類がありますが、多くの場合XMLサイトマップで十分です。
- XMLサイトマップ
- RSS、mRSS、Atom1.0
- テキストサイトマップ
XMLサイトマップ
XMLサイトマップは、もっとも汎用性が高い形式です。拡張が簡単で、画像、動画、ニュースなどに関するデータの追加も可能です。一部の大規模サイトやURLが頻繁に変更されるサイトでは管理が複雑になりますが、それ以外の場合は通常はXML形式のサイトマップを使ってください。
次の例は、1つのURLの場所を指定する基本的なXMLサイトマップです。
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″>
<url>
<loc>https://www.example.com/foo.html</loc>
<lastmod>2022-06-04</lastmod>
</url>
</urlset>
RSS、mRSS、Atom1.0
RSS、mRSS、Atom1.0形式のサイトマップは、ほとんどCMSで自動的に作成されるため、提供するのに手間がかかりません。動画に関する情報も提供できますが、画像やニュースの情報は提供できず、扱いが面倒なことがあります。XMLサイトマップを利用できる場合、敢えてこちらを選ぶメリットは少ないのが実情といえます。
RSSフィードやAtomフィードを使用するブログの場合、そのフィードのURLをサイトマップとして送信できます。ほとんどのブログサービスにフィードを自動的に作成する機能がありますが、フィードで提供されるのは最近のURLに関する情報に限られます。
テキストサイトマップ
最もシンプルな形式のサイトマップで、登録できるのはHTMLのようなインデックス登録可能なページのURLに限られます。大規模サイトの場合、正規ページの指定や維持管理をしやすいという理由で利用されることがありますが、小規模〜中規模のサイトで利用することは少なく、敢えて選ぶものではありません。
サイトマップにウェブページのURLのみを指定する場合は、1行に1つのURLを記載したテキストファイルでGoogleに送信できます。たとえば、サイトに2つのページがある場合、次のように指定してサイトマップが作れます。
https://www.example.com/file1.html
https://www.example.com/file2.html
数サイトのサイトマップを送信する方法
ウェブサイトが複数ある場合であっても、すべてのURLを記載したサイトマップを1つまたは複数作成し、そのサイトマップを1つの場所に設置してサイトマップの送信を簡略化するということができます。
ただし、サイトマップは1度設置した後に何度も送信するというものではありませんので、URLが変更するタイミングや非常に規模の大きいサイト以外では複数サイトのサイトマップをクロス送信する必要はありません。
方法としては次の2つがあります。
- 複数サイトのすべてのURLを記載したサイトマップを作成し、送信する
- サイトごとにサイトマップを1つずつ作成し、すべてのサイトマップを1つの場所に設置する
どちらの方法も通常のGoogleサーチコンソールでの送信、robots.txtでの送信と同じ方法ですが、XMLサイトマップの作成方法に違いがあります。CMSによる自動作成をおこなっている場合にはクロス送信には不向きですので、特殊な環境である場合やクロス送信する前提でサイトマップの自動作成をする場合に限って利用してください。
Googleサーチコンソールでクロス送信する方法
- サイトマップに追加するすべてのサイトの所有権確認が完了する。
- 対象とするすべてのサイトのURLを記載したサイトマップを作成する。必要に応じて、複数のサイトマップを作成し、そのインデックスファイルを作成する。
- Googleサーチコンソールでサイトマップまたはサイトマップのインデックスファイルを送信する
robots.txtでクロス送信する方法
- サイトごとにサイトマップを作成する。各サイトマップでは、その特定のサイトの URLのみを指定(サイトマップ内でサイトをクロスさせない)。
- 管理しているサイトにすべてのサイトマップをアップロードする。
- サイトごと、robots.txtファイルがその特定のサイトのサイトマップを参照するようにsurする。
画像サイトマップとは
画像サイトマップでは、Googleが検出できない可能性のある画像を含む場合に有効なGoogleへの伝達方法です。特にJavascriptを使ってアクセスする画像があった場合にはGoogleには伝わりづらいため、画像をメインコンテンツとするサイトの場合には画像サイトマップの設置を検討してください。
既存のサイトマップとは別に画像サイトマップを作成しても、既存のサイトマップに画像サイトマップのタグを追記しても正しく動作します。
画像サイトマップの例
次の例は、通常のサイトマップに画像サイトマップのタグを利用した、sample1.htmlには2つの画像を、sample2.htmlには1つの画像を含む例です。
<?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://example.com/sample1.html</loc>
<image:image>
<image:loc>https://example.com/image.jpg</image:loc>
</image:image>
<image:image>
<image:loc>https://example.com/photo.jpg</image:loc>
</image:image>
</url>
<url>
<loc>https://example.com/sample2.html</loc>
<image:image>
<image:loc>https://example.com/picture.jpg</image:loc>
</image:image>
</url>
</urlset>
画像サイトマップのリファレンス
Googleが画像サイトマップを使用できるようにするには、次の必須タグを利用してください。
必須タグ
<image:image> | 1つの画像に関するすべての情報を含めることができます。 |
<image:loc> | 画像のURLです。 |
※画像のURLは画像サイトマップを設置するサイトとは別のドメインに保存されていることがありますが、サーチコンソールで両方のドメインが確認されていれば問題ありません。
ニュースサイトマップとは
ニュースメディアの場合、既存のサイトマップとは別にニュース記事専用のサイトマップを作成することでサーチコンソールからコンテンツの検索を細かくトラッキングできるようになります。既存のサイトマップの拡張であっても問題はありませんが、規模が大きいニュースサイトの場合にはニュース記事専用のサイトマップの設置を検討してください。
ただし、ニュースのサイトマップには次のような注意点があります。
- 新しいニュースが出たら、その記事でサイトマップを更新してください。更新の際に新しいサイトマップを作成することはクロールの阻害につながります。
- 過去2日以内に作成された最新URLのみを入れてください。3日以上経過したニュースは削除してください。
- ニュースの削除によりサーチコンソールからエラーが出ることがありますが、2日以内のニュースがない場合は空のサイトマップでも正常です。
ニュースサイトマップの例
次の例では、ニュース拡張機能を使った通常のサイトマップを示しています。1つの<url>タグと、必要な子タグを含む単一の<news:news>タグが含まれています。
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″
xmlns:news=”http://www.google.com/schemas/sitemap-news/0.9″>
<url>
<loc>http://www.example.org/business/article55.html</loc>
<news:news>
<news:publication>
<news:name>The Example Times</news:name>
<news:language>en</news:language>
</news:publication>
<news:publication_date>2008-12-23</news:publication_date>
<news:title>Companies A, B in Merger Talks</news:title>
</news:news>
</url>
</urlset>
ニュースサイトマップのリファレンス
Googleがニュースサイトマップを使用できるようにするには、次の必須タグを利用してください。
必須タグ
<news:news> | 名前空間の他のタグの親タグ。 |
<news:publication> | <news:name>タグと<news:language>タグの親タグ。 |
<news:name> | ニュース刊行物の名前です。この名前はnews.google.comで記事に表示される名前と完全一致させてください。 |
<news:language> | 刊行物の言語です。ISO639言語コードで指定してください。 |
<news:publication_date> | 記事の公開日はW3C形式で指定できます。記事をサイトで最初に公開した日時だけを指定してください。 |
<news:title> | ニュース記事のタイトル。 |
※Googleで使用できる公開日の形式は次のとおりです。
- YYYY-MM-DD:例:1997-07-16
- YYYY-MM-DDThh:mmTZD:例:1997-07-16T19:20+01:00
- YYYY-MM-DDThh:mm:ssTZD:例:1997-07-16T19:20:30+01:00
- YYYY-MM-DDThh:mm:ss.sTZD:例:1997-07-16T19:20:30.45+01:00
動画サイトマップ
動画サイトマップは従来のサイトマップをもとにしていますが、最近追加されたコンテンツや通常のクロールでは検出できない可能性のあるコンテンツをGoogleに伝達するのに有効な手法です。
ただし、動画サイトマップを作成する場合には次の点に注意してください。
- メインコンテンツと無関係な動画はリストに入れない。(メインコンテンツを少しだけ補足する動画やテキストと関連のない動画など)
- 動画サイトマップに記載するファイルはGoogleによるアクセスが可能である必要がある
特に2つ目のGoogleによるアクセス可能性は次の点に注意が必要です。
- txtでクロールを禁止していない
- ログインせずにアクセスできる
- ファイアウォールによりブロックされていない
- HTTPとFTPでアクセスできる
動画サイトマップの例
次の例は、通常のサイトマップに動画サイトマップタグを追記し、単一の<url>タグに2つの動画を含めています。
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″
xmlns:video=”http://www.google.com/schemas/sitemap-video/1.1″>
<url>
<loc>https://www.example.com/videos/some_video_landing_page.html</loc>
<video:video>
<video:thumbnail_loc>https://www.example.com/thumbs/123.jpg</video:thumbnail_loc>
<video:title>Grilling steaks for summer</video:title>
<video:description>
Alkis shows you how to get perfectly done steaks every time
</video:description>
<video:content_loc>
</video:content_loc>
<video:player_loc>
https://www.example.com/videoplayer.php?video=123
</video:player_loc>
<video:duration>600</video:duration>
<video:expiration_date>2021-11-05T19:20:30+08:00</video:expiration_date>
<video:rating>4.2</video:rating>
<video:view_count>12345</video:view_count>
<video:publication_date>2007-11-05T19:20:30+08:00</video:publication_date>
<video:family_friendly>yes</video:family_friendly>
<video:restriction relationship=”allow”>IE GB US CA</video:restriction>
<video:price currency=”EUR”>1.99</video:price>
<video:requires_subscription>yes</video:requires_subscription>
<video:uploader
info=”https://www.example.com/users/grillymcgrillerson”>GrillyMcGrillerson
</video:uploader>
<video:live>no</video:live>
</video:video>
<video:video>
<video:thumbnail_loc>https://www.example.com/thumbs/345.jpg</video:thumbnail_loc>
<video:title>Grilling steaks for winter</video:title>
<video:description>
In the freezing cold, Roman shows you how to get perfectly done steaks every time.
</video:description>
<video:content_loc>
</video:content_loc>
<video:player_loc>
https://www.example.com/videoplayer.php?video=345
</video:player_loc>
</video:video>
</url>
</urlset>
動画サイトマップリファレンス
Googleが動画サイトマップを使用できるようにするには、次の必須タグを利用してください。
必須タグ
<video:video> | <loc>タグで指定したページの動画に関する情報の親要素。 |
<video:thumbnail_loc> | 動画のサムネイル画像ファイルを指す URL。 |
<video:title> | 動画のタイトル。 |
<video:description> | 動画の説明。最大で2,048文字。 |
<video:content_loc> | 実際の動画メディアファイルを指すURL(親<loc>タグとは異なるURL)。HTMLとFlash形式はサポートされていません。 |
<video:player_loc> | 特定の動画のプレーヤーを指すURL。通常、この情報は<embed>タグのsrc属性内にあります。 |
省略可能なタグ
<video:duration> | 動画の再生時間(秒単位)。 |
<video:expiration_date> | 動画が利用できなくなる日付。指定した場合、この日付以降に動画がGoogle検索で表示されることがなくなります。
指定できる値はYYYY-MM-DD形式か、YYYY-MM-DDThh:mm:ss+TZD形式。
例:2012-07-16T19:20:30+08:00 |
<video:rating> | 動画の評価。指定できる値は0.0(低)~5.0(高)。 |
<video:view_count> | 動画が再生された回数。 |
<video:publication_date> | 動画を最初に公開した日付。指定できる値はYYYY-MM-DD形式か、YYYY-MM-DDThh:mm:ss+TZD形式 |
<video:family_friendly> | セーフサーチで動画を利用できるかどうかを指定します。このタグを省略すると、セーフサーチがオンになっている場合に、動画を利用できます。 |
<video:restriction> | 特定の国で、検索結果内に動画を表示するかどうかを指定します。ISO3166形式の国コードをスペースで区切ったリストを指定します。<video:restriction>タグが存在しない場合、動画はすべての地域で表示される可能性があります。
<video:restriction>を使用する場合は、次の属性が必要です。
● relationship:指定した国で動画を検索結果に表示することを許可するか拒否するかを指定します。 ● allow:リストに含まれる国は許可されます。 ● deny:リストに含まれる国は拒否されます。
次の例では、動画は日本でのみ検索結果への表示が許可されます。
<video:restriction relationship=”allow”>JP</video:restriction> |
<video:platform> | 指定したプラットフォームタイプの検索結果で動画を表示するかどうかを指定します。プラットフォームタイプをスペースで区切ったリストを指定します。<video:platform>タグが存在しない場合、動画はすべてのプラットフォームで再生できると見なされます。
指定できる値: ● web:従来のブラウザ ● mobile:モバイルブラウザ ● tv:テレビやゲーム機
また、次の属性が必要です。
● relationship:指定したプラットフォームで動画を制限するか許可するかを指定します。 ● allow:省略したプラットフォームが拒否されます。 ● deny:省略したプラットフォームが許可されます。 |
<video:requires_subscription> | 動画を視聴するために登録が必要かどうかをyesまたはnoで指定します。 |
<video:uploader> | 動画をアップロードした人の名前。 |
<video:live> | 動画がライブストリームかどうかをyesまたはnoで指定します。 |
<video:tag> | 動画コンテンツに関する主要なコンセプトの非常に短い説明です。1つの動画に複数のタグを指定できますが、その動画に指定できるカテゴリは1つだけです。たとえば、バーベキューの動画には、カテゴリとして「バーベキュー」を指定し、タグとして「ステーキ」、「肉」、「夏」、「アウトドア」などを指定できます。最大32個まで指定できます。 |
サイトマップ拡張機能の統合方法
サイトマップにはさまざまな拡張機能がありますが、画像と動画を埋め込んだニュース記事を公開しているような場合には複数の拡張をしている場合には名前空間の指定が必要です。
拡張機能と名前空間の定義
image | http://www.google.com/schemas/sitemap-image/1.1 |
news | http://www.google.com/schemas/sitemap-news/0.9 |
video | http://www.google.com/schemas/sitemap-video/1.1 |
xhtml | http://www.w3.org/1999/xhtml |
複数の名前空間を指定するには、各名前空間リファレンスをサイトマップに追加します。次の例では、サイトマップにニュース、動画、xhtml(hreflang)拡張機能を追加する方法を示しています。
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″
xmlns:news=”http://www.google.com/schemas/sitemap-news/0.9″
xmlns:video=”http://www.google.com/schemas/sitemap-video/1.1″
xmlns:xhtml=”http://www.w3.org/1999/xhtml”>
<url>
<!– rest of the sitemap –>
まとめ