サイトマップと検索エンジンロボットを追加
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
のリンクを使用して、ブラウザーでコンテンツを表示できます。
これには、更新された .magento.app.yaml
ファイルを含む ECE-Tools バージョン 2002.0.12 以降が必要です。 magento-cloud リポジトリーのこれらのルールの例を参照してください。
バージョン 2.2 以降で sitemap.xml
ファイルを生成するには:
-
管理者にアクセスします。
-
マーケティング メニューで、「SEO と検索 セクションの サイトマップ をクリックします。
-
サイトマップ ビューで、「サイトマップを追加」をクリックします。
-
新しいサイトマップ ビューで、次の値を入力します。
- ファイル名:
sitemap.xml
- パス:
/media/
- ファイル名:
-
保存して生成 をクリックします。 新しいサイトマップが サイトマップ グリッドで使用できるようになります。
-
Googleへのリンク 列のパスをクリックします。
コンテンツを robots.txt
ファイルに追加するには:
- 管理者にアクセスします。
- コンテンツ メニューで、「デザイン セクションの 設定 をクリックします。
- デザイン設定 ビューで、「アクション 列の web サイトの 編集 をクリックします。
- メイン Web サイト ビューで、「検索エンジンロボット」をクリックします。
- 「robots.txt のカスタム命令を編集」フィールドを更新します。
- 設定を保存 をクリックします。
- ブラウザーで
<domain.your.project>/robots.txt
ファイルまたは<domain.your.project>/robots
URL を確認します。
<domain.your.project>/robots.txt
ファイルで 404 error
が生成された場合は、Adobe Commerce サポートチケットを送信して、/robots.txt
から /media/robots.txt
へのリダイレクトを削除します。Fastly VCL スニペットを使用した書き換え
異なるドメインがあり、個別のサイトマップが必要な場合は、適切なサイトマップにルーティングする VCL を作成できます。 上記のように、管理パネルで sitemap.xml
ファイルを生成し、リダイレクトを管理するカスタム Fastly VCL スニペットを作成します。 Custom Fastly VCL スニペットを参照してください。
リダイレクトに Fastly VCL スニペットを使用
カスタム VCL スニペットを作成し、type
と content
のキーと値のペアを使用して、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.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
アクティブ化するには、プロジェクト設定の <environment-name>
オプションで 検索エンジンによるインデックス作成を有効にする必要があります。
-
検索エンジンによるインデックス作成は、実稼動環境でのみ有効にできますが、下位環境では有効にできません。
-
PWA Studio許可リストに加えるを使用していて、設定済みの
robots.txt
ファイルにアクセスできない場合は、Front NameStores/設定/General/Web/UPWARDPWA設定)にrobots.txt
を追加します。