JavaScript applications often run into predictable SEO issues: empty first paints, duplicate URLs, missing canonicals, and slow interactions. Working on multilingual marketplaces and corporate sites, I rely on a straightforward checklist.
Rendering: give crawlers HTML
Use SSR or static generation for every indexable route. Reserve client-only rendering for authenticated dashboards that should never be indexed, and ensure those routes use noindex tags or authentication boundaries.
Canonical discipline
One URL per page. Use self-referencing canonicals, HTTPS across the board, consistent trailing slashes, and redirects for legacy route patterns (such as /services/details back to /services). Multilingual pages must self-canonical per locale, avoiding pointing every locale at the default language.
Sitemaps that stay fresh
Generate the XML sitemap from the database so new posts, projects, and services appear automatically. Reference it in robots.txt and include only canonical, indexable URLs.
Core Web Vitals as ranking input
Optimize images with explicit dimensions, lazy loading below the fold, and modern formats. Keep third-party scripts lean and avoid shipping animation libraries to pages that do not use them. On one B2B marketplace, this discipline combined with SSR tripled organic traffic.
Discuss this article
Have questions about Technical SEO for Next.js Applications: SSR, Indexing and Core Web Vitals or applying it to your own web application? Send the details and I will reply.