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

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 のリンクを使用して、ブラウザーでコンテンツを表示できます。

これには、更新された .magento.app.yaml ファイルを含む ECE-Tools バージョン 2002.0.12 以降が必要です。 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 のカスタム命令を編集」フィールドを更新します。
  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 スニペットを作成します。 Custom Fastly VCL スニペットを参照してください。

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

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

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

{
  "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.txt ファイルと pub/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 アクティブ化するには、プロジェクト設定の <environment-name>オプションで 検索エンジンによるインデックス作成を有効にする必要があります。

Cloud Console を使用した環境の管理

NOTE
  • 検索エンジンによるインデックス作成は、実稼動環境でのみ有効にできますが、下位環境では有効にできません。

  • PWA Studio許可リストに加えるを使用していて、設定済みの robots.txt ファイルにアクセスできない場合は、Front NameStores/設定/General/Web/UPWARDPWA設定)に robots.txt を追加します。

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26