Next.js earns its place when a site has to rank and load fast on first visit. Here's how we decide, and how we build it so SEO isn't an afterthought.
Next.js is popular enough now that people reach for it by reflex, which is a shame, because its real strength is specific. It exists to solve the problems plain React creates for public-facing sites: routing, rendering flexibility, and search visibility. Understanding when those problems actually apply to you is the difference between a framework that earns its keep and one that adds complexity you never use.
The honest comparison with plain React
React on its own is a client-side library. It renders in the browser, which means the first thing a search engine or a slow phone receives can be a near-empty page. That is fine for an app behind a login, where nobody needs to rank a dashboard. It is a problem for anything that has to be found on Google or feel fast on first visit. Next.js adds server-rendered HTML, built-in routing and a real SEO story on top of the same React you already know — which is why we recommend it for marketing sites and public products, and plain React for internal tools.
The App Router and the component split that matters
We build on the App Router, and the decision that shapes everything is which components run on the server and which run in the browser. Get it right and the app ships far less JavaScript than a naive build, because the server does the work that does not need to reach the client. Get it wrong and you pay for interactivity on pages that were never interactive. This split is not automatic; it is a judgement made component by component, and it is where a lot of the engineering value actually lives.
SSR, SSG or ISR — chosen per page, not blanket
Next.js lets you render each page differently, and applying one strategy across the whole site wastes that. We decide page by page based on how often the content really changes: static generation where we can, because nothing is faster than a pre-built file; server rendering where the content is personalised or live; and incremental regeneration where a page changes on a schedule rather than every request. A blog post and a live inventory page have no business being rendered the same way.
SEO that is wired in, not patched on
The framework handles metadata, sitemaps, structured data, clean URLs and server-rendered HTML — the machinery that makes a React app rankable at all. We wire it in from the first commit rather than bolting it on before launch, and then we verify it the way we would any site, against technical SEO fundamentals. If you want the full audit we run, our 21-point technical SEO checklist is the same one we apply to a Next.js build before it ships.
Migrations, deployment and the things that break
Moving an existing site to Next.js is mostly a migration problem, not a build problem: we plan around preserving your URLs and rankings — redirect maps, metadata parity — before touching the framework, because a fast new site that dropped your rankings is a failure however good it looks. On deployment we model both Vercel and self-hosted Node against your actual traffic and budget, rather than assuming one. CI/CD, environment management and rollback get set up properly, so a bad deploy is a non-event.
Timelines and ownership
A marketing site typically runs three to six weeks; a full application with auth, dashboards and integrations runs eight to fourteen. You get a dated sprint plan on day one, and you own the repositories, environment config and hosting accounts, with IP assigned in writing. Backend logic can live in the same project through API routes and server actions when that is simpler, or split out when scale calls for it — again, a decision we make with you rather than for you.
Next.js is the right call more often than not for public-facing work, but 'more often than not' is not 'always', and we would rather talk you out of it than sell you complexity you will not use. If it does fit, our Next.js development service builds it on the App Router with SEO in the scope and the deployment in your name.
Code Craft Engineering
Web Development Team at Code Craft — the team behind our published work and products and the 39-plugin product suite.




