新しいrobotsタグとしてindexifembeddedをGoogleが導入

[レベル: 上級]

indexifembedded という robots タグを新たに Google は導入しました。

indexifembedded タグは、iframe(やその他の方法)で埋め込まれたページに noindex が設定されていても、埋め込まれたページのコンテンツとしてインデックスするように Google に指示する仕組みです。

noindex 設定していても埋め込み先ではインデックスさせる

indexifembedded タグの働きは少々ややこしいです(理解するまで何回も読み直した)。

基本的に、ほかのサイトに埋め込まれることが想定されるページで利用します。
ここで言う “埋め込む (embed)” とは、iframe 要素(タグ)や object 要素などを使って別ページのコンテンツを掲載することを意味します。
コピーして埋め込むことではありません。

たとえばこちらは、コア アップデートの情報をもっと詳しく提供すべきだとゲイリーが主張したポッドキャストを iframe で埋め込んでいます。

このポッドキャストは、独自の URL で公開されています。
次の URL です。

https://html5-player.libsyn.com/embed/episode/id/21728744/height/90/theme/custom/thumbnail/yes/direction/forward/render-playlist/no/custom-color/ececec/

ポッドキャストを公開しているサイトの管理者は、この URL が検索結果に出てくることを望まなかったとします。
そこで、noindex タグをページに追加しました。
ポッドキャストを公開しているページは検索結果に表示されなくなります。

ところがこの状態だと、ポッドキャストを埋め込んだページ(今あなたが見ているこのページ)においても、埋め込まれているコンテンツとしてはポッドキャストをGoogle はインデックスしません。
元のページに noindex が設定されているからです。

ここで indexifembedded タグの登場です。

noindex とともに(ポッドキャストを公開しているページに)indexifembedded を追加します。

すると、このページ(今あなたが見ているこのページ)の埋め込みコンテンツとして Google は今度はインデックスしてくれるのです。

それでも、ポッドキャストを公開している元のページはインデックスされません。
noindex は依然として有効です。

つまり、noindex が設定されていても 埋め込み先ページにおいてのみインデックス対象にするという役割を indexifembedded は果たします。
📝すずきメモ: indexifembedded は分解すると “Index if embedded” で、「埋め込まれているならインデックスする」という意味になる

indexifembedded の設定方法

indexifembedded タグは、次のいずれかの方法で設定します。

  • robots meta タグ
  • HTTP ヘッダー

robots meta タグ

head セクションの robots meta タグとして indexifembedded を設定できます。

<meta name="googlebot" content="noindex" />
<meta name="googlebot" content="indexifembedded" />

もしくは、noindexindexifembedded をまとめて記述することもできます。

<meta name="googlebot" content="noindex,indexifembedded" />

📝すずき注①: 通常 indexifembeddednoindex と併用する
📝すずき注②: 公式アナウンスでは content ではなく value が使われている。どちらも Google はサポートするとのこと(とはいえ、meta タグで value が使われるのを僕は見たことがない)。【UPDATE (2022/01/25)】content に修正された。

HTTP ヘッダー

HTTP ヘッダーの X-Robots-Tag でも indexifembedded を構成できます。

X-Robots-Tag: googlebot:noindex
X-Robots-Tag: googlebot:indexifembedded

まとめることもできます。

X-Robots-Tag: googlebot:noindex,indexifembedded

なお、indexifembedded タグをサポートする検索エンジンは現状では Google だけです。
そのため、googlebot を明示的に指定しています。

indexifembedded を使う場面

indexifembedded タグの働きと設定方法は理解できたでしょうか?

問題は、使う場面です。
まったく思い付きません💦

ジョンはこんなふうに言ってます。

一般的な使用事例は(新しいので「一般的」というものはまだないが)、ウィジェットや埋め込みコンテンツだろうと思う。埋め込み専用の URL を与えられているもののインデックスさせたくなくて、それでも埋め込んでいるページがインデックスに利用するのは許可したい場合だ。たとえば、動画かな。

たとえば、YouTube は、埋め込み専用の URL を各動画に割り当てています。

<iframe width="560" height="315" src="https://www.youtube.com/embed/aS05Osvu8ys" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

YouTube の場合は、通常の動画公開ページに向けて rel="canonical" を設定することで埋め込み専用 URL がインデックスされるのを防いでいます。
rel="canonical" の代わりに、indexifembeddednoindex を使うことでも、インデックスさせることなく、かつ埋め込まれたページではインデックス対象にして、埋め込み用コードを発行することができますかね。

いまいち、僕にはしっくりきません🥴

なんでも、コンテンツを発行しているそのページはインデックスさせたくないけれど、埋め込まれた先のページではインデックスさせたいメディア パブリッシャーがいるんだそうです。
検索結果の多様性を確保するために、この新しい仕組みを Google は導入したとかなんとか。

少なくとも、indexifembedded タグは、ほかのサイト/ページで埋め込まれることを想定したコンテンツを公開しているサイトが利用するものと言えそうです。
利用価値を見出すサイトはごく限られるでしょう。