当サイトはアフィリエイト広告を利用しています

【SEO】onLoadイベントで動的に生成したリンクはGoogleクローラーにどう認識・インデックスされるか

駒鳥です。

2017年現在、googlebot は、モダンブラウザと同等のレンダリング処理を行いコンテンツを認識している、ということはすでに広く知られています。

ですが、具体的にどの程度の処理までgooglebotがカバーしていて、どのようにコンテンツが認識されるのか、については正確に公表されているわけではありません。

今回、以下のようなパターンをgooglebotがどのように解釈するのか実際に試してみたので、備忘録としてまとめておこうと思います。
(おそらくマイナーなパターンではありますが。。)

試したのは、
ajaxで取得したjsonを基にリンク(aタグ)を生成した場合、そのリンク先のページはインデックスされるか
です。

スポンサーリンク

はじめに

結論を先に書いておくと、今回試したやり方では、インデックスはされませんでした

詳細を書いていく前に、他でも試されている内容についてご紹介します。

まず、jQueryを使った動的なコンテンツの生成を行った場合に、Googlebotがどのようにコンテンツを認識するのかについて。
これは、こちらもページで実験されており、わかりやすいです。

GooglebotによるJavaScriptの実行&読み込みを検証

簡単にまとめると、

実験内容
onLoad(jQueryの.load())でajaxにてhtmlを取得し、呼び出し元ページに組み込む

結果
googlebotはonLoad処理を実行し、ajax処理でhtmlを読み込む
読み込まれたhtmlは呼び出し元ページのコンテンツとして認識される
呼び出し先のページはインデックスされない

ということが言えそうです。

確認内容と結果

さて、ここからが僕の試した内容です。
上記の記事を前提に、今回は以下を試しました。

ページ読み込み時にajaxにてjsonを取得し、それを基にリンク(aタグ)を生成し、呼び出し元ページに組み込む。
その際、生成したリンクはどのように扱われるのかを確認しました。

対象となるページの処理手順は、おおよそ以下の通りです。

  1. onLoadイベントの処理で、jQueryを用いてajax通信を行い、jsonをGETで取得
  2. 取得したjsonを基に、URLを組み立て、aタグのDOMを複数生成。
  3. 生成したDOMをページ内に組み込む。

生成するリンクは、パラメータのみが異なります。
ajaxで取得してくるjsonは、そのパラメータが記載されています。

jsonの例

[
  {
    id : 111,
    text: “あああ”
  },
  {
    id : 222,
    text: “いいい”
  }
]

生成するURL(実際のURLとは異なります)

  • http://komadoribook.com/test?id=111
  • http://komadoribook.com/test?id=222

確認観点は以下の通り。

  1. ajax処理が実行され、aタグが生成されるか
  2. 生成されたaタグの先のページはインデックスされるか

まず、1番についてです。
Fetch as Google で確認したところ、対象ページでaタグは生成されていました。

FaGのレンダリングは、実際のgooglebotと同等のものと考えてよいため、実際にコンテンツとして認識されている、と結論付けてよいでしょう。

参考:Fetch as Googleは、実物のGooglebotと同じレンダリングでページを表示する

次に2番について。
こちらは、リンク先のページやドメインでsite:を付けてチェックしてみましたが、インデックスされていませんでした。

また、リンク先のパス(例でいうとhttp://komadoribook.com/test)のアクセスログを確認しましたが、生成されたURL(http://komadoribook.com/test?id=111 など)に対してgooglebotからのアクセスを確認することができませんでした。

スポンサーリンク

まとめ

これらのことから、今回の実験では以下のように結論付けています。

onLoad処理内で動的に生成したaタグのリンクについて、その存在はgooglebotにレンダリングされ、認識される。
ただし、そのリンク先のページについてはインデックスされない。

本当に必要な場合を除き、httpレスポンスとして応答すべき

今回の実験は、実務のなかで、いろいろな制約があって、苦し紛れに実装しています。
その中で今回の知見を得られたので、記事としてまとめています。

状況によっては、ajaxやJSに頼ってしまいがちですが、基本的にはhtmlレスポンスとして応答する方が、Googlebot的には分かりやすいのだと思います。
ユーザービリティとのバランスをとりながら、クローラーにはきちんと認識してもらえるコンテンツを作りましょう。

それでは。

スポンサーリンク

コメント

タイトルとURLをコピーしました