web-dev-qa-db-ja.com

Googlebotやその他の検索エンジンクローラーは、JavaScriptによるページの読み込み後に要素が非表示になっているかどうかを検出できますか?

したがって、Googleは隠された要素を嫌うことを知っています。しかし、私は興味があります、要素が通常静的な形式でDOMに存在するが、ページの読み込み後、JavaScriptによって隠されている場合はどうでしょうか?

私の知る限り、Googlebot(およびその他のボット)はJavaScriptを解釈できないため、この改ざんを検出するべきではありませんか?

また、明らかなキーワードスタッフィングやスパムではなく、関連するユーザーイベントでページの他の部分に挿入される隠しテキストである可能性が高い場合を考えます。

3
The Law

Googlebotはページをレンダリングし、CSSの適用やJavaScriptの実行など、ロード時にユーザーが見るようにページを表示します。 GoogleはCSSまたはJavaScriptを使用して非表示のテキストを検出します。

Googleは、ユーザーが表示できないキーワードリッチテキストを非表示にするとサイトを罰します。彼らはプラクティスを呼び出します cloaking :検索エンジンボットにコンテンツを表示しますが、ユーザーには表示しません。

ユーザーインタラクションを介して表示できるテキストを非表示にしても、ペナルティは発生しません。最初はテキストを非表示にするが、ユーザーが必要なときに表示する正当な理由は数多くあります。カルーセル、ライトボックス、フライアウトなどの一般的なインタラクティブデバイスでは、最初にコンテンツを非表示にする必要があります。

テキストが最初は非表示になっているが、インタラクションを通じてユーザーが表示できる場合、Googleはそのテキスト内の単語をインデックスに登録しないことを選択できます。インデックスを作成する場合、ロード時にユーザーに表示される単語よりも関連性の重みが低くなる場合があります。

ここ数年、Googlebotがページをレンダリングできるようになったため、GoogleはAJAXに関するガイドラインを変更しました。以前は、クロール可能なAJAX Webサイトが必要な場合は、HTMLスナップショットを使用した "ハッシュバン" URL を実装する必要がありました。 Googleは、ページのコンテンツが変更されたときにURLを変更するための「プッシュ状態」を実装するAJAX Webサイトをクロールできるようになりました。プッシュ状態は、クライアント側のJavaScriptを模倣したサーバー側のHTML生成を必要としないため、HTMLスナップショットよりも実装がはるかに簡単です。

GoogleはAJAXを適切にクロールできるようになりましたが、AJAXサイトのインデックスを適切に作成するには、コンテンツごとに異なるURLを提供する必要があります。 Googleには検索に一致するコンテンツにディープリンクする方法がないため、URLが変更されない単一ページのアプリケーションは依然としてSEOフレンドリーではありません。

3