そのような事にならないよう、まずは公開URLをテストしてみましょう。 公開URLのテストは、サイドバーにある「URL検査」からできます。 「URL検査」で検査したいURLを入力すると、以下の画面が出てくるので、「公開URLをテスト」を押しましょう。 既にクロール済みの場合は、「クロール済みのページを表示」を押してもOKです。
テストをした後はクロール済みのページを見てみましょう。 先に述べたボタンを押しても良いですし、サイドバーからは「モバイル ユーザビリティ」→「テスト済みのページを表示」→「スクリーンショット」で辿る事ができます (下図)。※下図ではスクリーンショットは表示されてません。
私はこの「スクリーンショット」が想定通りに表示されていなくて、 その理由は「スクリーンショット」の隣の「その他の情報」でJavaScriptのエラーが出ていました。 そしてなぜエラーが出ていたのかというと…
1. 日本のGooglebotはまだES6に非対応 (少なくともライブテストでは)
エラーが出る原因ですが、まず一番重大なのはライブテストで動いているGooglebotでは、ES6が動かないことでした。 GooglebotがES6をサポートしたと公式宣言されているけど、少なくともテストでは動いていません。 実際のクローラは動くのかも知れないのですが、 原文では既にChromiumが最新バージョンになっていると書いてあるから期待薄かも。非対応と言っても、const, letくらいは動きます。IE11と同レベルくらいかな…。 私はもともとIE11で動くレベル以上はES6は書かないようにしているのですが、それでもいくつか注意点はありました。 例えばJavaScriptって最終行ならセミコロンなしでも実行してくれるんですが、それは駄目。 私はその書き方はしないんですが、コピペしてきたコードがエラーを出してました。 他にもES6の分割代入などの基本的な構文も動いていませんでした。 最初はなんで駄目なのかわからず、またわかってもES6のサポート状況がわからず、何度もライブテストを実行して挙動を確認してしまいました。 公開URLのテストも回数制限があるようなので割とキツイ。
2. GooglebotはJavaScriptがエラーで落ちるときちんとクロールしない
公開URLのテスト結果を見ていてもう1つ重要だと思ったのは、遅延実行されるコードのバグがあった場合に、JavaScript全体の処理が落ちるという事です。 例えばクリックされない限り使われる事のないコードにバグがあった場合、 それだけでエラーが発生し、最初のレンダリングで表示されるべきコンテンツもクロールの結果に表示されませんでした。割と厳しいです。仮にバグがあってもサイト自体は動くケースもあると思うのですが、温情措置はないみたい。 このような仕様がある以上、本当にGooglebotがきちんとクロールしてくれるかは、公開URLのテストで必ずチェックしたほうが良さそうです。 特にJavaScriptの量が多いサイトを運用している方は確認したほうが良いでしょう。
公式宣言を鵜呑みにするのではなく、実際の挙動を見ないと駄目だなあと思いました。 米国でGooglebotの挙動が変わっても日本でそれが適用されるとは限らないですしね。 日本でもいずれは対応すると思いますが、2の特性がある以上、油断はできません。 きちんと確認したほうが良いです。
0 件のコメント:
コメントを投稿