Sitemap- und Suchmaschinenroboter hinzufügen
Der Versuch, die Datei sitemap.xml
zu generieren und in den Stammordner zu schreiben, führt zu folgendem Fehler:
Please make sure that "/" is writable by the web-server.
Mit Adobe Commerce in der Cloud-Infrastruktur können Sie nur in bestimmte Ordner schreiben, z. B. var
, pub/media
, pub/static
oder app/etc
. Wenn Sie die Datei "sitemap.xml
"mithilfe des Admin-Bedienfelds generieren, müssen Sie den Pfad "/media/
"angeben.
Sie müssen keine robots.txt
-Datei generieren, da sie den Inhalt von robots.txt
bei Bedarf generiert und in der Datenbank speichert. Sie können den Inhalt in Ihrem Browser mit dem Link <domain.your.project>/robots.txt
oder <domain.your.project>/robots
anzeigen.
Dies erfordert die ECE-Tools-Version 2002.0.12 und höher mit einer aktualisierten .magento.app.yaml
-Datei. Ein Beispiel für diese Regeln finden Sie im magento-cloud-Repository.
So generieren Sie eine sitemap.xml
-Datei in Version 2.2 und höher:
-
Rufen Sie Admin auf.
-
Klicken Sie im Menü Marketing im Abschnitt SEO & Suche auf Site Map .
-
Klicken Sie in der Ansicht Sitemap auf Sitemap hinzufügen.
-
Geben Sie in der Ansicht Neue Sitemap die folgenden Werte ein:
- Dateiname:
sitemap.xml
- Pfad:
/media/
- Dateiname:
-
Klicken Sie auf Speichern und generieren. Die neue Sitemap wird im Raster Sitemap verfügbar.
-
Klicken Sie auf den Pfad in der Spalte Link für Google .
Hinzufügen von Inhalt zur robots.txt
Datei:
- Rufen Sie Admin auf.
- Klicken Sie im Menü Inhalt auf Konfiguration im Abschnitt Design .
- Klicken Sie in der Ansicht Design-Konfiguration in der Spalte Aktion auf Bearbeiten für die Website.
- Klicken Sie in der Ansicht Hauptwebsite auf Suchmaschinen-Roboter.
- Aktualisieren Sie das Feld Benutzerdefinierte Anweisung von robots.txt bearbeiten .
- Klicken Sie auf Konfiguration speichern.
- Überprüfen Sie die
<domain.your.project>/robots.txt
-Datei oder die<domain.your.project>/robots
-URL in Ihrem Browser.
<domain.your.project>/robots.txt
-Datei einen 404 error
generiert, senden Sie ein Adobe Commerce Support-Ticket 🔗, um die Umleitung von /robots.txt
auf /media/robots.txt
zu entfernen.Mit Fastly VCL-Snippet umschreiben
Wenn Sie unterschiedliche Domänen haben und separate Sitemaps benötigen, können Sie eine VCL erstellen, um zur entsprechenden Sitemap zu gelangen. Generieren Sie die Datei "sitemap.xml
"im Admin-Bedienfeld wie oben beschrieben und erstellen Sie dann ein benutzerdefiniertes Fastly VCL-Snippet, um die Umleitung zu verwalten. Siehe Benutzerdefinierte schnelle VCL-Snippets.
Verwenden eines Fastly VCL-Snippets zur Umleitung
Erstellen Sie ein benutzerdefiniertes VCL-Snippet, um den Pfad für sitemap.xml
mit den Schlüssel-Wert-Paaren type
und content
in /media/sitemap.xml
umzuschreiben.
{
"name": "sitemapxml_rewrite",
"dynamic": "0",
"type": "recv",
"priority": "90",
"content": "if ( req.url.path ~ \"^/?sitemap.xml$\" ) { set req.url = \"/media/sitemap.xml\"; }"
}
Das folgende Beispiel zeigt, wie der Pfad für robots.txt
und sitemap.xml
in /media/robots.txt
und /media/sitemap.xml
umgeschrieben wird
{
"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\";}"
}
So verwenden Sie ein Fastly VCL-Snippet für eine bestimmte Domänenumleitung:
Erstellen Sie eine pub/media/domain_robots.txt
-Datei, deren Domäne domain.com
ist, und verwenden Sie das nächste VCL-Snippet:
{
"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\"; }}"
}
Das VCL-Snippet routet http://domain.com/robots.txt
und zeigt die Datei pub/media/domain_robots.txt
an.
Um eine Umleitung für robots.txt
und sitemap.xml
in einem einzelnen Snippet zu konfigurieren, erstellen Sie die Dateien pub/media/domain_robots.txt
und pub/media/domain_sitemap.xml
, wobei die Domäne domain.com
ist, und verwenden Sie das nächste VCL-Snippet:
{
"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\"; }}"
}
In der Admin-Konfiguration sitemap
müssen Sie den Speicherort der Datei mit pub/media/
anstelle von /
angeben.
Konfigurieren der Indizierung nach Suchmaschine
Um die robots.txt
-Anpassungen in der Produktion zu aktivieren, müssen Sie die Option Indizierung durch Suchmaschinen ist für<environment-name>
in Ihren Projekteinstellungen aktivieren.
-
Die Indizierung durch Suchmaschinen kann nur in der Produktion aktiviert werden, jedoch nicht in einer der niedrigeren Umgebungen.
-
Wenn Sie PWA Studio verwenden und nicht auf Ihre konfigurierte
robots.txt
-Datei zugreifen können, fügen Sierobots.txt
zur Vorname-Zulassungsliste unter Stores > Konfiguration > Allgemein > Web > UPWARD-PWA-Konfiguration hinzu.