サイトマップと検索エンジンロボットを追加する
sitemap.xml ファイルを生成してルートディレクトリに書き込もうとすると、次のエラーが発生します。
Please make sure that "/" is writable by the web-server.
Adobe Commerce クラウド基盤では、var、pub/media、pub/static、app/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 ファイルを生成するには:
-
管理者にアクセスします。
-
マーケティング メニューで、SEOと検索 セクションの サイトマップ をクリックします。
-
サイトマップ表示で、サイトマップを追加をクリックします。
-
新しいサイトマップ ビューで、次の値を入力します。
- ファイル名:
sitemap.xml - パス:
/media/
- ファイル名:
-
「保存して生成」をクリックします。 新しいサイトマップは、サイトマップ グリッドで利用できるようになります。
-
Google の リンク列のパスをクリックします。
コンテンツをrobots.txt ファイルに追加するには:
- 管理者にアクセスします。
- コンテンツ メニューで、「デザイン」セクションの「設定」をクリックします。
- デザイン設定 ビューで、アクション列のweb サイトの 編集 をクリックします。
- メイン Web サイト ビューで、検索エンジン ロボットをクリックします。
- robots.txt フィールドの Edit カスタム命令を更新します。
- 「設定を保存」をクリックします。
- ブラウザーで
<domain.your.project>/robots.txtファイルまたは<domain.your.project>/robotsURLを確認します。
<domain.your.project>/robots.txt ファイルで404 errorが生成された場合、Adobe Commerce サポートチケット を送信して、/robots.txtから/media/robots.txtへのリダイレクトを削除します。Fastly VCL スニペットを使用した書き換え
ドメインが異なり、個別のサイトマップが必要な場合は、VCLを作成して適切なサイトマップにルーティングできます。 前述のように、管理パネルでsitemap.xml ファイルを生成し、カスタム Fastly VCL スニペットを作成してリダイレクトを管理します。 カスタム Fastly VCL スニペット を参照してください。
リダイレクトにFastly VCL スニペットを使用する
typeとcontentのキーと値のペアを使用して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.comのpub/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.txtとsitemap.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 カスタマイズをアクティブ化するには、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 に切り替えます。
-
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
-
検索エンジンによるインデックス作成は、実稼動環境でのみ有効にできますが、下位の環境では有効にできません。
-
PWA Studioを使用しており、設定した
robots.txtファイルにアクセスできない場合は、Stores/Configuration > General > Web/UPWARD PWA ConfigurationのFront Name 許可リストに加えるにrobots.txtを追加します。