Google Cloud Migration

Managed WordPress hosting for sites built on Google Cloud.

On GCP the pieces of a WordPress site are usually separate products. The database is not on the instance, the uploads folder is often empty, and the caching happens before any of it.

Cloud SQL exported directlyBucket media brought backFree migration
Free migrationManaged databaseMedia re-homedDaily backupsFree SSL24/7 support
Assembled from services

A WordPress site spread across four products.

Nothing here is unusual for GCP, but it does mean a filesystem copy of the instance gets you a fraction of the site.

A database that is not on the machine

Cloud SQL runs as its own instance, so a mysqldump over SSH on the VM reaches a database that may not be there. The export is taken from the SQL instance itself.

Exported from Cloud SQLPrivate IP handled

Media in a bucket, not in uploads

With an offload plugin in place, wp-content/uploads on the instance can be nearly empty while every image serves from Cloud Storage. Copying the disk alone produces a site with no pictures.

Rules that live at the load balancer

Redirects, WAF rules and Cloud CDN behaviour are configured on the HTTPS load balancer, not in WordPress, so they exist nowhere in a site backup and are captured explicitly.

Service accounts plugins depend on

Plugins authenticating to Google services do so through a service account key. Those credentials stop working the moment the project is torn down, so what uses them is listed first.

Cron running as a scheduler job

WordPress cron on GCP is frequently driven by Cloud Scheduler hitting wp-cron.php on a fixed interval, which is a configuration outside the site and easy to leave behind.

Migration

Inventory the project, not the instance.

The useful question is not what is on the VM. It is which Google products the site quietly depends on, because those are what a copy will miss.

  • Cloud SQL exported at the instance, not over SSH
  • Bucket media re-homed and URLs rewritten
  • Load balancer and CDN rules captured
  • Project left running until you confirm
Cloud SQL
Exported directly
1.9 GB
Bucket media
Re-homed
24,600 files
LB rules
Captured
12 rules
DNS cutover
Awaiting your go-ahead
scheduled
Performance

Fewer moving parts, same delivery.

A well-built GCP deployment performs. What it also does is bill for five services and require somebody who understands all of them.

Free
migration, done by us
One
bill, not five
14
edge regions
MagicWP132 ms
GCE instance, no CDN480 ms
Cross-region Cloud SQL700 ms

Illustrative comparison of a page load before and after the move. Your numbers depend on how the project was assembled.

Configuration

What we change when a site arrives from Google Cloud

Each row here is a Google product doing a job that moves back into the stack.

SettingWhat we doWhy
Database exportTaken from the Cloud SQL instance rather than the compute instanceCloud SQL is a separate managed product, so a dump run over SSH on the web server reaches either nothing or a stale local copy left over from an earlier setup.
Media storageObjects pulled back from Cloud Storage and URLs rewrittenAn offload plugin can leave the uploads directory almost empty while every image serves from a bucket, so a disk copy produces a site whose media all 404s.
Edge and routing rulesLoad balancer redirects, WAF and Cloud CDN behaviour recreated in-stackThose rules are configured on the HTTPS load balancer and never touch WordPress, which means no site backup contains any evidence that they existed.
Service account keysDependent plugins identified and re-credentialed before cutoverPlugins that authenticate to Google services break silently when the project is deleted, and the failure surfaces weeks later as a form or a backup that stopped running.
Scheduled workCloud Scheduler triggers replaced with platform cronGCP deployments commonly disable WordPress cron and drive it from an external scheduler, so moving the files alone leaves a site where nothing scheduled ever fires.
Plans

Simple, transparent pricing.

Every plan includes free migration, daily backups, SSL and 24/7 support.

MonthlyYearly
Starter
For personal sites, blogs, and portfolios.
$20/mo
Billed $240 yearly · save $60
  • 1 WordPress site
  • 10 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Support tickets
Start free trial
Pro★ Most popular
For growing businesses and busy stores.
$80/mo
Billed $960 yearly · save $240
  • 5 WordPress sites
  • 50 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Priority support tickets
Start free trial
Enterprise
For agencies and high-traffic platforms.
$250/mo
Billed $3000 yearly · save $600
  • 20 WordPress sites
  • 200 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Dedicated support
Start free trial
FAQ

Questions, answered.

My database is in Cloud SQL. How does that get exported?
From the Cloud SQL instance directly, not from the web server. Running a dump over SSH on the compute instance is the common mistake — the database is not there, so you get either a connection error or an outdated local copy.
My images are in a Cloud Storage bucket. Do they move?
Yes, they are pulled back and the URLs in your content are rewritten to match. This matters because with an offload plugin the uploads folder on the instance is often nearly empty, so copying the disk alone gives you a site with no images.
I have redirects on the load balancer. Will you find them?
They are captured as part of the inventory and recreated. Rules configured on the HTTPS load balancer never reach WordPress, so nothing in a site export records them and they disappear the moment traffic stops going through it.
Can I delete my GCP project straight after the move?
Wait. Deleting the project revokes every service account key with it, and plugins authenticating to Google services will fail without an obvious error. List what depends on those keys first.
Will this cost less than running it on GCP?
Usually, though the honest answer is that it depends on what you provisioned. The bigger difference is that it becomes one bill and one support contact rather than several products that each need someone who understands them.

Keep the architecture, lose the assembly.

Free migration, every Google product inventoried, and nothing torn down until you say so.