2

Googleクロール担当者は、ウェブサイトのコンテンツをインデックス登録するために、SPAウェブサイトでJavaScriptを実行できます。しかし、ソーシャルネットワーク(Twitter、Facebookなど)はそうではありません。インデックス作成時にソーシャルネットワークでJavaScriptを実行できますか?

ちなみに、AngularJS(バージョン1.xのため、角度ユニバーサルはありません)を使用しているthisウェブサイトを見ました。これは、ルーティングを使用し、すべてのメタタグがこの(ページのソースに他の人を見ることができる)のようなものです:

<title>{{$meta.title}}</title> 

しかし、ソーシャルネットワークは(Twitterや電報メッセンジャーでテスト)それらをレンダリングすることができます。

これはどのように考えられますか?ソーシャルネットワークはJavaScriptを実行しますか?

+0

あなたの所見は正しいですか?あなたがする必要があるのは、ソーシャルネットワークのユーザーエージェントを特定して、ページのレンダリングバージョン、またはOpen Graphタグを使用して単純化した構造を表示することです(ただし、**ソーシャルネットワーククローラー**のみがGoogleBotには適用されません) ) –

+0

@AlonEitanどうすればいいですか? –

答えて

3

残念ながら、ソーシャルネットワークではまだSPAページでjavascriptが実行されません。

Facebookのクローラをシミュレートし、リンクしているサイトが何をしているのかを確認する簡単なテストを行うことができます。 User-Agentがソーシャルクローラーの1つに接続すると、ページに別の応答が返されるようです(例:facebookexternalhit/1.1 for Facebook)。

あなたのターミナルで次のコマンドを実行して、自分でそれを確認することができます。

curl -A "facebookexternalhit/1.1" <page address> 

あなたは返します、それは、サーバー側でレンダリングするように見える結果をリンクされたページのための:

レスポンスをクロームのUser-Agent:FacebookのクローラのUser-Agent用

[...] 
<meta name="description" content="{{$meta.description}}"> 
[...] 

応答: 、実際のブラウザを使用してページをレンダリングするHTML出力を保存し、クローラのための「キャッシュされた」バージョンを作成 - 角度1.xのは、別の方法があるレンダリングサーバ側をサポートしていない場合であっても

[...] 
<meta name="description" content="Login4 is a beautiful Login component for your Ionic app. This template contains Intro, Walkthrough, Login and Sign up screens."> 
[...] 

。 HTTPサーバーがクローラーのUser-Agentを認識すると、別のディレクトリーからファイルを応答として送信します。

+0

非常に良い説明。ありがとう。私はカールでテストしました。 Facebookのクローラの場合、レンダリングして結果を表示します。これを行うためのチュートリアルはありますか?答えの最後にあなたが言いましたか? –

+0

@vahidnajafi私はこれまでのようなことをしてきたので、いくつかのドキュメントを提供し、サーバーの設定とそれを自動的に作成することができます:) –

+0

可能であれば、私はそれを感謝します。私に何ができる? –

関連する問題