Aggiungi mappa del sito e robot per motori di ricerca
Un tentativo di generare e scrivere il file sitemap.xml
nella directory radice genera il seguente errore:
Please make sure that "/" is writable by the web-server.
Con Adobe Commerce sull'infrastruttura cloud, è possibile scrivere solo in directory specifiche, ad esempio var
, pub/media
, pub/static
o app/etc
. Quando si genera il file sitemap.xml
tramite il pannello di amministrazione, è necessario specificare il percorso /media/
.
Non è necessario generare un file robots.txt
perché genera il contenuto di robots.txt
su richiesta e lo memorizza nel database. Puoi visualizzare il contenuto nel browser con il collegamento <domain.your.project>/robots.txt
o <domain.your.project>/robots
.
A tal fine è necessario ECE-Tools versione 2002.0.12 e successive con un file .magento.app.yaml
aggiornato. Vedi un esempio di queste regole nell'archivio magento-cloud.
Per generare un file sitemap.xml
nelle versioni 2.2 e successive:
-
Accedi all’Admin.
-
Nel menu Marketing, fai clic su Mappa sito nella sezione SEO & Search.
-
Nella visualizzazione Mappa sito, fare clic su Aggiungi mappa sito.
-
Nella visualizzazione Nuova mappa del sito, immettere i valori seguenti:
- Nome file:
sitemap.xml
- Percorso:
/media/
- Nome file:
-
Fai clic su Salva e genera. La nuova mappa del sito diventa disponibile nella griglia Mappa sito.
-
Fare clic sul percorso nella colonna Collegamento per Google.
Per aggiungere contenuto al file robots.txt
:
- Accedi all’Admin.
- Nel menu Contenuto, fai clic su Configurazione nella sezione Progettazione.
- Nella visualizzazione Configurazione progettazione, fare clic su Modifica per il sito Web nella colonna Azione.
- Nella visualizzazione Sito Web principale, fare clic su Robot motore di ricerca.
- Aggiorna il campo Modifica istruzione personalizzata di robots.txt.
- Fare clic su Salva configurazione.
- Verificare il file
<domain.your.project>/robots.txt
o l'URL<domain.your.project>/robots
nel browser.
<domain.your.project>/robots.txt
genera un 404 error
, Invia un ticket di supporto Adobe Commerce per rimuovere il reindirizzamento da /robots.txt
a /media/robots.txt
.Riscrivi utilizzando lo snippet VCL Fastly
Se disponi di domini diversi e hai bisogno di mappe del sito separate, puoi creare un VCL per indirizzarlo alla mappa del sito corretta. Genera il file sitemap.xml
nel pannello di amministrazione come descritto in precedenza, quindi crea uno snippet Fastly VCL personalizzato per gestire il reindirizzamento. Vedi Frammenti personalizzati VCL Fastly.
Utilizzare uno snippet VCL Fastly per il reindirizzamento
Creare uno snippet VCL personalizzato per riscrivere il percorso da sitemap.xml
a /media/sitemap.xml
utilizzando le coppie chiave-valore type
e content
.
{
"name": "sitemapxml_rewrite",
"dynamic": "0",
"type": "recv",
"priority": "90",
"content": "if ( req.url.path ~ \"^/?sitemap.xml$\" ) { set req.url = \"/media/sitemap.xml\"; }"
}
Nell'esempio seguente viene illustrato come riscrivere il percorso per robots.txt
e sitemap.xml
in /media/robots.txt
e /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\";}"
}
Per utilizzare uno snippet VCL Fastly per un reindirizzamento di dominio particolare:
Creare un file pub/media/domain_robots.txt
, dove il dominio è domain.com
, e utilizzare il successivo snippet 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\"; }}"
}
Il frammento VCL instrada http://domain.com/robots.txt
e presenta il file pub/media/domain_robots.txt
.
Per configurare un reindirizzamento per robots.txt
e sitemap.xml
in un singolo snippet, creare pub/media/domain_robots.txt
e pub/media/domain_sitemap.xml
file, dove il dominio è domain.com
e utilizzare il successivo snippet 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\"; }}"
}
Nella configurazione dell'amministratore sitemap
, è necessario specificare il percorso del file utilizzando pub/media/
anziché /
.
Configurare l’indicizzazione per motore di ricerca
Per attivare le personalizzazioni di robots.txt
in Produzione, è necessario abilitare l'opzione Indicizzazione tramite motori di ricerca attivata per<environment-name>
nelle impostazioni del progetto.
-
L’indicizzazione tramite motori di ricerca può essere abilitata solo in Produzione, ma non in nessuno degli ambienti inferiori.
-
Se utilizzi PWA Studio e non riesci ad accedere al file
robots.txt
configurato, aggiungirobots.txt
al Inserisco nell'elenco Consentiti di dei nomi anteriori in Archivi > Configurazione > Generale > Web > Configurazione PWA superiori.