Back to the blog

Low PHP limits? How the migration keeps going

Short steps, saved progress and uploads that resume: why ordinary hosting limits only make the migration slower.

Caminho luminoso com etapas concluídas e uma etapa em andamento.

Shared hosting often limits how long a PHP request can run and how much memory it can use. A migration that tries to do everything in one request fails on many of these accounts. The BladeCP WordPress Migrator was built the other way around.

Short steps that save their progress

Every step works for half of max_execution_time, at most 20 seconds, and stops before it gets close to the memory limit. Then it saves where it stopped. If a request is cut by a timeout, the next step picks up from the last saved point.

A package written as a stream

The package is a tar stream compressed in gzip members, written without ZipArchive, shell commands or loading whole files into memory. A single large file can span many steps.

Uploads that resume

Large files are sent in parts, read from disk in small chunks. If the upload is interrupted, it resumes without sending again the parts BladeCP already has.

Layers of waves from lavender to deep indigo.
Each step does a little, saves its place and lets the next one continue.

Keep the page open, or not

While the migration screen is open, the browser drives the steps and the work goes fastest. If you close it, WP-Cron continues in the background, more slowly. When WP-Cron is disabled on the site, keep the page open.

Low limits only make the migration slower. The check warns you when something really blocks it, such as missing disk space.

More notes on moving WordPress sites

Bring this experience to your WordPress

Explore the BladeCP WordPress Migrator, follow the project on GitHub, and download the latest version when it becomes available.