Title: Transit &#8211; Site Migration &amp; Backup
Author: Mizanur Rahaman
Published: <strong>October 11, 2026</strong>
Last modified: October 11, 2026

---

Search plugins

![](https://ps.w.org/transit-site-migration/assets/banner-772x250.png?rev=3739868)

![](https://ps.w.org/transit-site-migration/assets/icon-256x256.png?rev=3739868)

# Transit – Site Migration & Backup

 By [Mizanur Rahaman](https://profiles.wordpress.org/devmizan/)

[Download](https://downloads.wordpress.org/plugin/transit-site-migration.1.0.0.zip)

 * [Details](https://kea.wordpress.org/plugins/transit-site-migration/#description)
 * [Reviews](https://kea.wordpress.org/plugins/transit-site-migration/#reviews)
 *  [Installation](https://kea.wordpress.org/plugins/transit-site-migration/#installation)
 * [Development](https://kea.wordpress.org/plugins/transit-site-migration/#developers)

 [Support](https://wordpress.org/support/plugin/transit-site-migration/)

## Description

Transit packs your complete WordPress site into a single `.tsmig` file and restores
it on any other WordPress site: a new domain, a new host, or local  live. URLs, 
server paths and the database table prefix are updated automatically while the database
is imported — no separate search-and-replace step.

#### Built for large sites

 * **No size limit from your host.** Uploads are sent in chunks, so `upload_max_filesize`
   doesn’t matter. Big files — a 20 GB video — are copied across as many requests
   as needed.
 * **Every request stays short.** Export and import work in steps of about 20 seconds,
   well below PHP and proxy timeouts.
 * **Flat memory use.** Files are streamed straight to disk, and the database is
   read with index-based pagination, however many rows a table has.
 * **Resumes after interruptions.** Close the page, lose the connection or hit a
   server timeout: the export, the upload and the import continue where they stopped.
   Downloads can be resumed too.
 * **Crash-safe.** A request that dies mid-write is rolled back and redone. Database
   imports run in transactions, so an interruption never duplicates rows.
 * **WP-CLI support** for very large sites: `wp transit-site-migration export` and`
   wp transit-site-migration import`.

#### What a backup contains

 * The database — every table with your site’s prefix
 * Media library (`wp-content/uploads`)
 * Plugins, themes and must-use plugins

WordPress core, `wp-config.php` and transients (temporary cache data) are not included.

#### Import that just works

 * Site URL, `https`/`http`, `www`, JSON-escaped and URL-encoded URLs, email domains
   and server paths are replaced.
 * Serialized data (widgets, theme and plugin settings) stays valid.
 * A different table prefix on the new site is handled.
 * After import, plugins that were active stay active. Caching and host-specific
   plugins are deactivated with a clear note, and caches (including Elementor CSS
   and block-theme styles) are cleared.
 * Server checks run before an import: PHP version, memory, disk space, folder and
   database permissions.

#### Backups page

Every backup is listed with its source site, date and size. Download it, import 
it again with one click (no re-upload), or delete it. The newest 5 backups are kept
automatically.

#### Privacy

Transit does not connect to any external service and sends no data anywhere. Backups
stay on your server in `wp-content/transit-site-migration-backups/`, which is protected
against direct web access.

## Installation

 1. Install Transit from **Plugins  Add New** and activate it — on both the old and
    the new site.
 2. On the old site, go to **Transit  Export** and click the export button. Download
    the file when it’s done.
 3. On the new site, go to **Transit  Import**, drop the `.tsmig` file onto the page
    and confirm.
 4. When the import finishes, log in with the **old site’s** username and password.

#### Nginx servers

Apache, LiteSpeed and IIS block direct access to the backup folder automatically.
On Nginx, add this to your server block:

    ```
    location ^~ /wp-content/transit-site-migration-backups/ { deny all; }
    ```

## FAQ

### Is there a file size limit?

Transit accepts backups up to 100 GB (a filter can raise this). Your server needs
enough free disk space for the backup file.

### The import overwrote my users — why can’t I log in?

The whole database is replaced, including users. Log in with the username and password
of the site you exported from.

### What happens to URLs and links?

They are changed to the new site’s address during the import, including links inside
page builder data and serialized settings.

### The export or import stopped. What now?

Open the Export or Import page again. Transit continues where it left off.

### My host has short timeouts.

Steps take about 20 seconds by default. Lower it with the `transit_site_migration_step_time_budget`
filter, or use WP-CLI, which has no web timeouts.

### Does Transit work on WordPress Multisite?

Not yet. On a Multisite network Transit is disabled and shows a notice.

### File changes are disabled on my site (DISALLOW_FILE_MODS).

Transit respects it: the database and media are restored, but plugin and theme files
from the backup are not installed. A warning lists how many were skipped.

### Why is it slow on my Windows computer?

Antivirus software such as Windows Defender scans every script file as it is opened,
which slows down copying plugin files. Linux hosting servers are not affected.

### Can I use WP-CLI?

Yes:

    ```
    wp transit-site-migration export
    wp transit-site-migration import /path/to/site.tsmig
    wp transit-site-migration list
    ```

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Transit – Site Migration & Backup” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Mizanur Rahaman ](https://profiles.wordpress.org/devmizan/)

[Translate “Transit – Site Migration & Backup” into your language.](https://translate.wordpress.org/projects/wp-plugins/transit-site-migration)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/transit-site-migration/),
check out the [SVN repository](https://plugins.svn.wordpress.org/transit-site-migration/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/transit-site-migration/)
by [RSS](https://plugins.trac.wordpress.org/log/transit-site-migration/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First public release.

## Meta

 *  Version **1.0.0**
 *  Last updated **3 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/transit-site-migration/)
 * Tags
 * [backup](https://kea.wordpress.org/plugins/tags/backup/)[clone](https://kea.wordpress.org/plugins/tags/clone/)
   [migrate](https://kea.wordpress.org/plugins/tags/migrate/)[migration](https://kea.wordpress.org/plugins/tags/migration/)
   [restore](https://kea.wordpress.org/plugins/tags/restore/)
 *  [Advanced View](https://kea.wordpress.org/plugins/transit-site-migration/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/transit-site-migration/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/transit-site-migration/reviews/)

## Contributors

 *   [ Mizanur Rahaman ](https://profiles.wordpress.org/devmizan/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/transit-site-migration/)