サーバーからajaxによってロードされたページにいくつかのdivがありますが、シナリオでは、Googleおよび他の検索エンジンはこのdivのコンテンツにインデックスを付けません。私が見る唯一の解決策は、ページが検索ロボットによって取得され、ajax なしで完全なページが返されることを認識することです。1) もっと簡単な方法はありますか? 2) 人間とロボットの違いは?
3 に答える
また、サイトマップに ajax 以外のバージョンへのリンクを提供することもできます。そのファイルを (ロボットに) 提供するときは、ユーザーに見てもらいたい「実際の」ページへの正規のリンク要素が含まれていることを確認してください。 :
<html>
<head>
[...]
<link rel="canonical" href="YOUR_CANONICAL_URL_HERE" />
[...]
</head>
<body>
[...]
YOUR NON_AJAX_CONTENT_HERE
</body>
</html>
編集: この解決策が適切でない場合 (以下のいくつかのコメントは、この解決策が非標準であり、「ビッグスリー」によってのみサポートされていることを指摘しています)、非 ajax バージョンを作成する必要があるかどうかを再考する必要がある場合があります。標準的なソリューションであり、AJAX 経由で情報を取得する代わりに、JavaScript を使用して情報を表示/非表示にします。フェッチされるのがビジネス上重要な情報である場合、すべてのユーザーが JavaScript を有効にしているわけではないため、この情報を表示できないことに注意する必要があります。この場合、プログレッシブ エンハンスメント アプローチの方が適している可能性があります。
クローラーとは異なるものをユーザーに表示しようとすると、Google はイライラします。クエリまたは AJAX を必要とするものは何でも単純にキャッシュし、AJAX を使用して変更する必要があるものだけを置き換えることをお勧めします。AJAX だけが提供できるこの div の内容については、まだ実際には説明していません。AJAX なしでそれができるのであれば、SEO だけでなく、点字リーダー、モバイル デバイス、JavaScript を使用しない人にも適しているはずです。
でサイトマップを指定できますrobots.txt
。そのサイトマップは、静的ページのリストである必要があります。同じ URL で別のページを Google に提供するべきではありません。そのため、静的コンテンツと動的コンテンツを含む別の URL を用意する必要があります。通常、静的 URL は.../blog/03/09/i-bought-a-puppy
で、動的 URL は のようなもの.../search/puppy
です。