20 アプリの検索エンジンを最適化
検索エンジン最適化(SEO)は、webクローラがアプリケーションのページにアクセスしやすくする様々な手法、Webをクロールするために検索エンジンによって使用されるスクリプトおよび索引付けのためのページの収集をカバーしています。 SEOは、検索結果のインデックス付きページのランキングを増やして、コンテンツの可視性を高めることを目指しています。
多くの場合、サイト・マップを使用してアプリケーションのページのランキングを改善できます。 サイト・マップには、ページのURLがリストされます。これにより、webクローラは、ページのクロールと解析のみに依存することなく、コンテンツを識別できます。 ただし、サイト・マップはwebクローラが索引付け用のページを見つけるのに役立つ場合がありますが、索引付けプロセス自体は単一ページ・アプリケーションにとって理想的ではありません。 これは、RESTコールの結果に基づいてコンテンツがページに動的に追加される場合に特に当てはまります。 このようなシナリオでは、webクローラは、RESTコールが完了し、ページが完全にレンダリングされてからページが索引付けされるまで待つことができない場合があります。 コンテンツを完全にロードする前に索引付けされたページは、検索結果では機能しません。
この問題に対処するために、webクローラがアクセスするVisual Builder "prerenders"ページ。 Googlebot(または他の検索エンジン)からページに対するリクエストを受信すると、そのリクエストはレンダー・サーバーを介してルーティングされ、ページがロードされ、そのページを完全にレンダリングするために必要なJavaScriptが実行されてから、Googlebotにページを戻す前に削除されます。 このように、Googlebotは常に、ソースにJavaScriptがないページのみのインデックス作成用に完全にレンダリングされたページを受け取ります。
レンダリングされたページは、常にキャッシュされるため、同じURLに対して後続のリクエストが行われた直後にページ・マークアップを戻すことができます。 これにより、ページ・ランキングに悪影響を及ぼす可能性のあるページ・ロード時間が短縮されます。 マークアップがまだキャッシュされていない場合は、ページのレンダリング処理に時間がかかる場合があります。 これらのレスポンス時間を最適化するには、アプリケーションのサイト・マップにリストされているURLのレンダー・サーバーのキャッシュをウォームすることをお薦めします。そのため、webクローラは、それらのURLをリクエストするときに常に最速のレスポンスを取得します。
- webアプリケーションの場合は「サイト・マップの作成」。
- 「webアプリケーションのリソースへのサイト・マップの追加」。
- webアプリケーションがデプロイ(または再デプロイ)されると、「アプリのサイト・マップにリストされているURLのキャッシュをウォーム・アップ」 (
vb-prerender-cache-warmGruntタスクを使用)になります。
Webアプリケーションのサイト・マップの作成
サイト・マップは、アプリケーションの代表ページへのURLを含むドキュメントです。 これにより、webクローラがロケーションを特定し、適切にランク付けするために、アプリケーション内の重要なロケーションを確保できます。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://eta.myexample.org/?page=shell</loc>
<lastmod>2023-08-21T16:12:20+03:00</lastmod>
</url>
<url>
<loc>https://eta.myexample.org/?page=shell&shell=bugs&bugs=main-bug</loc>
<lastmod>2023-08-21T16:12:20+03:00</lastmod>
</url>
<url>
<loc>https://eta.myexample.org/?page=shell&shell=tags</loc>
<lastmod>2023-08-21T16:12:20+03:00</lastmod>
</url>
</urlset><url>タグは、ページのURLを指定するために使用されます。 このタグにはいくつかの子タグがありますが、<loc>タグと<lastmod>タグのみがレンダー・サーバーのキャッシュに移入するために使用されます:
<loc>は、ページの実際のURLを指定する必須タグです。<loc>タグの値は、プロトコル(httpsなど)で始まり、webサーバーで必要な場合は末尾のスラッシュで終わる必要があります。 この値は2,048文字未満である必要があります。<lastmod>は、アプリケーション・デプロイメント間でURLの内容が変更された日付を指定する必須タグです。
インデックスを作成する個々のURLがサイト・マップに含まれていることを確認してください。 URLの内容がデプロイメント間で変更される場合(たとえば、ページに他のソースのデータが含まれている場合)には、最新のlastmodエントリも含める必要があります。
サイト・マップの一般的な情報については、https://www.sitemaps.org/protocol.htmlを参照してください。
Webアプリケーションのリソースへのサイト・マップの追加
webアプリケーションのリソースにサイト・マップを追加して、アプリケーションのコンテンツに関するWebクローラ情報を提供できます。
webアプリケーションにサイト・マップを追加するには:
サイト・マップのURLのキャッシュのウォーム
webアプリケーションに、アプリケーションのページ担当へのURLをリストするサイト・マップが含まれている場合は、vb-prerender-cache-warm Gruntタスクを使用して、これらのURLのレンダー・サーバーのキャッシュをウォームできます。そのため、Webクローラは、それらのURLをリクエストするときに可能なかぎり高速にレスポンスします。
vb-prerender-cache-warm Gruntタスクを使用するには、Node.jsとそのパッケージ・マネージャ(npm)をインストールして、ビジュアル・アプリケーションをビルドするようにファイル・システムを設定する必要があります。 必要なツールをインストールしたら、ビジュアル・アプリケーションのソースをローカル・システムに保存する必要があります。 「アプリケーションをローカルでビルド」を参照してください。
vb-prerender-cache-warm Gruntタスクを使用して、サイト・マップ内のURLのキャッシュをウォームするには:
- コマンドライン・インタフェースで、
package.jsonおよびGruntfile.jsファイルを含むローカル・システム上のフォルダに移動します。 npm installを入力して、アプリケーションのビルドに必要なノード依存性を取得します。- キャッシュをウォームするには、コマンドライン・インタフェースに
vb-prerender-cache-warmと入力します。 いくつか例を挙げます。- 再デプロイメント後にキャッシュを最初にウォームするには:
grunt --id=MyApplication --ver=1.0 --sitemap="./webApps/myWebApp/sitemap.xml" --url=http://my.vbinstance.com/ic/builder --clearCache=true vb-prerender-cache-warm - サイト・マップのマイナーな変更後にキャッシュを更新するには:
grunt --id=MyApplication --ver=1.0 --sitemap="./webApps/myWebApp/sitemap.xml" --url=http://my.vbinstance.com/ic/builder vb-prerender-cache-warm
vb-prerender-cache-warmタスクは、起動時にmanifest.jsonファイルを読み取ります。 マニフェスト内のページのタイムスタンプとアプリケーションのサイト・マップを比較し、前回の実行以降に変更されたファイル(または前回の実行で失敗したファイル)でキャッシュをウォームし、実行の詳細を完了時に同じファイルに書き戻します。clearCacheフラグが設定されている場合、タスクが完了すると既存のマニフェストはすべて無視され、上書きされます。前述の例では、最後の操作に関するメタデータが現在のディレクトリのmanifest.jsonに保存されます。 別のマニフェスト・ファイルから保存またはロードするには、--manifestオプションを指定できます:grunt --id=MyApplication --ver=1.0 --sitemap="./webApps/myWebApp/sitemap.xml" --url=http://my.vbinstance.com/ic/builder --manifest="/tmp/manifest.json" vb-prerender-cache-warmサポートされているコマンド行オプションの詳細は、vb-prerender-cache-warmを参照してください。
- 再デプロイメント後にキャッシュを最初にウォームするには:
サイト・マップのビジュアル・アプリケーションのルート・ディレクトリへの移動
webアプリケーション・リソースにサイト・マップを手動で追加する場合、アプリケーションが「ステージング済または公開済」であるため、サイト・マップ・パス「変更されない」のように、サイト・マップ・ファイルをビジュアル・アプリケーションのルート・ディレクトリにコピーするように設定できます。
/webApps/webAppName/version_idディレクトリに自動的に移動されます。 そのため、アプリケーション・サイト・マップにアクセスするには、パスに最新のversion_idを含める必要があります。
/webApps/webAppName/version_idディレクトリからアプリケーション・ルート・ディレクトリ「アプリケーションがステージングまたは公開されるたび」にサイト・マップ・ファイルを自動的にコピーするには、アプリケーションのGruntfile.jsファイルを編集し、vb-post-packageタスクを追加します:



