Vai al contenuto principale

[Lv2] Funzionalità server Nuxt 3: server route e sitemap dinamica

Le funzionalità server Nitro di Nuxt 3 ti permettono di sviluppare capacità backend orientate alla SEO direttamente nello stesso repository.


1. Focus da colloquio

  1. Server route per logica backend sicura
  2. Generazione dinamica della sitemap
  3. Configurazione robots e controllo crawler

2. Server route in Nuxt 3

Esempi di mapping file:

  • server/api/products.ts -> /api/products
  • server/routes/health.ts -> /health

Casi d'uso tipici:

  • Nascondere chiavi API private
  • Normalizzare le risposte di terze parti
  • Implementare pattern BFF per il frontend
  • Gestire CORS e validazione richieste
// server/api/weather.ts
export default defineEventHandler(async () => {
const config = useRuntimeConfig();
return await $fetch(`https://example-weather.com?key=${config.weatherApiKey}`);
});

3. Sitemap dinamica

Una sitemap dovrebbe riflettere le rotte attualmente indicizzate.

// server/routes/sitemap.xml.ts
export default defineEventHandler(async (event) => {
setHeader(event, 'content-type', 'application/xml; charset=utf-8');
const urls = await getPublishedUrls();
const body = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${urls
.map((u) => `<url><loc>${u.loc}</loc><lastmod>${u.lastmod}</lastmod></url>`)
.join('')}
</urlset>`;
return body;
});

4. Strategia Robots.txt

Usa una policy robots consapevole dell'ambiente.

  • Produzione: consenti l'indicizzazione delle pagine pubbliche
  • Staging/test: blocca tutti i crawler
User-agent: *
Disallow: /admin
Sitemap: https://example.com/sitemap.xml

5. Best practice operative

  • Metti in cache la risposta sitemap con TTL breve
  • Valida il formato XML in CI
  • Mantieni gli URL canonical coerenti con la sitemap
  • Monitora errori di crawl e indicizzazione nella search console

Sintesi pronta per il colloquio

Uso le server route di Nuxt per tenere i segreti lato server, generare output dinamici di sitemap/robots e allineare il controllo dei crawler con ambiente e ownership delle rotte.