ZeroToShip

Docs/Feature

// feature

SEO e sitemap

SEO base già sistemata: meta tag su ogni pagina, Open Graph per i social, sitemap generata al build, JSON-LD per i post del blog. Non devi imparare cos'è un URL canonico — passi un oggetto, esce fuori l'HTML corretto.

getSEOTags

libs/seo.tsx esporta getSEOTags(). Lo esporti come metadata da qualsiasi pagina App Router e sovrascrivi solo i campi che ti servono — gli altri prendono i default da config.ts.

app/pricing/page.tsx
tsx
import { getSEOTags } from "@/libs/seo";

export const metadata = getSEOTags({
  title: "Prezzi — ZeroToShip",
  description: "Paghi una volta, spedisci per sempre.",
  canonicalUrlRelative: "/pricing",
});

Open Graph e Twitter

Open Graph e Twitter Card sono auto-generati dallo stesso helper. Per l'immagine social basta mettere un file opengraph-image.png (1200×630) nella cartella app/ — Next.js lo pesca da solo.

Sitemap automatica

next-sitemap.config.js gira in post-build e produce sitemap.xml + robots.txt nella public/. Cambi solo il siteUrl. Le rotte protette (dashboard, api) le puoi escludere aggiungendole all'array exclude.

next-sitemap.config.js
js
module.exports = {
  siteUrl: process.env.SITE_URL || "https://zerotoship.com",
  generateRobotsTxt: true,
  exclude: ["/dashboard", "/api/*"],
};

Rich results per il blog

renderSchemaTags() in libs/seo.tsx inietta JSON-LD strutturato (schema.org) per far comparire il tuo prodotto o i tuoi articoli nei rich results di Google. Lo chiami una volta dalla home o dai post del blog e sei a posto.