私は、backbone.jsとJSONとして渡され、バックボーン経由でロードされるほとんどのコンテンツで構築された、かなりJavaScriptが重いWebサイトを作成したいと考えています。私は、通常のユーザーにプレーンHTML(テキスト、画像、すべて)を検索エンジンボットとjsフロントエンドバージョンに提供する方法を使用してペナルティを科される可能性のあるWebサイトについて、いくつかのアドバイスや意見が必要でした。
これは私のサイトの私の基本計画です:
私は、バックボーンjsで最後の3/4をロードした後、ページの約1/4だけを提供するhtmlであるページへの最初のリクエストを行う予定です。したがって、javascriptを使用しないユーザーは、「少し」のエクスペリエンスを得ることができます。
その新しいユーザーが訪問し、jsを持っていることが検出されると、Cookieがマシンに保存され、その後のリクエストはAJAXのみになります。例
If (AJAX || HasJSCookie) {
// Pass JSON
}
検索エンジンサーバーコンテンツ:
たとえば、Googleボットが検出された場合、AJAXを介したロードのすべてのエクスペリエンスは削除され、同じコンテンツがすべてhtmlでサーバーされます。
検索エンジンがコンテンツの最初の1/4のインデックスを作成できるようにすることを考えましたが、内部リンクとコンテンツのすべてのビットをピックアップすることを検討しているので、検索エンジンにコンテンツ全体を提供する方が良いと思いました。
ユーザーエージェントのリストを検出し、それがボットかどうかを知ることで、これを行う予定です。
If (Bot) {
//server plain html
}
さらに、完全なAJAXにもかかわらずWebサイト全体のクリーンURLを作成する予定です。したがって、AJAXコンテンツをwww.example.com/#/pageに提供し、通常のhtmlをwww.example.com/pageに提供するのは私たちの質問。 HTML 5プッシュ状態が存在するなどのテクノロジーがある場合は、#を使用する習慣を避けてください。
だから私の質問は、私のウェブサイトがペナルティを受ける可能性が高いかどうかについて、大衆の意見を実際に尋ねているだけですか?
そして、「noscript」メソッドを回避する代替案を提案しますか
コンテンツが同じである限り、ランキングを操作する目的で検索エンジンに異なるコンテンツを提供するためにクローキングを使用する場合にのみクローキングが問題になるため、これはまったく問題ありません。
しかし、あなたはそれを間違っています。静的コンテンツを提供する検索エンジンボットを探してはいけません。静的コンテンツをJavaScriptを使用していないeverybodyに提供する必要があります。 プログレッシブエンハンスメント と呼ばれます。 Webサイトにアクセスするすべての訪問者がJavaScriptをサポートしていないと想定する必要があります。次に、もしそうなら、JavaScriptを使用してコンテンツを動的に配信することにより、エクスペリエンスを向上させます。
Googleは実際にこのためのメカニズムを提供しています。こちらをご覧ください: https://developers.google.com/webmasters/ajax-crawling/docs/getting-started
アイデアは、サイトにAJAX "注入済み"コンテンツを提供し続けることができるということですが、基本的にはGoogleがそれを取得する手段と、その方法を知らせる一種のAPIを提供していますそれを得る。
John Condeは非常に正しいですが、GoogleでさえJavascriptがWeb上で不可欠になりつつあり、インジェクトされたコンテンツのインデックスを作成する手段を導入していることを認識していると思います。