私は、AngularJSを使用して100%動作するSPA(シングルページアプリケーション)プロジェクトを作成しました。そのすべてのコンテンツは、クライアント側でJavaScriptを介して動的に生成されます。ご存知のように、これはクロールできないことを意味し、HTMLスナップショットを生成するためにヘッドレスブラウザーを使用する必要はありません。コードを重複させることなく、ユーザーエージェントに応じてサーバー側で生成できます。
検索エンジンを欺いたり、異なるデータを配信したりするつもりはありませんが、完全に読みやすいページを、簡素化されたHTMLレイアウトでSE向けに配信しようとしています。
私の質問は、異なるレイアウトまたはHTMLスナップショットを生成して検索エンジンに配信した(ただし、実際の実際のデータ/コンテンツを同じにした)場合、クローキングと見なされますか、それともSEOに違反しますか?
Googleのウェブマスターヘルプセンターやインターネット上のその他のソースで、実際の正確な回答なしに多くの情報を読みました。
クロール可能なAJAX を実装する必要があります。
<meta name="fragment" content="!">
を含めますwww.example.com/?_escaped_fragment_=
でHTMLスナップショットを利用可能にしますDO NOTスナップショットの決定は、ユーザーエージェントに基づいて行います。 Googlebotは、ユーザーがページを表示およびレンダリングする方法でページを表示およびレンダリングできるようにしたいと考えています(スクリーンショットなど)。ユーザーエージェントに基づいて異なるコンテンツを提供isクローキングと見なされます。
メタタグとパラメーターは、Googleが承認した、単一ページアプリケーションのHTMLスナップショットを提供する方法です。
参照は今覚えていませんが、Googleは気にしません。実際、彼らはAngularドキュメントでこれを(ちょっと)自分で行います。これらは異なるバージョンのHTMLをGoogleにレンダリングします(たとえば、すべての通常のナビゲーションがありません)。
この問題に関するすべてのSEO記事は、この手法の使用に関するものでもあります(phantomJSはサイトをクロールし、HTML結果を検索エンジンに送信します。Googleからの遅延ペナルティを回避するために、クロールが事前にキャッシュされることもあります)。
アプリ用にこれを行うホスト/クラウドサービスもあるため、ほとんどのセットアップを行う必要はありません。