Añadir robots de mapa del sitio y de motor de búsqueda
Si intenta generar y escribir el archivo sitemap.xml
en el directorio raíz, se producirá el siguiente error:
Please make sure that "/" is writable by the web-server.
Con Adobe Commerce en la infraestructura en la nube, solo puede escribir en directorios específicos, como var
, pub/media
, pub/static
o app/etc
. Cuando genere el archivo sitemap.xml
mediante el panel de administración, debe especificar la ruta de acceso /media/
.
No tiene que generar un archivo robots.txt
porque genera el contenido robots.txt
bajo demanda y lo almacena en la base de datos. Puede ver el contenido en su explorador con el vínculo <domain.your.project>/robots.txt
o <domain.your.project>/robots
.
Esto requiere ECE-Tools versión 2002.0.12 y posterior con un archivo .magento.app.yaml
actualizado. Vea un ejemplo de estas reglas en el repositorio de magento en la nube.
Para generar un archivo de sitemap.xml
en la versión 2.2 y posterior:
-
Acceda al administrador.
-
En el menú Marketing, haga clic en Mapa del sitio en la sección SEO y búsqueda.
-
En la vista Mapa del sitio, haga clic en Agregar mapa del sitio.
-
En la vista Nuevo mapa del sitio, escriba los siguientes valores:
- Nombre de archivo:
sitemap.xml
- Ruta:
/media/
- Nombre de archivo:
-
Haga clic en Guardar y generar. El nuevo mapa del sitio estará disponible en la cuadrícula Mapa del sitio.
-
Haga clic en la ruta de acceso de la columna Vínculo para Google.
Para agregar contenido al archivo robots.txt
:
- Acceda al administrador.
- En el menú Contenido, haga clic en Configuración en la sección Diseño.
- En la vista Configuración de diseño, haga clic en Editar para el sitio web en la columna Acción.
- En la vista Sitio web principal, haga clic en Robots de motores de búsqueda.
- Actualice el campo Editar instrucción personalizada de robots.txt.
- Haga clic en Guardar configuración.
- Compruebe el archivo
<domain.your.project>/robots.txt
o la dirección URL<domain.your.project>/robots
en el explorador.
<domain.your.project>/robots.txt
genera un 404 error
, envíe un vale de soporte técnico de Adobe Commerce para quitar la redirección de /robots.txt
a /media/robots.txt
.Reescribir utilizando el fragmento de VCL de Fastly
Si tiene dominios diferentes y necesita mapas de sitio independientes, puede crear una VCL para enrutar al mapa del sitio adecuado. Genere el archivo sitemap.xml
en el panel de administración como se ha descrito anteriormente y, a continuación, cree un fragmento de VCL personalizado de Fastly para administrar la redirección. Ver fragmentos personalizados de VCL de Fastly.
Usar un fragmento de VCL de Fastly para redireccionar
Cree un fragmento de VCL personalizado para reescribir la ruta de acceso de sitemap.xml
a /media/sitemap.xml
mediante los pares clave-valor type
y content
.
{
"name": "sitemapxml_rewrite",
"dynamic": "0",
"type": "recv",
"priority": "90",
"content": "if ( req.url.path ~ \"^/?sitemap.xml$\" ) { set req.url = \"/media/sitemap.xml\"; }"
}
El siguiente ejemplo muestra cómo reescribir la ruta de acceso de robots.txt
y sitemap.xml
en /media/robots.txt
y /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\";}"
}
Para usar un fragmento de VCL de Fastly para una redirección de dominio en particular:
Cree un archivo de pub/media/domain_robots.txt
, donde el dominio es domain.com
, y use el siguiente fragmento de 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\"; }}"
}
El fragmento VCL enruta http://domain.com/robots.txt
y presenta el archivo pub/media/domain_robots.txt
.
Para configurar una redirección para robots.txt
y sitemap.xml
en un solo fragmento, cree pub/media/domain_robots.txt
y pub/media/domain_sitemap.xml
archivos, donde el dominio es domain.com
y use el siguiente fragmento de 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\"; }}"
}
En la configuración de administración de sitemap
, debe especificar la ubicación del archivo usando pub/media/
en lugar de /
.
Configurar la indexación por motor de búsqueda
Para activar las personalizaciones de robots.txt
en producción, debe habilitar la opción Indexación por motores de búsqueda activada para<environment-name>
en la configuración del proyecto.
-
La indexación por motores de búsqueda solo se puede habilitar en Producción, pero no en ninguno de los entornos inferiores.
-
Si usa el PWA Studio y no puede obtener acceso al archivo
robots.txt
configurado, agreguerobots.txt
a la Lista de permitidos Nombre principal en Tiendas > Configuración > General > Web > Configuración del PWA ascendente.