Google、JavaScript SEOドキュメントを更新。「noindex」のJS制御はやはり非推奨?

Googleは先日、Search Centralのドキュメント「JavaScript SEOの基本を理解する」内の記述を更新しました。
特に注目すべき変更点は、「JavaScript実行前にnoindexタグが見つかった場合のGooglebotの挙動」に関する説明です。
主な変更点
これまでGoogleは、サーバーから返された初期のHTML(Raw HTML)にnoindexが含まれている場合、「GooglebotはレンダリングやJavaScriptの実行をスキップする」と断言していました。
しかし、今回の更新で表現が以下のように変わりました。
- 変更前
GooglebotはレンダリングとJavaScriptの実行をスキップします。ページからタグが削除されることはありません。
→JSで後からnoindexを消しても無駄 - 変更後
GooglebotはレンダリングとJavaScriptの実行をスキップする場合があります。JavaScriptを使用してタグを変更または削除しても、期待どおりに動作しないことがあります。
→JSで消せるかもしれないが、確実ではない
何が変わったのか?
「スキップする」という断定が、「スキップする場合がある」という可能性に変更されました。
これは、Googlebotの能力が向上し、実際にはnoindexが付いているページでもJavaScriptを実行・レンダリングしてしまうケースが確認されているため、ドキュメントを事実に即した形に修正したものと考えられます。
推奨は「サーバーサイド」一択
表現が柔らかくなったからといって、「JavaScriptでnoindexを制御しても良い」と解釈するのは危険です。
Googleの公式見解としては、依然として以下のリスクが強調されています。
- 確実性がない
「期待どおりに動作しないことがあります」という記述の通り、Googlebotがレンダリング前に処理を止めてしまえば、JavaScriptでいくらnoindexを削除してもインデックスされません。 - 運任せになる
サイトの負荷状況やクロールバジェットの都合で、レンダリングがスキップされる可能性は常にあります。
結論として、インデックスさせたいページであれば、サーバーから返す最初のHTMLには絶対にnoindexを含めない方が良いと言えます。
「最初はnoindexでページを表示し、JavaScriptで条件判定をしてからnoindexを削除する」という実装は、SEOにおいて極めてハイリスクです。
インデックスの可否は、クライアントサイド(ブラウザ/Googlebot側)のJS処理に頼るのではなく、サーバーサイドで正しく出し分けるのが最良の手法です。