Next.js is one of the frameworks we work on most, and it can produce fast pages that search engines read easily. Most of the problems we see come from a handful of settings that are easy to get wrong when a site is built quickly. These are the checks worth running before launch.
Render the content on the server
If a page fetches its main content in the browser after it loads, a crawler may first see a nearly empty page. Google can render JavaScript, but it’s slower and less reliable than reading HTML (Google’s JavaScript SEO basics). Keep important content in server components or statically generated pages, and check a few URLs with Search Console’s URL Inspection tool to see what Google actually renders.
Give every page its own metadata
Use the Metadata API, or generateMetadata for dynamic routes, so each page has its own title, description and canonical URL (Next.js docs). A common mistake is a single title set in the root layout that every page inherits.
Generate the sitemap and robots.txt
The App Router can build both from code with app/sitemap.ts and app/robots.ts (sitemap, robots). Generating the sitemap from your real routes keeps it in step as pages are added, and it’s worth checking that robots.txt on the live domain isn’t still the one from staging.
Use real links
The Link component outputs an ordinary link that crawlers can follow. Navigation built only from click handlers that call the router doesn’t, so menus and listings that lead to important pages should use links.
Return the right status codes
Missing pages should call notFound() so they return a 404. An error message on a page that returns 200 looks like a real page to search engines. Redirects set in next.config.js with permanent: true send a permanent redirect, which is what you want when URLs change for good.
Check speed before launch
Give next/image the right sizes and alt text, load fonts with next/font to avoid text shifting as the page loads, and keep an eye on how much JavaScript each page sends. Core Web Vitals in Search Console will show how real visitors experience it once the site is live.
If your Next.js site is already live and some pages aren’t being indexed, see our JavaScript rendering service. We’ll cover structured data in Next.js in more detail in Adding structured data to a Next.js site.
Found this useful? Pass it on.
Share on WhatsAppRead more about our Technical SEO service.
How this page looks on Google
Next.js SEO: what to check before launch | seekandsprout
Next.js can be very good for SEO when a few things are set up properly. What to check on rendering, metadata, sitemaps, links and speed before launch.
The title and description we wrote for search engines, as they appear in results.