GoogleのJohn Mueller氏とMartin Splitt氏が動画シリーズ「Ask Google Webmasters」のためにチームを組み、JavaScript SEOに関する質問に答えました。
彼らはそれぞれテクニカルな質問に、それぞれ独自の洞察を交えて回答しています。
ここでは、各質問と回答の簡単な要約を紹介します。
目次(クリックしてジャンプ)
質問1:古いアセットをどうするか?
「Rails Asset Pipelineを使用してキャッシュする場合、古いアセットにどのステータスコードを割り当てますか? Googlebotは、これらの古いアセットをクロールしますが、これは現在404になっています。代わりに410を使用しますか?それとも古いアセットを数か月間存続させますか?」
一般的に、古いアセットは、クロールされなくなるまで保持する必要があります。最終的に、GoogleはHTMLコンテンツを再クロールし、新しいアセットを取得します。
古いアセットを404にすると、レンダリングが壊れてしまう可能性がありますが、これは避けるべきです。
質問2:無関係な要素
「プリレンダリングでは、無関係な要素を置換またはスキップできますか?つまり、JavaScriptによって生成されたsvgの棒グラフ?」
Googlebotがコンテンツ全体を見ることができるように、すべてのものをプリレンダリングに含めるか、少なくともできるだけ多くの要素を含める必要があります。
質問3:書き換えられたタイトルタグ
「あなたのサイトが、Web訪問者に通知するためにタイトルタグを書き換えるチャットファンクションを持っている場合、どうやってあなたまたはアプリサプライヤーは、GoogleがJSの書き直しバージョンのタイトルタグをインデックスするのを防ぐことができますか?」
つまり、JavaScriptによって動的に書き換えられたタイトルタグをGoogleがインデックスすることを防ぐことはできません。
この場合、ユーザーとの対話の背後にあるチャットを遅らせることで、この問題を回避できます。そうすれば、ユーザーはチャットボタンをクリックしてタイトルタグを変更しなければならなくなります。Googlebotは誰ともやりとりしないので、書き直されたタイトルタグを見ることはありません。
質問4:レンダリング出力内のJavaScript
「プリレンダリングで、JavaScriptはまだ内部にありますか?わずかなコンテンツレイアウトの変更を生成するJavaScriptですが、AJAX要求は生成しません。」
はい、プリレンダリングに関しては、レンダリング出力内でJavaScriptを使用できます。ユーザーエクスペリエンスの観点からこれを行うことは理にかなっているので、事前にレンダリングされたページからJSを削除する必要はありません。
質問5:プリレンダリングまたはダイナミックレンダリングは中止されますか?
「プリレンダリングやダイナミックレンダリングがなくなることはありますか?」
ダイナミックレンダリングは、今後あまり必要とされない回避策であるため、いずれなくなる可能性があります。
一方、サーバ側のレンダリングとプリレンダリングは、ユーザ(とクローラー)がより速くコンテンツを受信できるため、長期的にはより便利です。
詳細は動画で確認ください。
【参考】