[対象: 中級]
ウェブサイトでのJavaScriptの利用についてGoogleのJohn Mueller(ジョン・ミューラー)氏が公式ヘルプフォーラムで与えてくれたアドバイスを、この記事では紹介します。
高度なJavaScriptを実装したところ、Googleのクロールとインデックスに支障が出てしまったサイト管理者に対してのコメントです。
JavaScript/Ajaxによって生成されるコンテンツをGooglebotが取得できなかったためにトラブルが発生しました。
また対処策として、Googlebotだけが見ることができる、クロール可能な別のコンテンツを準備することも検討していました。
John Mueller氏によるJavaScript利用へのアドバイス
JavaScriptなしでもうまく動く代替バージョンを常に持っていたほうがいい。
またそのページが何についてなのかを理解できるような、少なくとも最低限の量のユニークなコンテンツも載せておくべきだ。そういうコンテンツがあれば、JavaScriptを使っていないユーザーでも見られるし検索エンジンも見てインデックスできるだろう。
JavaScriptをだんだん上手に理解できるようにGoogleはなっているが、それでもページにも直接何かを提供しておいたほうがいい。
検索エンジンに対して異なるコンテンツを提供したらクローキングとしてみなされ、ウェブマスター向けガイドラインの違反になるだろう。やらないでほしい。
使われているのを私が見たことがある変化形の1つは、最初の読み込みで完全なコンテンツを提供して、それからJavaScriptを実行するというやり方だ。この方法だと、すべてのユーザー(と検索エンジン、JavaScriptをサポートしていないブラウザ)が完全なコンテンツをすぐに取得できるだろう。
JavaScriptをサポートしているユーザーはその後JavaScriptを使いながらサイトのなかを閲覧できる。しかしそのサイトは、全体として他のすべてのユーザーにも同じようにきちんと機能する。
JSなしの最低限のコンテンツを提供する
Mueller氏のアドバイスを簡潔にまとめると次のようになります。
- JavaScriptを実行しなくてもそのページの内容がわかる最小限のコンテンツを必ず準備しておく
- ユーザーとGooglebotに異なるコンテンツを見せてはいけない
1つ目は、一般的には純粋な“テキスト”コンテンツになるでしょうか。
テキストであればJavaScriptにはまったく依存しませんね。
2つ目は、説明不要かと思います。
Googlebotだけに見せるコンテンツが存在するとクローキングに相当してしまうことがあります。
GooglebotのJavaScript理解に100%頼らない
JavaScriptを理解する能力が向上していることを公式ブログでつい最近Googleはアピールしました。
しかし下のようにも注意しています。
- 常に有効なのは、JavaScript 非対応の環境にも対応しておくことです。この方法を使えば、ユーザーのブラウザが互換性のある JavaScript を実装していなくてもコンテンツを表示できます。JavaScript が無効またはオフになっていても、JavaScript をまだ実行できない検索エンジンでも大丈夫です。
- 場合によっては、JavaScript が複雑すぎたり特殊すぎたりして、Google で実行できないこともあります。このような場合は、ページを完全に正しくレンダリングすることはできません。
JavaScriptを格段に上手に処理できるようになってきているとはいえ、100%頼れるほど完璧ということではありません。
JavaScriptのリンクくらいなら難なく読めるでしょうが、高度なJavaScript、たとえばLazy Loadの処理はまだ得意でありませんでした。
ミューラー氏が言うようにJavaScriptが機能しなかった時の代替手段が必要な場面が依然として多そうです。
実装しているJavaScriptがGooglebotに対してもうまく動いているかは、Fetch as Googleのレンダリング診断で確認しておきましょう。