Run WordPress headless

Updated October 7, 2026 · 3 min read

Show a WordPress site’s content on an Astro, Next.js or Nuxt frontend. Nuvlo deploys the frontend, sets the variables that connect the two, and keeps WordPress visitors and product updates pointed at the frontend.

On this page
  1. Step 1: Start a headless site
  2. Step 2: Choose the WordPress backend
  3. Step 3: Deploy the frontend
  4. Step 4: Check the connection
  5. Step 5: Set search results
  6. Step 6: Set visitors and links
  7. Step 7: Check product updates
  8. On the WordPress site
  9. Disconnect

Before you start

  • A WordPress site in Nuvlo, for example on cms.example.com. Create one first, or move one in.
  • The frontend’s code in a Git repository, connected to Nuvlo. See Connect Git.
  • A server for the frontend created as Node.js apps, Mixed projects or Headless. A Headless server can run both WordPress and the frontend.

Step 1 Start a headless site

Click Create, then Site, and choose the Headless site type.

The Headless site type.

You can also start from the WordPress site: open its Headless tab and click Create a frontend for this site. That picks the WordPress site for you.

Step 2 Choose the WordPress backend

Under WordPress site, pick the site the frontend loads its content from. Click Next: choose the frontend.

The WordPress site keeps its own address. Visitors use the frontend’s domain.

Pick the WordPress site.

Step 3 Deploy the frontend

Continue as for any app: choose the repository, framework, domain and settings, then deploy. See Deploy an application.

Nuvlo sets these variables on the frontend. Your code reads them:

VariableValue
WORDPRESS_URLThe WordPress site’s address
SITE_URLThe frontend’s own address
WOOCOMMERCE_WEBHOOK_SECRETThe secret that signs product updates
SITE_INDEXABLEWhether search engines may show the frontend

After the first deploy, Nuvlo connects WordPress to the frontend and installs the Nuvlo plugin on WordPress if needed. If WordPress isn’t connected after the deploy, click Reconnect WordPress on the frontend’s Headless tab.

Step 4 Check the connection

Open the frontend and click its Headless tab. The WordPress card shows Content from with Connected, or Needs attention with the problem and a Reconnect WordPress button.

If the WordPress theme isn’t Nuvlo Blank, click Switch to Nuvlo Blank. Visitors never see the theme, and Nuvlo Blank loads nothing, so you can remove page builders.

The frontend’s Headless tab holds the settings.

Step 5 Set search results

In Search results:

  • Turn on the frontend’s switch when it runs on its final domain.
  • Keep the WordPress site’s switch off, so search engines only find the frontend.
  • Titles, schema and sitemap come from Nuvlo SEO on the WordPress site. Click Install Nuvlo SEO if it isn’t installed, or Open SEO settings.

Changing these deploys the frontend with the new values.

Step 7 Check product updates

With WooCommerce, the Product updates row shows whether WooCommerce tells the frontend right away when products change. Click Send a test update to check the frontend accepts it.

Under Advanced, you can change the variable names, the address that receives updates, which changes are reported, pages that stay on WordPress, and replace the webhook secret.

On the WordPress site

The WordPress site’s Headless tab shows which frontends show its content, the theme, and Edit settings, which opens the frontend’s tab. Its header links to the frontend with Open frontend.

The WordPress side of a headless site.

Disconnect

On the frontend’s Headless tab, open Advanced and click Disconnect. WordPress shows its own pages again and stops sending product updates.