0

私はこのセットアップを持っています:

  • Javascript を使用して HTML コンテンツを生成する単一ページ アプリ。JS 以外のユーザーに表示される HTML はありません。
  • ハッシュバングなしで URL を処理するための History.js (pushState)。そのため、「domain.com」のアプリは「page-id」の動的コンテンツを読み込んで、URL を「domain.com/page-id」に更新できます。また、ダイレクト URL は、このように Javascript を介してうまく機能します。

問題は、Google がこの方法で Javascript を実行できないことです。基本的に、Google が知る限り、コンテンツはまったくありません。

検索ボットのみにキャッシュされたコンテンツを提供することを考えていました。したがって、検索ボットが「domain.com/page-id」にヒットすると、キャッシュされたコンテンツが読み込まれますが、ユーザーが同じページを読み込むと、通常の (Javascript が挿入された) コンテンツが表示されます。

これに対する提案された解決策は、ハッシュバングを使用することです。これにより、Google はこれらの URL を「escaped_fragment」文字列を使用して代替 URL に自動的に変換できます。サーバー側では、これらの代替 URL をキャッシュされたコンテンツにリダイレクトできます。ハッシュバングを使用しないため、これは機能しません。

理論的にはすべて揃っています。sitemap.xml を生成でき、キャッシュされた HTML コンテンツを生成できますが、パズルのピースが 1 つ欠けています。

私の質問は、おそらくこれです:検索ボット アクセスを除外するにはどうすればよいでしょうか?ユーザーに通常の JS 対応アプリを提供しながら、これらのボットにキャッシュされたページを提供できるようにするにはどうすればよいでしょうか?

1 つのアイデアは、任意のボットの .htaccess の「HTTP_USER_AGENT」文字列を解析することでしたが、これは可能であり、クローキングとは見なされませんか? 他にもっとスマートな方法はありますか?

4

1 に答える 1