web-dev-qa-db-ja.com

GoogleがSPAを使用して一部のサイトを適切に取得してレンダリングできますが、他のサイトはレンダリングできないのはなぜですか?

2つのWebサイトがあり、どちらも単一ページのアプリフレームワークを使用しています。 1つはReactを使用し、もう1つはAngularを使用します。どちらもサーバー側のレンダリングは行われていません。

Search Consoleで「Googleとして取得してレンダリング」ツールを実行すると、Reactが期待どおりに表示されます(検索を実行することで、インデックスが作成されていることを確認することもできます)。

Angularに対して同じことを行うと、Googleがページ上の情報の多くをキャプチャしていないことがわかります。

wah woh

ここで、一方が適切にレンダリングされ、もう一方がレンダリングされない要因は何ですか?単一ページのフレームワークで作成されたサイトがGoogleによって正しくクロールされるようにするにはどうすればよいですか?

2
ccnokes

一般に、1つのWebサイトの詳細に関する具体的な質問はここでは閉じられているため、一般的なフレームワークの観点からこれに答えます。

どのエンジンでもデータを正常にレンダリングできるようにするには、できるだけ基本的でわかりやすいものにする必要があります。初期の頃は、検索エンジンはJavascriptコードをレンダリングできませんでした。つまり、Webサイトが完全にJavaScriptで実行された場合、javascriptが有効になっていないクライアントには何も表示されません。

ほとんどすべてのツールがページ(少なくともテキスト)をレンダリングできるようにするためにしたいことは、基本的なHTML経由でアクセスできるようにすることです。

旧式のlynxブラウザーを含むできるだけ多くのブラウザーで(コードの生成に使用されたフレームワークに関係なく)ページをテストすることをお勧めします。

私はグーグルがいくつかのJavascriptを処理することを理解していますが、確かに制限されています。このため、Javascriptを使用してページをレンダリングする必要がある場合は、Internet Explorer 7以前のブラウザなどでサポートできるスクリプトのレベルを使用してください。

1
Mike