Next.js gives you everything Google wants technically: server-rendered HTML, fast responses, clean routing. What it doesn't give you is discovery. A programmatic site that deploys 500 new pages, or an ISR page that silently regenerates, can wait weeks for Google to notice, and for developer-built sites the fix belongs where you already work: the deploy pipeline.
app/sitemap.ts, fetching dynamic slugs from your data layer, and Next serves /sitemap.xml. Pages Router: next-sitemap at build time. Either way, Google Search Console gets it once.useEffect fetch depends on Google's slower second rendering pass; move anything index-critical to the server.lastModified values in sitemap.ts from your data layer, or submit changed URLs directly when revalidation runs (below).robots metadata export set during staging, or a Vercel preview-deployment header pattern copied to production config, silently hides pages. Grep for noindex before blaming Google.This is the part built for developers. When your deploy or revalidation webhook knows which URLs are new or changed, push them straight into Google's crawl queue:
await fetch('https://index.zenethpro.com/api/v1/submit', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + process.env.ZENETH_INDEXER_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({ urls: changedUrls }) // up to 25 per call
});
Each URL goes through the official Google Indexing API (no Google Cloud project, service account, or OAuth code on your side), failed submissions auto-refund, URLs on unverified domains are rejected without cost, and every submission is verified afterward against Google Search Console data, so the dashboard shows what actually got indexed. Full reference on the docs page; the API overview compares this to wiring Google's API yourself.
Keep the API call for zero-delay moments and let the same account watch /sitemap.xml every 10 minutes as the safety net; anything your pipeline misses, including honest ISR lastmod bumps, is submitted automatically, plus Bing, Yandex, Naver, and Seznam free via IndexNow. Setup: create an account, drop the one-line verification meta tag into your root layout's <head> (a two-line change in app/layout.tsx), verify, add the sitemap.
One POST per deploy, sitemap watcher as backup, verified results. Credits from $3, no subscription.
Get Your API Key →Also maintaining sites on other platforms? See the guides for WordPress, Shopify, Webflow, and Framer.