[Lv2] Fitur Server Nuxt 3: Server Routes dan Sitemap Dinamis
Fitur server Nitro di Nuxt 3 memungkinkan Anda membangun kapabilitas backend yang sadar SEO langsung dalam repository yang sama.
1. Fokus wawancara
- Server routes untuk logika backend yang aman
- Pembuatan sitemap dinamis
- Konfigurasi robots dan kontrol crawler
2. Server routes di Nuxt 3
Contoh pemetaan file:
server/api/products.ts->/api/productsserver/routes/health.ts->/health
Use case umum:
- Menyembunyikan API key privat
- Menormalkan response pihak ketiga
- Mengimplementasikan pola BFF untuk frontend
- Menangani CORS dan validasi request
// server/api/weather.ts
export default defineEventHandler(async () => {
const config = useRuntimeConfig();
return await $fetch(`https://example-weather.com?key=${config.weatherApiKey}`);
});
3. Sitemap dinamis
Sitemap harus mencerminkan route yang saat ini terindeks.
// 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. Strategi Robots.txt
Gunakan kebijakan robots yang sadar environment.
- Production: izinkan indexing untuk halaman publik
- Staging/test: blokir semua crawler
User-agent: *
Disallow: /admin
Sitemap: https://example.com/sitemap.xml
5. Praktik operasional terbaik
- Cache response sitemap dengan TTL pendek
- Validasi format XML di CI
- Jaga canonical URL konsisten dengan sitemap
- Pantau error crawl dan indexing di search console
Ringkasan siap wawancara
Saya menggunakan server routes Nuxt untuk menjaga secret tetap di server, menghasilkan output sitemap/robots dinamis, dan menyelaraskan kontrol crawler dengan environment serta kepemilikan route.