動画SEO強化!HLS動画に最適な構造化データ設定完全マニュアル
#開発者向け #SEO対策 #AI SEO対策 #動画SEO #HLS動画 #動画配信

HLS(.m3u8)形式の動画に最適な構造化データ「VideoObject」の設定方法を完全解説。SEO対策やGoogleのリッチリザルト、Discover掲載に効果的なプロパティ構成もわかりやすく紹介。
はじめに:なぜ構造化データが必要か?
Webサイトに動画を掲載する際、Googleなどの検索エンジンに正しく動画コンテンツの情報を伝えるには、構造化データ(structured data)の実装が不可欠です。とくに、HLS(HTTP Live Streaming)形式の動画は拡張子が.m3u8であることから、通常の.mp4動画とは違った注意が必要になります。
構造化データを正しくマークアップすることで、次のような効果が期待できます:
- Googleの動画検索・Discoverへの掲載可能性が向上
- サムネイル・再生時間などの情報が検索結果に表示(リッチリザルト)
- 動画のコンテンツがクローラブル・インデックス可能になる
このガイドでは、HLS動画でも効果的なSEO対策、AI SEO対策ができるよう、開発者向けに技術的な実装ポイントとベストプラクティスを詳しく解説します。
HLS動画とは?Googleはどう扱う?
HLS(HTTP Live Streaming)はAppleが開発した動画ストリーミングプロトコルで、特にiOSやSafariでのサポートが充実しています。動画は複数の.ts(MPEG-TS)ファイルに分割され、それを管理する.m3u8プレイリストで構成されます。
Googleは.m3u8形式のHLS動画も認識・インデックス可能であると明言しており、構造化データのcontentUrlに指定することが可能です。
Schema.org/VideoObjectの基本構造
構造化データでは、動画情報を記述するためにVideoObjectというスキーマタイプを使用します。Googleが公式にサポートしているプロパティを中心に、HLS動画に最適なマークアップを以下に示します。
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "動画タイトル",
"description": "動画の説明文(160文字以内推奨)",
"thumbnailUrl": "https://example.com/thumbnails/video-thumbnail.jpg",
"uploadDate": "2024-04-10T08:00:00+09:00",
"duration": "PT2M33S",
"contentUrl": "https://example.com/videos/sample.m3u8",
"embedUrl": "https://example.com/embed/sample",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": { "@type": "WatchAction" },
"userInteractionCount": 12345
},
"publisher": {
"@type": "Organization",
"name": "あなたのサイト名",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 600,
"height": 60
}
}
}
各プロパティの詳細解説
- ✅ @context【必須】⇢ Schema.orgの定義空間。常に固定で https://schema.org
- ✅ @type【必須】⇢ スキーマの種類。動画の場合は VideoObject
- ✅ name【必須】⇢ 動画のタイトル。検索にも影響するため工夫する
- ✅ description【必須】⇢ 動画の説明。160文字以内が推奨
- ✅ thumbnailUrl【必須】⇢ サムネイル画像のURL。1200x675px以上を推奨
- ✅ uploadData【必須】⇢ アップロード日。必ずISO 8601形式で
- ✅ duration【必須】⇢ ISO 8601形式の再生時間例:PT2M33S(2分33秒)
- ✅ contentUrl【必須】⇢ 実動画のURL(HLS可)
- ✅ embedUrl【推奨】⇢ iframeでの埋め込みURL。あれば推奨
- ✅ interactionStatistic【推奨】⇢ 視聴回数などの統計情報。見積もりでもOK
- ✅ publisher【推奨】⇢ サイトや企業の情報(Discover対応に推奨)
オプション(リッチ化・Discover向け)
- hasPart(チャプター情報)
"hasPart": [{
"@type": "Clip",
"name": "セグメント1",
"startOffset": 0,
"endOffset": 30
}]
- regionsAllowed(公開地域)
"regionsAllowed": "JP"
- expires(有効期限つき動画)
"expires": "2025-04-30T23:59:59+09:00"
- transcript(文字起こし)
"transcript": "この動画の字幕や文字起こし..."
HLS動画特有の注意点
1. .m3u8にGooglebotがアクセスできるようにする
robots.txtで以下のようにブロックしていないか確認:
User-agent: *
Disallow: /videos/
これでは/videos/sample.m3u8がクロール不可になります。動画ファイルを公開ディレクトリに置くか、動画用にクロール許可を設定しましょう。
2. CORS設定(Access-Control-Allow-Origin)
Googlebot-videoは動画リソースにアクセスする際、CORS制限を受ける場合があります。サーバー側で次のヘッダを設定しておくと安心です:
Access-Control-Allow-Origin: *
特にCloudFrontなどCDN経由の場合、この設定が漏れているとcontentUrlにエラーが出ることがあります。
3. HTTPSで提供
.m3u8ファイルはHTTPSでホストされている必要があります。HTTPでは警告が表示されたり、埋め込みが制限されることがあります。
動作検証とトラブルシュート
1. リッチリザルトテスト
GoogleリッチリザルトテストにページURLを入力して、構造化データが正しく認識されているか確認します。
2. Search Consoleでの「動画」セクション
Google Search Console にサイトを登録している場合、「動画」レポートが表示されます。対象URLが動画として認識されていない場合は、contentUrlの形式やアクセス制限を疑ってください。
3. トラブル事例
- 403や404が返ってくる → サーバーで.m3u8のアクセス制限あり
- embedUrl未設定 → Discover掲載が難しくなることも
- サムネイルが小さい → リッチリザルトに表示されない
SEO強化のための連携タグ
SEO対策 AI SEO対策のためOGタグも設定しておきましょう。
<meta property="og:video" content="https://example.com/videos/sample.m3u8">
<meta property="og:video:type" content="application/x-mpegURL">
<meta property="og:video:width" content="1280">
<meta property="og:video:height" content="720">
まとめ:HLS動画でSEO効果を最大化するために
HLS動画を掲載するWebページでも、構造化データを正しく設定すれば、.mp4と同じようにGoogleに認識させ、リッチリザルトやDiscoverに掲載される可能性を高めることができます。
本記事で紹介したポイントを押さえれば、動画SEOにおいても確実にアドバンテージを得ることができます。特に、開発者としては次の3点を意識しておくと良いでしょう:
- .m3u8がクロール・インデックス可能か(robots.txtとCORS)
- JSON-LD形式の構造化データが正しく出力されているか
- Googleの検証ツールでエラーや警告が出ていないか
これらを抑えることで、動画コンテンツの価値を最大限に検索エンジンに伝えることができます。
真屋 明典
ビヨンドウェブ開発者(TensorFlow認定開発者) 起業家・国内外で15期連続黒字企業経営