@astrojs/ sitemap
Esta integración de Astro genera un Sitemap basado en tus páginas al construir tu proyecto de Astro.
¿Por qué Astro Sitemap?
Sección titulada ¿Por qué Astro Sitemap?Un Sitemap es un archivo XML que describe todas las páginas, videos y archivos de tu sitio. Los motores de búsqueda como Google leen este archivo para rastrear tu sitio de manera más eficiente. Consulta el consejo de Google sobre los Sitemaps para obtener más información al respecto.
Se recomienda utilizar un archivo Sitemap para sitios grandes con múltiples páginas. Si no utilizas un Sitemap, la mayoría de los motores de búsqueda aún podrán listar las páginas de tu sitio, pero un Sitemap es una excelente manera de asegurarte de que tu sitio sea lo más amigable posible para los motores de búsqueda.
Con Astro Sitemap, no tienes que preocuparte por crear este archivo XML tú mismo: la integración Astro Sitemap rastreará tus rutas generadas estáticamente y creará el archivo sitemap, incluyendo rutas dinámicas como [...slug]
o src/pages/[lang]/[version]/info.astro
generado por getStaticPaths()
.
Esta integración no puede generar entradas de sitemap para rutas dinámicas en modo SSR.
Instalación
Sección titulada InstalaciónAstro incluye un comando astro add
para automatizar la configuración de las integraciones oficiales. Si lo prefieres, puedes instalar las integraciones manualmente en su lugar.
Ejecuta uno de los siguientes comandos en una nueva ventana de terminal.
Si tienes algún problema, no dudes en informarnos en GitHub y prueba los pasos de instalación manual a continuación.
Instalación manual
Sección titulada Instalación manualPrimero, instala el paquete @astrojs/sitemap
utilizando tu gestor de paquetes.
Luego, aplica la integración a tu archivo astro.config.*
utilizando la propiedad integrations
:
@astrojs/sitemap
requiere una URL de despliegue o del sitio para su generación. Agrega la URL de tu sitio bajo astro.config.*
utilizando la propiedad site
. Esta URL debe comenzar con http:
o https:
.
Ten en cuenta que, a diferencia de otras opciones de configuración, site
se establece en el objeto defineConfig
raíz, en lugar de dentro de la llamada a sitemap()
.
Ahora, construye tu sitio para producción utilizando el comando astro build
. Encontrarás sitemap-index.xml
y sitemap-0.xml
en la carpeta dist/
(o tu directorio de salida personalizado si está configurado).
Si olvidas agregar la propiedad site
, recibirás una advertencia amigable al realizar la compilación y el archivo sitemap-index.xml
no se generará.
Después de verificar que los sitemaps se hayan construido, puedes agregarlos al elemento<head>
de tu sitio y al archivo robots.txt
para que los rastreadores los detecten.
Para generar de forma dinámica el archivo robots.txt
, añade un archivo llamado robots.txt.ts
con el siguiente código:
Ejemplo de archivos generados para un sitio web de dos páginas
Sección titulada Ejemplo de archivos generados para un sitio web de dos páginasConfiguración
Sección titulada ConfiguraciónPara configurar esta integración, pasa un objeto a la función sitemap()
en la configuración de astro.config.mjs
.
filter
Sección titulada filterPor defecto, todas las páginas se incluyen en tu sitemap. Al agregar una función filter
personalizada, puedes filtrar las páginas incluidas según su URL.
La función se llamará para cada página de tu sitio. El parámetro de función page
es la URL completa de la página que se está considerando actualmente, incluido el dominio de tu site
. Devuelve true
para incluir la página en tu sitemap y false
para omitirla.
Para filtrar varias páginas, agrega argumentos con las URL de destino.
customPages
Sección titulada customPagesEn algunos casos, una página podría formar parte de tu sitio implementado pero no ser parte de tu proyecto de Astro. Si deseas incluir una página en tu sitemap que no sea creada por Astro, puedes utilizar esta opción.
entryLimit
Sección titulada entryLimitEl número máximo de entradas por archivo de sitemap. El valor predeterminado es 45000. Se crea un índice de sitemap y múltiples sitemaps si tienes más entradas. Consulta esta explicación sobre cómo dividir un sitemap grande.
changefreq, lastmod, y priority
Sección titulada changefreq, lastmod, y priorityEstas opciones corresponden a las etiquetas <changefreq>
, <lastmod>
, y <priority>
en la especificación XML del Sitemap.
Ten en cuenta que Google ignora las propiedades changefreq
y priority
.
Debido a las limitaciones de la API de Integración de Astro, esta integración no puede analizar el código fuente de una página específica. Esta opción de configuración puede establecer changefreq
, lastmod
y priority
de manera global para todo el sitio; consulta la siguiente opción serialize para ver cómo puedes establecer estos valores de forma específica para cada página.
serialize
Sección titulada serializeUna función que se llama para cada entrada del Sitemap justo antes de escribir en el disco. Esta función puede ser asíncrona.
Recibe como parámetro un objeto SitemapItem
que puede tener estas propiedades:
url
(URL absoluta de la página). Esta es la única propiedad que se garantiza que estará presente enSitemapItem
.changefreq
lastmod
(Fecha en formato ISO, tipoString
)priority
links
.
La propiedad links
contiene una lista de LinkItem
que representa las páginas alternativas, incluida la página principal.
El tipo LinkItem
tiene dos campos: url
(la URL completamente calificada para la versión de esta página en el idioma especificado) y lang
(un código de idioma compatible dirigido por esta versión de la página).
La función serialize
debe devolver un objeto SitemapItem
, ya sea modificado o no.
El siguiente ejemplo muestra la capacidad de agregar propiedades específicas del Sitemap individualmente.
Para localizar un Sitemap, pasa un objeto a la opción i18n
.
Este objeto tiene dos propiedades requeridas:
defaultLocale
:String
. Su valor debe existir como una de las claves delocales
.locales
:Record<String, String>
, pares clave/valor. La clave se utiliza para buscar la parte del idioma en una ruta de página. El valor es un atributo de idioma y solo se permiten letras del alfabeto inglés y guiones.
Lee más sobre los atributos de idioma.
Lee más sobre la localización.
El sitemap resultante tiene el siguiente aspecto:
Ejemplos
Sección titulada Ejemplos- El sitio web oficial de Astro utiliza Astro Sitemap para generar su sitemap.
- ¡Explora proyectos con Astro Sitemap en GitHub para más ejemplos!