0

これまでのところ、私は prerender.io を使用して、angularjs Web サイトを seo フレンドリーにしています。ハッシュバン (website.com/#!) を含む URL に関しては問題なく動作しました。

現在、私は自分のウェブサイトを html5mode に移行させています。これは、URL に hashbangs が含まれておらず、よりきれいに見えます。しかし、html5のurlに行ってもprerender.ioがうまく動きません。

また、Google の新しいテクノロジーにより、エンジンが Javascript フレームワークの Web サイトを自動的にレンダリングできると主張する Google の記事を思いつきました ( https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html )。ただし、Google Search Console で「Fetch as Google」ツールを使用しているためです。レンダリングが非常に悪く、私のタイトルとメタディスクリプションは、レンダリングされない angularjs 構文 ({{seo.tile}} または {{seo.desc}}) を吐き出します。

遭遇した問題をどこから始めて修正すべきか、私はかなり迷っています。私は prerender.io から離れようとしましたが、これは必ずしも必要ではないと思うからです。

まとまりのない投稿と質問で申し訳ありません。以下の質問を明確にして結び付けてみましょう。

1) angularjs について Google ボットに教える必要はありますか?

2) AngularJS+ExpressJS SEO の最も安定したベスト プラクティスは何ですか? これには、不安定で簡単にクラッシュする方法を試したくありません。

どうぞよろしくお願いいたします。

4

1 に答える 1

1

EDIT この記事を書いている時点では、babel などの JavaScript コンパイラの使用について知りませんでした。ここでは、webpack または gulp を使用して ES6 コードを安定したコードにコンパイルし、コードが期待どおりに記述され、サードパーティのツールやパッケージでうまく動作するようにしてください。

ES6の時代です!!!


最後に、私は自分の問題を解決しました。将来の参考のために、また私が経験したサンプルの問題に苦労している他の人のために、私が見つけたものを残しておきます。

まず第一に、私が非常に混乱した理由は、phantomjs で html スナップショットを取得しても、{{seo.title}} や . 非常にぎこちない理由は、angularjs モジュール全体でES6 構文を使用していたためです。phantomjs は ES6 構文で完全に採用されていないため、angularjs モジュールの解釈に失敗し、コンパイルされていない angularjs で html を吐き出しました... このことから、本番環境で ES6 を実装するのに適した時期ではないという予想外の結論に達しました。

第二に、Angularjs のような動的な JavaScript フレームワークを使用してボットが Web サイトを処理できると Google が自信を持って発表したことは当てにできません。phantomjs が機能しても、「Fetch as Google」ツールでは良い結果が得られません。ときどき (実際には非常に頻繁に) 空の html ファイルになることがありました。Ajax クロールは「フォールバック」としてサポートされていますが、より安定した方法であるため、非常に不安定なスマート ボットに頼るのではなく、それを当てにします。

結論として、特にあなたがそれからビジネスをしているなら、アーリーアダプターにならないでください!! angularJS SEO の場合、(1) 非推奨と見なされている場合でも Ajax 呼び出しガイドラインに従います。(2) 本格的なプログラミングには ES6 構文を使用しないでください。

于 2016-11-08T18:19:35.573 に答える