Next.js gives you strong SEO foundations: server rendering, fast pages and flexible metadata. It does not apply them for you. Missing titles, duplicate URLs and blocked pages still happen on well-built sites. Use this checklist when you launch and again after major changes.
1. Render content on the server
Search engines can run JavaScript, but server-rendered HTML is indexed faster and more reliably. Default to Server Components, and use client components only where you need interactivity. Open a page with JavaScript disabled or view the source: the main text and links should be there.
2. Write unique titles and descriptions
- Use the Metadata API: export
metadataorgenerateMetadatain each route. - Keep titles around 50 to 60 characters with the main topic near the start.
- Write a description of 140 to 160 characters that tells a searcher why to click.
- Never reuse the same title across pages. Dynamic pages should build theirs from their data.
3. Set canonical URLs
The same page can be reached with tracking parameters, trailing slashes or uppercase paths. Set alternates.canonical so search engines know the preferred address. Redirect old or alternative URLs with a permanent 301 in next.config.
4. Generate a sitemap and robots file
- Create
app/sitemap.tsthat lists every public page and post with alastModifieddate. - Create
app/robots.tsthat allows crawling and points to the sitemap. - Make sure staging sites are blocked, and production is not.
- Submit the sitemap in Google Search Console and Bing Webmaster Tools.
5. Add structured data
JSON-LD helps search engines understand your pages. Add Organization on the home page, Article on blog posts, BreadcrumbList on nested pages and FAQPage where you have visible questions and answers. The markup must match what is visible on the page. Validate it with Google's Rich Results Test.
6. Fix your internal links
- Use real
<a href>links throughnext/link, not click handlers. - Link related articles and service pages together with descriptive anchor text.
- Make sure every page is reachable within three clicks from the home page.
- Find and fix broken links and redirect chains.
7. Optimize images and fonts
Use next/image with proper width, height and alt text, and mark the main hero image as priority. Load fonts with next/font to prevent layout shift. Both help your Core Web Vitals.
8. Share well on social platforms
Add Open Graph and Twitter card data with a 1200 by 630 image for each important page. A good preview raises click-through on shared links.
9. Handle status codes correctly
- Return a real 404 with
notFound()for missing pages, not a 200 with an error message. - Use 301 redirects for moved content and 410 for removed content when appropriate.
- Keep a helpful 404 page that links to popular sections.
10. Verify in the tools
- Inspect a few key URLs in Search Console to see how Google renders and indexes them.
- Check the Pages report for excluded or duplicate URLs.
- Run Lighthouse and PageSpeed Insights on key templates.
- Crawl the site with a tool such as Screaming Frog to catch missing titles and broken links.
Content still wins
Technical SEO removes obstacles. It does not replace pages that answer real questions well. Pair this checklist with useful service pages and articles written for your customers. Rankings take weeks or months to move, and no checklist can promise a position.
An example metadata setup
For a blog post route, generateMetadata reads the post, returns a title built from the post title and brand, a description from the excerpt, a canonical URL, and Open Graph data with the cover image. The same data feeds the sitemap entry and the Article structured data, so there is one source of truth. When a title changes, everything updates together and nothing drifts.
Mistakes we see most often
- One generic title across every page.
- Staging sites left open to search engines, or the production site blocked by a leftover robots rule.
- Client-side only content that never appears in the HTML.
- Pages in the sitemap that redirect or return errors.
- Product pages with no text, only images and buttons.
Give your product pages something to rank for
Software pages need real words too. A page about a billing tool should explain invoicing, inventory tracking, roles and offline use in plain language, with examples and questions. Our Lena Dena project page does this for a business operating system, and our WhatsApp automation page does it for chat-to-sheet workflows. Each page links to related services and articles, and each has its own title and description. Treat every product or feature as a page that answers a customer's question. Re-check titles, canonical tags and the sitemap after each release, because a single template change can quietly affect hundreds of pages, and review Search Console every month for new errors.
Need a technical SEO review of your Next.js site? See our services and recent work, or request an audit.

