generateSitemaps

Vous pouvez utiliser la fonction generateSitemaps pour générer plusieurs sitemaps pour votre application.

Retours

La fonction generateSitemaps retourne un tableau d'objets avec une propriété id.

URLs

En production, vos sitemaps générés seront disponibles à l'adresse /.../sitemap/[id].xml. Par exemple, /product/sitemap/1.xml.

En développement, vous pouvez visualiser le sitemap généré sur /.../sitemap.xml/[id]. Par exemple, /product/sitemap.xml/1. Cette différence est temporaire et suivra le format de production.

Exemple

Par exemple, pour diviser un sitemap en utilisant generateSitemaps, retournez un tableau d'objets avec l'id du sitemap. Ensuite, utilisez l'id pour générer les sitemaps uniques.

import { BASE_URL } from '@/app/lib/constants'

export async function generateSitemaps() {
  // Récupère le nombre total de produits et calcule le nombre de sitemaps nécessaires
  return [{ id: 0 }, { id: 1 }, { id: 2 }, { id: 3 }]
}

export default async function sitemap({
  id,
}: {
  id: number
}): Promise<MetadataRoute.Sitemap> {
  // La limite de Google est de 50 000 URLs par sitemap
  const start = id * 50000
  const end = start + 50000
  const products = await getProducts(
    `SELECT id, date FROM products WHERE id BETWEEN ${start} AND ${end}`
  )
  return products.map((product) => ({
    url: `${BASE_URL}/product/${product.id}`,
    lastModified: product.date,
  }))
}
import { BASE_URL } from '@/app/lib/constants'

export async function generateSitemaps() {
  // Récupère le nombre total de produits et calcule le nombre de sitemaps nécessaires
  return [{ id: 0 }, { id: 1 }, { id: 2 }, { id: 3 }]
}

export default async function sitemap({ id }) {
  // La limite de Google est de 50 000 URLs par sitemap
  const start = id * 50000
  const end = start + 50000
  const products = await getProducts(
    `SELECT id, date FROM products WHERE id BETWEEN ${start} AND ${end}`
  )
  return products.map((product) => ({
    url: `${BASE_URL}/product/${id}`,
    lastModified: product.date,
  }))
}

On this page