websites.new

Decoupled or replaced: the Drupal to Next.js route

Drupal to Next.js: what moves, what breaks, what it takes.

Free assessment01 / 02

Step one · Your website

Which website should we assess?

Public pages only. No login, no code installed, no obligation. The report link is unlisted and emailed once. Three checks per hour per connection. Read the privacy policy.

Your public pages settle this move more than any vendor pitch. Trust the pages. Here you see what transfers from Drupal, how you protect your search traffic, what you spend in time, and when you should stay put. The free assessment reads your HTML, but it skips your logins, analytics, and field data, and it does not interview your team. That boundary is part of the answer (and I'd rather say so up front), because public markup can guide the decision while private workflow and content rules still need your own review.

On this page 9 sections
  1. 01What transfers from Drupal to Next.js, and what does not?
  2. 02How do you plan the URL map and redirects so your search traffic survives?
  3. 03How is content moved from Drupal: export, API or crawl?
  4. 04What do your editors get on Next.js compared with Drupal?
  5. 05How long does a Drupal to Next.js migration take, and what drives the effort?
  6. 06When should you not move from Drupal to Next.js?
  7. 07The checklist, step by step
  8. 08Questions, answered
  9. 09Your next read

What transfers from Drupal to Next.js, and what does not?

Your content model survives only if you keep Drupal behind the new front end. The same rule applies to your permissions and your editors' habits. Your Twig templates and theme do not transfer either way, so do not plan on carrying the old presentation with you. In a decoupled setup, your pages pull from the JSON:API module, standard across decoupled Drupal applications, and you rebuild only the presentation layer. But if you retire Drupal, you redesign the model on the target instead.

Check your assumptions before building. Start with the hidden pieces. You cannot query your site name, slogan, front page, logo, or favicon over JSON:API because they live in simple config, so you rebuild those manually. Those details are not edge cases, and they are the ones that get forgotten. Your inline images and view-embed tokens break like WordPress shortcodes, so you audit every instance before cutover. Paragraphs and entity reference fields map closer to headless models than WordPress structures do, which gives you an early start on the schema.

How do you plan the URL map and redirects so your search traffic survives?

You map your URLs before you write code: export every live URL and path alias, then pair each one with a single new address. Do that first. Drupal's Redirect module assigns one canonical URL per piece of content and points other aliases there with a 301, so your existing redirects belong in your inventory from the start. Existing aliases are part of the map, and treating them as post-launch cleanup is how traffic quietly leaks. If your site routes multiple aliases to one node, you decide which one survives.

On the new host, you configure server-side 301 or 308 redirects without chains. Then clean up. Update your internal links, publish a new sitemap, point your canonical tags to the new URLs, and clear any temporary noindex rules. Canonical tags must name the new addresses, not the old ones. And if you rely solely on rel=canonical, remember Google treats it as a hint, not an instruction. Use the URL Inspection Tool to test your redirects, or write a script if you manage thousands. For your large site, migrate in sections, monitor your traffic on both origins, and check your 404 reports for URLs you missed. Keep your redirects live for at least a year.

How is content moved from Drupal: export, API or crawl?

You extract content from Drupal through API requests. Database exports and page scrapes are the other paths. Use the cleanest source when you can. The API provides that source because your content is already structured. With JSON:API enabled, you request a path like /jsonapi/node/article and receive your articles as typed JSON with references intact. A raw export produces flat files you must reshape. A crawl captures only what your rendered pages show, so treat it as a fallback for orphaned pages (and nothing more).

You still map the data manually first. No shortcut here. Schema translation requires your attention before any script runs. Reference modeling and locale rules do too. Run your automated import last, not first. After that, your target system ingests records through its import tool or write API. If you keep Drupal as the backend, you skip the import, and your front end queries the same API live.

Your media needs its own pass: files, alt text and PDFs move separately, and your editors should spot-check a sample of each content type afterward.

What do your editors get on Next.js compared with Drupal?

Your editors get preview screens and on-demand publishing only if you build them, because your Next.js front end drops Drupal's theme layer. Drupal no longer does that work for the new front end. In the decoupled route, your editors keep the Drupal admin they know, and you wire up Draft mode so they can open a node page and preview unpublished drafts and revisions. The preview button can also work before the first save.

You configure what refreshes. Be exact. With the tags plugin, your Drupal site pushes cache tags to your Next.js revalidation endpoint, and that endpoint invalidates the related data. That only covers what you connect. If your front page lists articles, you must add its path to the article revalidation settings manually. So verify every listing page you run (the stale ones are always the ones nobody checked).

If you move to a headless CMS instead, your editors learn a new hosted interface. That is the trade. Sanity Visual Editing gives them a click-to-edit jump from your site preview into the Studio, on all plans. Behind that, you leave Drupal's modules behind, and you rebuild your permissions rather than carry them over.

How long does a Drupal to Next.js migration take, and what drives the effort?

Your timeline depends on five drivers you can count today. Start with your URL count and your content types. Count your media assets next. Add your integrations and your locales. On the heavy end, one published benchmark places typical enterprise Drupal to Contentful migrations at 12 to 22 weeks with moderate risk. That window covers model redesign and import, plus a full front-end rebuild. Localization, workflow setup, and editor training sit in that same window. Your site may sit well below that, so size it from your own counts, not from someone else's average.

Keeping Drupal cuts your content migration time. But you still run two systems. That means a Drupal host and a Next.js host for your team to patch and monitor. Replacing Drupal adds your content migration and ends your Drupal hosting footprint.

I plan and run migrations like this one, taking legacy setups and WordPress estates to Astro or Next.js. Counts come first. Your locale count and your integration list tell me more at the start than your page count does, so I look there before I look at volume.

When should you not move from Drupal to Next.js?

You should not move if your Drupal site is healthy. If your editors work well in it and your search traffic is stable, a migration puts all three at risk. Stay where you are when the free assessment rates your site in good standing, 80 to 100, and your weak points, such as HTTP headers, caching, schema output, or image weight, can be fixed inside Drupal. That is a fix-in-place case, and calling it a migration case would be selling you work you don't need.

Stay if you cannot afford to run two systems, since a decoupled build leaves you with Drupal plus a separate front end. Cost counts. Hold off if your only reason is fashion. A move pays when you need an application. And it pays when you need personalization or many editors working in a structured model.

You choose by fit. Keep it that simple. Astro suits you if your site is content or marketing pages. For an application, personalization, or many editors, Next.js with Sanity or Contentful suits you. Astro drops your editors' visual canvas, and a headless CMS swaps your modules and self-run admin for a managed dashboard.

The checklist, step by step.

  1. 01

    Inventory every URL and content type

    List every URL, path alias, content type and media file on the Drupal site, plus the redirects the Redirect module already holds.

  2. 02

    Design the content model on the target

    Translate your paragraphs and entity references into the target's schema by hand. Settle locale decisions before any script runs, because a script will faithfully automate a wrong decision.

  3. 03

    Extract content by export, API or crawl

    Pull content through JSON:API or an export, use a crawl only for orphaned pages, and run the automated import last.

  4. 04

    Map media and build the redirect table

    Pair every old URL with one new address, move files and alt text, and prepare 301 or 308 redirects without chains.

  5. 05

    Build and preview the new site

    Build the front end. Then wire up Draft mode and on-demand revalidation so editors can check unpublished work before launch.

  6. 06

    Check SEO parity

    Compare titles, canonicals, structured data, hreflang, and sitemaps against the source. Then point canonicals at the new URLs.

  7. 07

    Launch in stages with monitoring

    Move a large site in sections, and watch traffic and 404 reports on both the old and new sites.

  8. 08

    Keep the source read-only, then decommission

    Hold the old site read-only for a rollback window, then retire it and keep the redirects for at least a year.

Questions, answered.

01Can you keep Drupal and still use Next.js?

Yes. You keep Drupal as the content backend. Through the core JSON:API module, you expose your content, and you build a Next.js front end that reads it. That is the route. Next-Drupal 2.0, announced stable on February 11, 2025, supports the App Router, Next.js 15 and Drupal 11, and adds tag-based invalidation, so your editors keep their admin.

02Do you need to move off Drupal 9 first?

Official Next-Drupal support for Drupal 9 and Next.js 13 has ended, following the end-of-life of those projects. Plan around that. If your site still runs Drupal 9, you should plan an upgrade to a supported Drupal version alongside, or instead of, the front-end move. The free assessment reads your public pages, so you can see your starting condition first.

03How long should you keep your redirects after launch?

Keep your redirects for at least a year, according to Google's site-move guidance. Make them permanent. Use server-side 301 or 308 redirects without chains, and watch your 404 reports for old URLs you missed. Your old origin should stay read-only for a rollback window, and then you decommission it once your traffic holds on the new URLs.

04What can the free assessment tell you about your Drupal site?

The assessment reads your homepage and up to eight sampled pages for headers, markup, structured data, headings, script and image weight, then returns one score out of 100. It also reads the Wayback Machine index for your site. Login access is not part of it. Analytics and field performance are outside its reach, so it informs your decision without making it.

  1. 01Drupal alternativesUpgrade, decouple or move, judged by your pages.
  2. 02Drupal to WordPressWhen simpler is right, and what the content model loses.
  3. 03Next.js SEO auditRendering mode, metadata, hydration cost.
  4. 04Headless CMS SEO auditRendering, canonicals, previews, schema from the template.

Sources

Facts on this page come from the documents below, checked on 2026-11-01. Figures about the assessment itself describe how it works.

  1. Getting Started with JSON API and REST | Decoupled Drupal
  2. Modules | Drupal.org
  3. GitHub - wunderio/next-drupal-starterkit: Next.js for Drupal multilingual template by Wunder · GitHub
  4. On-demand Revalidation - Next.js for Drupal
  5. Next-Drupal 2.0
  6. GitHub - pantheon-upstreams/demo-nextjs-drupal-backend · GitHub
  7. Drupal CMS Alternative: Top 3 Enterprise CMS Alternatives to Drupal
  8. Headless CMS migration without breaking the content model

Free automated assessment

Find out where your website stands.