Angular & SEO – Making Angular 6 Single-Page Web Apps Search-Engine Friendly

以下のチュートリアルでは、Angular Universal でサーバーサイドレンダリングを使用することにより、あなたの Angular 6 アプリケーションでその制限を取り除くための、最も簡単なアプローチを見ていきたいと思います。

始めるにあたって、まず、次の手順で新しい Angular アプリケーションをセットアップします。

新しい Angular アプリケーションをセットアップするには、Angular CLI を使用します。 Angular CLIをシステムにインストールするには、Node.NETを使用してください。js Package Manager を使用して、コマンド ラインで次のようにインストールします:

$ npm install -g @angular/cli

Angular CLI を正常にインストールすると、新しいコマンド ng を使用して新しい Angular プロジェクトをゼロからセットアップできるようになります。

$ ng new ngseo --routing

new オプションで、新しい Angular プロジェクトを作成することを指示し、ngseo は新しいプロジェクトの名前、そしてオプション – routing を使用して、基本ルーティング設定もプロジェクトに追加されることを確認しています。

プロジェクトのセットアップに成功したら、新しく作成したプロジェクト フォルダに移動します。

$ cd ngseo

そして、次の方法で Angular CLI を使用して開発 Web サーバーを再度開始します。

How Crawlers See Single-Page Web Apps

Angular アプリケーションが稼働したので、検索エンジンのクローラーが当社のウェブサイトを見ているか調査してみましょう。 コマンド ライン ツールの curl を使用してサイトにアクセスすると、良い印象を受けます:

$ curl localhost:4200

戻ってくる結果は次のようになります。

ここで、ウェブサイトのメイン コンテンツがその HTML 文書の一部ではないことが分かります。 その代わりに、body セクション内にプレースホルダー要素 <app-root> があることがわかります。 これは、サイドのJavaScriptコードが実行されるときに、Angularがウェブサイトのコンテンツを挿入していることを示しています。

Angular Universal For Server-Side Rendering

では、その問題の解決策は何でしょうか。 そう、それはサーバーサイドレンダリング(SSR)です。 サーバー サイド レンダリングが実行されると、Angular アプリケーションの JavaScript コードはすでにサーバー上で実行され、完全な HTML 構造とコンテンツが Web クローラーにも提供されます。

Angular アプリケーションのサーバー サイド レンダリングを可能にするテクノロジーは Angular Universal と呼ばれています。 Angular Universal は、サーバー サイド レンダリングと呼ばれるプロセスを通じて、サーバー上に静的なアプリケーション ページを生成します。

Angular Universal の使用方法の詳細については、https://angular.io/guide/universal に記載されています。 しかし、Angular Universalを非常に簡単に追加できる別の方法があります。それは、@ng-toolkit/universalパッケージを使用することです。

Adding Angular Universal With @ng-toolkit/universal To Make Your Angular Application Search-Engine Friendly

@ng-toolkit/universal パッケージは、次の方法でもう一度 ng コマンドを使用してプロジェクトに追加します:

$ ng add @ng-toolkit/universal

パッケージを追加した後に package.json を開き、依存セクションの webpack-cli パッケージが少なくともバージョン 3 でリストされているかどうか確認することです。1:

"webpack-cli": "^3.1.0"

そうでない場合は、このエントリを適宜変更して、次のコマンドを実行します:

$ npm install

次に、ng serve -o を実行する代わりに、次のコマンドを実行します。

$ npm run build:prod

and

$ npm run server

サーバは localhost:8080 で起動し、ブラウザでその URL にアクセスしていれば、デフォルトの angular アプリケーションのウェブサイトを再び表示できるようになるはずです。

Curl を使用して Web サイトに再度アクセスしてみましょう。

$ curl localhost:8080

出力は、次のスクリーンショットのようになるはずです。

今回は HTML サイトのコンテンツ全体が含まれています。 その理由は、HTML 側が構築プロセス (サーバー側) の一部としてレンダリングされ、クライアント側で JavaScript コードを実行する必要なく利用できるようになったからです。 したがって、検索エンジンのクローラーはサイドのコンテンツを見つけることができ、検索結果に正しく追加されることを確認できます。

Conclusion

デフォルトで Angular はクライアント側レンダリングを使用しますが、これは Web サイトが検索エンジンの結果に表示されるべき場合に問題です。 解決策は、アプリケーションをサーバー側でレンダリングし、検索エンジンのクローラーが容易に解釈できる最終的な HTML 要素を生成することです。 既存の Angular アプリケーションに Angular Universal を追加するには、@ng-toolkit/universal パッケージを使用すると非常に簡単です。

この投稿は CodingTheSmartWay.com に最初に掲載されました。 Angular 6を含む)、そしてAngular.jsの後継で素晴らしいリアクティブなWebアプリケーションを構築する
Go To Course …

免責事項:この投稿にはアフィリエイトリンクが含まれています、つまり、製品リンクの1つをクリックすると、私は小さなコミッションを受け取ります。 これは、このブログをサポートするのに役立ちます!