Your WordPress, running on Cloudflare Workers.
One command moves a running WordPress site onto Cloudflare's serverless platform. The same WordPress, the same plugins and theme, your existing MySQL database. No server to look after, no rewrite, no new CMS.
npx hostlesswpOpen the live demo → A real WordPress with WooCommerce on Workers. Log in with demo / demo; it resets every 3 hours.
Why it exists
WordPress without the server
A WordPress site today means a server someone rents, sizes, patches and watches, mostly idle and still sized for the busiest hour. Static exports and headless rewrites remove the server but also the checkout, the logins and half the plugins. HostlessWP keeps WordPress whole and takes the server away.
Nothing to maintain
No server, no PHP to patch
No operating system, web server or PHP-FPM of yours to update. Cloudflare runs the Worker; you deploy WordPress.
Why serverless →Still WordPress
Dynamic, not a static copy
Real PHP runs every request, so checkout, comments, search, forms and logins keep working, with your plugins and theme.
Compared with static and headless →Yours to keep
Your data stays where it is
Your MySQL stays on its current host. Code and media go to your own Cloudflare account and bucket. Leave any time by pointing the domain back.
What stays yours →Free for small sites
$0 hosting at low traffic
Workers, Hyperdrive, KV and R2 all have free tiers. A blog or business site runs on them; Workers Paid is $5 a month when you outgrow them.
What the free tiers cover →Hard to infect
No server to hack, no files to plant
No SSH or control panel to break into. Code is read-only and rebuilt from the deploy, and uploads are never run as PHP, so a backdoor has nowhere to stay.
How it is protected →Nothing to lose
No disk that can fail
Code is kept with every deploy, media sits in object storage with several copies. A dead server disk can no longer take your site and images with it.
Where everything lives →What the command does
Run it in the folder that holds wp-config.php, on your server over SSH or on a copy of the site. It explains each step before it takes it.
Checks your site
Reads wp-config.php and your database, lists your plugins against the tested list, and tells you up front what will not work. Read-only.
Connects your database
Your MySQL stays where it is. Cloudflare reaches it through Hyperdrive, over the internet with SSL or through a Cloudflare Tunnel if it is private.
Deploys a copy
Packages WordPress, your theme and plugins, copies your media to your bucket, precompiles the PHP, and deploys to a test address. You switch your domain when you are happy.
How it runs
PHP 8.3 compiled to WebAssembly runs inside a Worker. WordPress core is not modified; a small runtime layer connects it to Workers.
Our test results
Measured in October 2026 with WordPress 7.1.3 and MySQL 8.0 in US East. Times are PHP processing per page (warm), including database waits; cached pages for logged-out visitors skip PHP entirely. The full method is on the benchmarks page.
| Setup | Per query | Core home page | WooCommerce home page |
|---|---|---|---|
| Worker near the visitor (Singapore), database in Virginia | ~230 ms | 7.7 s | 19.6 s |
| Worker next to the database (what hostlesswp sets up) | ~33 ms | ~1.2 s | ~3 s |
| Next to the database, direct connection without Hyperdrive in progress | ~2 ms | 0.07 s | 0.19 s |
Placement is the biggest factor, so hostlesswp finds where your database is and runs the Worker there: that alone made pages 6 times faster. Hyperdrive added about 30 ms per query; the direct connection in the last row removes that and is what we are working on next.
Works today, and what does not
The 30 most-installed plugins load and work at page level. Five had their main flows tested end to end, including a real WooCommerce checkout.
Works
Tested- Pages, posts, comments, search and feeds
- Admin and loginsExisting sessions stay valid
- REST API and block editor
- WooCommerce checkoutTested end to end, 14 steps
- Elementor editor and Yoast sitemaps
- Your media library and new uploadsKept in your S3-compatible bucket (R2, S3, B2, MinIO)
- Page cache for visitorsLogged-out pages answered from Workers KV without starting PHP
- WP-CronFrom a Cron Trigger every 15 minutes
Not yet
Known limits- Email through PHP
mail()Use a mail plugin that sends over an HTTP API - Installing plugins from the adminChange them on your source site and redeploy
- Multisite
- Redis or Memcached object cachesWordPress uses its built-in cache
- ImagickImages are processed with GD
What you need
Accounts and services you likely have already. hostlesswp checks each one and explains what to change.
A Cloudflare account
The Free plan runs a site in our tests. Workers Paid ($5/month) lifts the Free plan's daily limits of 100,000 requests and 100,000 database queries, for busier sites.
MySQL with SSL
Hyperdrive only connects over SSL. Most managed databases have it on; hostlesswp tells you how to turn it on if not.
An S3-compatible bucket
For your media library, because a Worker has no lasting disk. Cloudflare R2, AWS S3, Backblaze B2 or MinIO all work.
Node.js 20+
Where you run the command. Node 24 or newer also precompiles PHP for faster cold starts.
Questions
Can WordPress really run on Cloudflare Workers?
Yes. Workers have no PHP of their own, so HostlessWP runs PHP 8.3 compiled to WebAssembly inside the Worker and connects it to your MySQL through Hyperdrive. WordPress core is not modified. Cloudflare Pages, by contrast, can only host a static export. The longer answer.
Is it a static export?
No. Real PHP runs for every request that is not answered from the page cache, so checkout, comments, search, forms and logins keep working. See static export vs dynamic WordPress.
Does it change my current site?
No. hostlesswp reads your files and database and deploys a copy to a workers.dev test address. Your current host keeps serving your domain until you add the domain to the Worker yourself. The only database writes are the normal ones any visitor causes when the copy renders a few pages.
Where does my data live?
In your MySQL database, where it is today. Cloudflare connects to it through Hyperdrive with caching turned off. Code goes to your own Cloudflare account and media to your own bucket. hostlesswp keeps no copy anywhere else.
What if a plugin is not on the list?
Most plugins that only use WordPress APIs work. Plugins that write files to disk, need PHP extensions php-wasm does not have, or run long background jobs are the likely problems. Run npx hostlesswp check for a report, then try it on the test address; the source site is untouched either way.
How do I update plugins or WordPress?
Update them on your source site (or the copy you ran hostlesswp on), then run npx hostlesswp deploy. Installing from the Worker's admin is disabled because its file system does not persist.
Is it fast?
Pages for logged-out visitors come from the page cache in milliseconds, without starting PHP. Pages that do run PHP (the admin, carts, checkout) depend mostly on where the Worker runs relative to the database, which is why hostlesswp places it next to the database. See our test results above.
What does it cost?
hostlesswp is free and open source (GPL-2.0-or-later, like WordPress). The Workers Free plan runs a site; Workers Paid ($5/month) raises the daily request limits. You keep paying for your database where it is, and for media storage (R2 has a free tier). What the free tiers cover.
How do I go back?
Point your domain back to your old host. Your database never moved, so nothing needs to be copied back. Media uploaded while the site ran on Workers is in your bucket.
Try it on a copy of your site
Nothing changes on your current host. If you do not like the result, delete the Worker.