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.

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.


