Patch tonight. Migrate to modern, AI-improved.
Benefits of migrating Drupal to Next.js
Last updated: 2026-10-23 · Shawn Gants
Before
Drupal on a PHP server
Web server
Apache, nginx, or the host's edge
PHP runtime
PHP2Shell lives here, before the CMS
Drupal
Core, modules, and theme. Still PHP.
Database
Whatever that PHP process can reach
After
Next.js, Netlify, Supabase
Netlify CDN
Prerendered pages and hashed static files
Next.js
TypeScript. No PHP interpreter in the path.
Supabase Postgres
Content in ordinary tables
Row-level security
The database decides who can see a row
Answer: The benefits of migrating Drupal to Next.js are a different operating model, not a magic speed score. Prerendered pages can be cached on a CDN. You stop running a PHP server and a Drupal module patch treadmill. Access rules can live in Postgres. Deploys come from Git. You still update npm packages, and a move is a project. Any number that would describe *your* site is left out until it is measured.
Start a migration from $999 · Site down? Emergency overnight migration
This page is the cited list behind those claims. The comparison is the side-by-side. The migration service is how the work is done.
LCP
≤ 2.5s
Loading
INP
≤ 200ms
Interactivity
CLS
≤ 0.1
Visual stability
Performance and Core Web Vitals
Google's Core Web Vitals are field metrics. A good score, at the 75th percentile of real visits, is an LCP within 2.5 seconds, an INP of 200 milliseconds or less, and a CLS of 0.1 or less (web.dev). The Chrome User Experience Report is the field dataset behind PageSpeed Insights and Search Console. This page does not quote an HTTP Archive or CrUX percentile for "Drupal versus Next.js." That would be someone else's sites, or an average we did not compute. A before/after for your URLs is not published until it is measured on your domain after launch.
What the stack actually changes:
- Next.js prerenders Server and Client Components at build time and caches the result. Static pages with no revalidation get
s-maxage=31536000(one year), which a CDN can cache at the edge (Next.js CDN caching). - Server Components run on the server and do not add their own JavaScript to the browser bundle. Next.js documents that as a way to improve First Contentful Paint and to send less JavaScript (Server and Client Components).
- Hashed files under
/_next/static/are served aspublic, max-age=31536000, immutable(Next.js CDN caching).
Those are mechanisms. They are not a guarantee that a page will pass the 2.5s / 200ms / 0.1 targets. A heavy client component, a slow font, or an uncached dynamic route can miss them on either stack. Lighthouse is a lab test. Google says it is not a substitute for field data (web.dev).
Security
PHP2Shell (CVE-2026-109618 and CVE-2026-109619) is in the PHP runtime, before Drupal runs (php.net). Updating Drupal does not fix it (PSA-2026-10-20). A migration removes that PHP process from the hosting you run. It also ends the separate treadmill of Drupal core and contributed-module security releases.
Supabase row-level security attaches the access rule to the table. The policy runs inside Postgres on every query, including queries that do not go through your app (Supabase). Supabase also warns that a table exposed to the API without RLS is open to any role that has a grant. We treat "RLS enabled and tested" as part of the job, not as a sticker.
The managed surface gets smaller: no PHP worker, no Drupal module directory, no long-running CMS process to patch at 2 a.m. It does not become zero. See Tradeoffs.
Hosting cost and operations
Netlify links a Git repository and, on each push, runs your build and deploys the result to its CDN (Netlify build overview). There is no PHP server, opcode cache, or host panel in that loop. Rollback is redeploying a previous build. The care plan covers dependency updates and monitoring after launch.
What this page will not do is invent a monthly savings figure. Netlify and Supabase publish their own prices, and those prices change. A side-by-side against your current host is not published until the audit looks at traffic, storage, and logins. Page count is not a hosting price and it is not a project price.
Developer velocity and AI-assisted development
The application is TypeScript and React. Next.js documents Server Components, Client Components, and MDX in that ecosystem (Server and Client Components, MDX). The hiring pool is people who already work in that public ecosystem, instead of only people who know Drupal's hook and render APIs.
Coding assistants have a lot of public React and TypeScript to imitate. That can shorten some tasks. It does not replace review, and it is not a measured speedup. Any claim that *your* team will ship a feature in fewer days is illustrative until someone times it on your repository. A client-specific velocity number is not published here.
The same rule applies to the migration itself. AI-improved migration is the concrete list: a content audit for dead pages, duplicates, and outdated copy; rewrites for clarity and answer-first structure; drafted JSON-LD; alt text and accessibility fixes; a proposed information architecture and internal links; and code a person reviews, with automated tests and visual regression before launch. Optional features on the new site — search or a Q&A assistant over that site's content, smart forms, and personalization — are quoted add-ons. They are not part of the $999 floor. Human review is on everything. Rankings, citations, and Core Web Vitals scores are not guaranteed.
Illustration · search
drupal 10 end of life
Drupal 10 ends December 9, 2026
A result title and a source line. Not a picture of Google.
Illustration · answer
Drupal 10 reaches end of life on December 9, 2026. Drupal 12 ships the same week.
Source: Drupal.org core schedule
SEO and AI-search readiness
The migration carries metadata, a 301 for every old URL, a sitemap, and JSON-LD. Next.js prerendering produces HTML up front, which is what a crawler can read without running your client JavaScript (production checklist). Google's guidance on AI features in Search does not ask for a special AI markup file (Google Search Central). llms.txt is a convention other answer engines can read. Publishing it is not a Google ranking lever.
No one can guarantee rankings or citations. The SEO and AI search add-ons say that in the price. Google stopped showing FAQ rich results on May 7, 2026 (Search Engine Land). This page still publishes FAQPage markup for other answer engines.
Editor and content options
Two honest options, chosen at the audit:
- MDX or Markdown in the repository. Next.js can compile local
.mdand.mdxfiles, including React components inside the content (Next.js MDX). A developer reviews the change in Git. That suits a marketing site more than a newsroom. - A headless CMS. Editors get a UI. The Next.js app reads from it. Which product is the default is chosen at the audit. The migration page says the same thing.
Drupal's built-in editor, Layout Builder, and revisions are a real reason to stay. If your editors live there and the Drupal 11 upgrade is small, do the upgrade. This is not a claim that every site should leave.
Scalability
A static page that sends s-maxage=31536000 can be served from the CDN without running your application again for that response (Next.js CDN caching). A PHP request typically occupies a worker until Drupal finishes. Caching is the scaling story. It is not a requests-per-second trophy. Dynamic routes, personalized HTML, and on-demand revalidation still need a plan, because a CDN can keep serving a cached copy until you purge it (same Next.js doc). A capacity number for your traffic is not published.
Jan 2025
Drupal 7 ended
Passed
Oct 21, 2026
PHP2Shell patches
Passed
Dec 9, 2026
Drupal 10 ends
Ahead
Dec 31, 2026
PHP 8.2 security ends
Ahead
The Drupal 7 and 10 end-of-life cycle
Drupal 7 reached end of life in January 2025 (Drupal.org). Drupal 10 ends on December 9, 2026, the week Drupal 12 ships (core schedule). PHP 8.2 security support ends December 31, 2026, and the PHP2Shell fixes do not extend that date (php.net).
Leaving that calendar is one of the Drupal to Next.js benefits. You trade it for Next.js majors and npm advisories. Those ship as a commit and a redeploy, not as a PHP package on a server. Dates and the three Drupal 10 options are on the Drupal 10 and Drupal 7 pages.
Tonight
Patch
Your host or sysadmin installs the fixed PHP build and restarts the worker. The PHP server stays.
Next
Migrate
A later project. Next.js on Netlify, Supabase with row-level security, and no PHP process left to patch.
Tradeoffs
- npm dependency updates are still required. React and Next.js shipped fixes for a critical remote-code-execution bug, CVE-2025-55182, in December 2025 (React, Next.js). Staying patched means upgrading packages and redeploying.
- The migration is a project. Content models, permissions, redirects, and editor workflow all get rebuilt. A down site that is not complex can be the $4,999 overnight migration. E-commerce or several integrations start with the $499 audit. Standard work starts at $999 and rises with logins and custom features. Page count is not the price.
- Editors may lose Drupal. If Layout Builder or a pile of contributed modules is the product, price a Drupal upgrade before you price a migration.
- RLS is only as good as the policies. An exposed table without a policy is readable (Supabase).
- Patching PHP is still the fix for a site that is staying up tonight. Migration does not patch a Drupal site that remains online. The patch guide is for your host.
Start a migration from $999 · Site down? Emergency overnight migration
FAQ
Google stopped FAQ rich results on May 7, 2026 (Search Engine Land). The questions below are still published, with FAQPage markup, for other answer engines.
What are the benefits of migrating Drupal to Next.js?
You can serve prerendered HTML from a CDN, stop running a PHP server and Drupal module updates, put access rules in Postgres, and deploy from Git. You still update JavaScript dependencies. None of that is a guaranteed Core Web Vitals score or a guaranteed ranking.
Will Core Web Vitals improve?
Not by itself. Google's good thresholds are an LCP within 2.5 seconds, an INP of 200 milliseconds or less, and a CLS of 0.1 or less, at the 75th percentile (web.dev). Next.js can prerender and cache static pages (CDN caching). Your field data after launch is the only honest before/after. Until then no before/after number is published.
Is Next.js more secure than Drupal?
It removes the PHP runtime and the Drupal module patch list from what you host. It had its own critical RCE in December 2025, CVE-2025-55182 (Next.js). Security is the update habit, not the logo.
Will hosting cost less?
Sometimes, and this page will not invent the dollar amount. Compare your current host with the published Netlify and Supabase prices during the audit. That comparison is not published until then.
What replaces the Drupal editor?
Either MDX in the Git repository (Next.js MDX) or a headless CMS chosen at the audit. The default CMS is chosen at the audit.
Does the migration use AI to improve the site, or only to port it?
Both the port and an improvement pass. AI drafts the content audit, rewrites, structured data, alt text, linking suggestions, and code. A person reviews each of those before launch. Optional on-site AI features are quoted separately and are not included in the migration price. Nothing is guaranteed. The full list is on AI-improved migration.
Sources on this page
- S02: php.net News Archive 2026: Security advisory + 8.5.12/8.4.27/8.3.36/8.2.35 release notes
- S04: Drupal.org PSA-2026-10-20: Critical PHP update on Wednesday, October 21, 2026
- S15: Drupal core release schedule (Drupal 10 EOL Dec 9, 2026; Drupal 12 week of Dec 7, 2026) — verified (search extract)
- S17: Drupal.org: Drupal 7 has reached end of life | PSA-2025-01-06
- S22: React blog: Critical Security Vulnerability in React Server Components (CVE-2025-55182) — snippet
- S23: Next.js Security Update: December 11, 2025 — snippet
- S24: Supabase Docs: Row Level Security
- S27: Search Engine Land: Google to no longer support FAQ rich results (May 2026)
- S29: llmstxt.org: The /llms.txt file, v2
- S45: web.dev: Core Web Vitals thresholds (LCP 2.5s, INP 200ms, CLS 0.1, 75th percentile)
- S47: Google Search Central: Optimizing your website for generative AI features on Google Search — not fetched directly; summarized by S28. Verify exact URL.
- S48: Next.js docs: Using a CDN with Next.js (static s-maxage=31536000, immutable /_next/static)
- S49: Next.js docs: Production checklist (prerendering, Server Components, Core Web Vitals guidance)
- S50: Next.js docs: Server and Client Components (less client JavaScript, FCP)
- S51: Next.js docs: MDX
- S52: Netlify docs: Build overview (Git push runs the build and deploys to the CDN)