サイトマップと検索エンジンロボットを追加する

sitemap.xml ファイルを生成してルートディレクトリに書き込もうとすると、次のエラーが発生します。

Please make sure that "/" is writable by the web-server.

Adobe Commerce クラウド基盤では、varpub/mediapub/staticapp/etcなどの特定のディレクトリにのみ書き込むことができます。 管理パネルを使用してsitemap.xml ファイルを生成する場合は、/media/ パスを指定する必要があります。

robots.txt ファイルは、オンデマンドでrobots.txt コンテンツを生成し、データベースに保存するため、生成する必要はありません。 <domain.your.project>/robots.txtまたは<domain.your.project>/robots リンクを使用すると、ブラウザーでコンテンツを表示できます。

これには、ECE-Tools バージョン 2002.0.12以降と、更新された.magento.app.yaml ファイルが必要です。 これらのルールの例については、magento-cloud リポジトリ ​を参照してください。

バージョン 2.2以降​でsitemap.xml ファイルを生成するには:

  1. 管理者にアクセスします。

  2. マーケティング メニューで、SEOと検索 セクションの​ サイトマップ ​をクリックします。

  3. サイトマップ​表示で、サイトマップを追加​をクリックします。

  4. 新しいサイトマップ ビューで、次の値を入力します。

    • ファイル名:sitemap.xml
    • パス:/media/
  5. 保存して生成」をクリックします。 新しいサイトマップは、サイトマップ グリッドで利用できるようになります。

  6. Google リンク列のパスをクリックします。

コンテンツをrobots.txt ファイル​に追加するには:

  1. 管理者にアクセスします。
  2. コンテンツ メニューで、「デザイン」セクションの「設定」をクリックします。
  3. デザイン設定 ビューで、アクション​列のweb サイトの​ 編集 ​をクリックします。
  4. メイン Web サイト ビューで、検索エンジン ロボット​をクリックします。
  5. robots.txt フィールドの Edit カスタム命令を更新します。
  6. 設定を保存」をクリックします。
  7. ブラウザーで<domain.your.project>/robots.txt ファイルまたは<domain.your.project>/robots URLを確認します。
NOTE
<domain.your.project>/robots.txt ファイルで404 errorが生成された場合、Adobe Commerce サポートチケット ​を送信して、/robots.txtから/media/robots.txtへのリダイレクトを削除します。

Fastly VCL スニペットを使用した書き換え

ドメインが異なり、個別のサイトマップが必要な場合は、VCLを作成して適切なサイトマップにルーティングできます。 前述のように、管理パネルでsitemap.xml ファイルを生成し、カスタム Fastly VCL スニペットを作成してリダイレクトを管理します。 ​ カスタム Fastly VCL スニペット ​を参照してください。

NOTE
カスタム VCL スニペットは、Admin UIまたはFastly APIを使用してアップロードできます。 ​ カスタム VCL スニペットの例とチュートリアル ​を参照してください。

リダイレクトにFastly VCL スニペットを使用する

typecontentのキーと値のペアを使用してsitemap.xmlから/media/sitemap.xmlまでのパスを書き換えるカスタム VCL スニペットを作成します。

{
  "name": "sitemapxml_rewrite",
  "dynamic": "0",
  "type": "recv",
  "priority": "90",
  "content": "if ( req.url.path ~ \"^/?sitemap.xml$\" ) { set req.url = \"/media/sitemap.xml\"; }"
}

次の例は、robots.txtおよびsitemap.xmlのパスを/media/robots.txtおよび/media/sitemap.xmlに書き換える方法を示しています

{
  "name": "sitemaprobots_rewrite",
  "dynamic": "0",
  "type": "recv",
  "priority": "90",
  "content": "if ( req.url.path ~ \"^/?sitemap.xml$\" ) { set req.url = \"/media/sitemap.xml\"; } else if (req.url.path ~ \"^/?robots.txt$\") { set req.url = \"/media/robots.txt\";}"
}

特定のドメインリダイレクトにFastly VCL スニペットを使用するには:

ドメインがdomain.compub/media/domain_robots.txt ファイルを作成し、次のVCL スニペットを使用します。

{
  "name": "domain_robots",
  "dynamic": "0",
  "type": "recv",
  "priority": "90",
  "content": "if ( req.url.path == \"/robots.txt\" ) { if ( req.http.host ~ \"(domain).com$\" ) { set req.url = \"/media/\" re.group.1 \"_robots.txt\"; }}"
}

VCL スニペットはhttp://domain.com/robots.txtをルーティングし、pub/media/domain_robots.txt ファイルを表示します。

単一のスニペットでrobots.txtsitemap.xmlのリダイレクトを設定するには、pub/media/domain_robots.txtpub/media/domain_sitemap.xmlのファイルを作成します。このファイルには、ドメインがdomain.comあり、次のVCL スニペットを使用します。

{
  "name": "domain_sitemaprobots",
  "dynamic": "0",
  "type": "recv",
  "priority": "90",
  "content": "if ( req.url.path == \"/robots.txt\" ) { if ( req.http.host ~ \"(domain).com$\" ) { set req.url = \"/media/\" re.group.1 \"_robots.txt\"; }} else if ( req.url.path == \"/sitemap.xml\" ) { if ( req.http.host ~ \"(domain).com$\" ) {  set req.url = \"/media/\" re.group.1 \"_sitemap.xml\"; }}"
}

sitemap管理者設定では、/ではなくpub/media/を使用してファイルの場所を指定する必要があります。

検索エンジンによるインデックス作成の設定

実稼動環境でrobots.txt カスタマイズをアクティブ化するには、Cloud Consoleのプロジェクト設定の<environment-name> オプションに対する検索エンジンによるインデックス作成を有効にします。

  • レガシークラウドコンソール - URLはパターン https://<region-id>.magento.cloud/projects/<project_id>に従います

    設定Indexing by search engines (Legacy Console) Hide from search engines (Adobe Console)を​ On ​に切り替えます。

    環境の管理にCloud Consoleを使用

  • Adobe Cloud Console - URLはパターン https://console.adobecommerce.com/<username>/<project_id>に従います

    設定Hide from search enginesのチェックを外します。

  • magento-cloud CLIを使用して、この設定を更新することもできます。

    code language-bash
    magento-cloud environment:info -p <project_id> -e production restrict_robots false
    
NOTE
  • 検索エンジンによるインデックス作成は、実稼動環境でのみ有効にできますが、下位の環境では有効にできません。

  • PWA Studioを使用しており、設定したrobots.txt ファイルにアクセスできない場合は、Stores/Configuration > General > Web/UPWARD PWA ConfigurationのFront Name 許可リストに加えるrobots.txtを追加します。

recommendation-more-help
commerce-on-cloud-help-cloud-guide