{"id":333890,"date":"2026-08-12T13:05:13","date_gmt":"2026-08-12T13:05:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/backsiteup\/"},"modified":"2026-10-08T01:11:25","modified_gmt":"2026-10-08T01:11:25","slug":"webangon-site-backup","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/webangon-site-backup\/","author":15600099,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.3","requires":"4.7","requires_php":"7.0","requires_plugins":null,"header_name":"Site Backup & Migration \u2013 Backup, Restore, Migrate & Clone","header_author":"webangon","header_description":"Simple WordPress backup plugin for creating ZIP archives of your site files before updates, changes, or migration work.","assets_banners_color":"e8f1fc","last_updated":"2026-10-08 01:11:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/webangon.com\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":249,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"webangon","date":"2026-10-08 01:11:25","revision":3733518}},"upgrade_notice":{"1.1.0":"<p>Adds Google Drive and Dropbox cloud backup and scheduled automatic backups. Large backups now upload reliably on hosts with small upload limits (2 MB) and nginx\/ModSecurity body limits.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3733518,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3733518,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3733518,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3733518,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3645774,"resolution":"1","location":"assets","locale":"","width":1603,"height":853},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3645774,"resolution":"2","location":"assets","locale":"","width":1589,"height":866}},"screenshots":{"1":"Backup dashboard \u2013 create content or full backups and manage archives.","2":"Upload or import a backup \u2013 adaptive chunked upload with live progress.","3":"Backup schedule \u2013 automatic backups with retention.","4":"Cloud storage \u2013 connect Google Drive and Dropbox."}},"plugin_section":[],"plugin_tags":[151,2814,4151,4155,152],"plugin_category":[59],"plugin_contributors":[183622],"plugin_business_model":[],"class_list":["post-333890","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-clone","plugin_tags-migrate","plugin_tags-migration","plugin_tags-restore","plugin_category-utilities-and-tools","plugin_contributors-webangon","plugin_committers-webangon"],"banners":{"banner":"https:\/\/ps.w.org\/webangon-site-backup\/assets\/banner-772x250.png?rev=3733518","banner_2x":"https:\/\/ps.w.org\/webangon-site-backup\/assets\/banner-1544x500.png?rev=3733518","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/webangon-site-backup\/assets\/icon-128x128.gif?rev=3733518","icon_2x":"https:\/\/ps.w.org\/webangon-site-backup\/assets\/icon-256x256.gif?rev=3733518","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/webangon-site-backup\/assets\/screenshot-1.jpg?rev=3645774","caption":"Backup dashboard \u2013 create content or full backups and manage archives."},{"src":"https:\/\/ps.w.org\/webangon-site-backup\/assets\/screenshot-2.jpg?rev=3645774","caption":"Upload or import a backup \u2013 adaptive chunked upload with live progress."}],"raw_content":"<!--section=description-->\n<p><strong>Site Backup &amp; Migration<\/strong> is a lightweight, free <strong>WordPress backup and restore plugin<\/strong> for backing up your site and moving it to a new host or domain. Large backup files can be imported without paid add-ons.<\/p>\n\n<p>Most hosts limit uploads to 2\u201364 MB, which blocks importing a large backup. This plugin uploads archives in small <strong>adaptive chunks<\/strong>, so a 500 MB or 2 GB backup imports even when the host only allows 2 MB uploads. You don't need to edit <code>php.ini<\/code> or <code>.htaccess<\/code>, or buy an \"unlimited\" extension.<\/p>\n\n<h4>Why choose Site Backup &amp; Migration?<\/h4>\n\n<ul>\n<li><strong>No upload size limit<\/strong> \u2013 adaptive chunked upload bypasses <code>upload_max_filesize<\/code>, <code>post_max_size<\/code> and web server body limits (nginx <code>client_max_body_size<\/code>, ModSecurity). The chunk size shrinks automatically on HTTP 413 or timeouts and grows on fast connections.<\/li>\n<li><strong>No timeout failures<\/strong> \u2013 backups, restores and uploads run step by step, so slow shared hosting doesn't hit <code>max_execution_time<\/code>.<\/li>\n<li><strong>Safe restore<\/strong> \u2013 the database is restored into temporary tables first, so a failed restore leaves your live site untouched.<\/li>\n<li><strong>Automatic URL replacement<\/strong> \u2013 migrate to a new domain, from localhost to live, or from staging to production. Site URLs are replaced automatically, including in serialized data.<\/li>\n<li><strong>Google Drive &amp; Dropbox backup<\/strong> \u2013 send every backup off-site automatically with resumable chunked uploads, and optionally delete the local copy afterwards.<\/li>\n<li><strong>Scheduled automatic backups<\/strong> \u2013 twice daily, daily, weekly or monthly, with automatic cleanup that keeps only the last N scheduled backups.<\/li>\n<li><strong>Content backup or full backup<\/strong> \u2013 back up only the database and media library, or everything including plugins and themes.<\/li>\n<li><strong>Import from a URL<\/strong> \u2013 pull a backup straight from another server, with resumable chunked downloads.<\/li>\n<li><strong>Works on any host<\/strong> \u2013 uses PHP ZipArchive when available and falls back to WordPress's built-in PclZip.<\/li>\n<li><strong>Lightweight and free<\/strong> \u2013 no frameworks or external libraries, no account, no upsells for basic features.<\/li>\n<\/ul>\n\n<h4>Use cases<\/h4>\n\n<ul>\n<li><strong>Backup WordPress<\/strong> before updates, theme changes or plugin installs.<\/li>\n<li><strong>Migrate WordPress<\/strong> to a new host or domain.<\/li>\n<li><strong>Clone a site<\/strong> for staging, testing or a client copy.<\/li>\n<li><strong>Move localhost to live<\/strong> (Local, Laragon, XAMPP, MAMP) and back.<\/li>\n<li><strong>Ship demo content<\/strong> \u2013 export a content package for a theme or client site.<\/li>\n<li><strong>Restore a site<\/strong> after a broken update, hack or mistake.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Content backup<\/strong> \u2013 database + uploads, a portable demo\/content package.<\/li>\n<li><strong>Full backup<\/strong> \u2013 database + uploads + plugins + themes.<\/li>\n<li><strong>Cloud storage<\/strong> \u2013 Google Drive and Dropbox (your own app, tokens stay on your site), with cloud retention and one-click restore from the cloud.<\/li>\n<li><strong>Backup scheduler<\/strong> \u2013 automatic backups at a chosen time, with retention (keep last N) and run status.<\/li>\n<li><strong>One-click restore<\/strong> \u2013 restores the database (with site-URL replacement) and files from any archive made by this plugin.<\/li>\n<li><strong>Download backups<\/strong> \u2013 download archives to your computer for safe keeping.<\/li>\n<li><strong>Upload \/ import backups<\/strong> \u2013 adaptive chunked upload with automatic retry and resume.<\/li>\n<li><strong>Import from URL<\/strong> \u2013 resumable chunked transfer from a remote server.<\/li>\n<li><strong>Resumable engine<\/strong> \u2013 background (loopback) processing. If loopback is blocked, the admin page keeps the process moving.<\/li>\n<li><strong>Protected storage<\/strong> \u2013 backups are stored in a folder protected by <code>index.php<\/code> and <code>.htaccess<\/code>.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>PHP 7.0+ (64-bit recommended for archives over 2 GB).<\/li>\n<li>PHP ZipArchive (preferred) or zlib for the PclZip fallback.<\/li>\n<li>HTTP loopback recommended. Without it, keep the admin page open during an operation.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to external services <strong>only<\/strong> when you connect a cloud destination in <strong>Site Backup \u2192 Cloud storage<\/strong>. Nothing is sent before you connect an account.<\/p>\n\n<p><strong>Google Drive (Google LLC)<\/strong> \u2013 used to store copies of your backup archives in your own Google Drive.\n* When you click Connect, you are sent to Google to sign in and approve access (<code>accounts.google.com<\/code>). The authorization code, your client ID and client secret are then exchanged for tokens at <code>oauth2.googleapis.com<\/code>.\n* After each backup, the archive file (your database and files) and its filename are uploaded to <code>www.googleapis.com<\/code>. The plugin also reads your account email to show which account is connected, and creates a backup folder.\n* When you open the cloud backup list, or retention is enabled, the plugin lists the files in that folder and deletes old archives of this site. When you restore from the cloud, the chosen archive is downloaded from <code>www.googleapis.com<\/code>.\n* On disconnect, the token is revoked at <code>oauth2.googleapis.com\/revoke<\/code>.\n* Terms: https:\/\/policies.google.com\/terms \u2013 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Dropbox (Dropbox, Inc.)<\/strong> \u2013 used to store copies of your backup archives in your own Dropbox.\n* When you click Connect, you are sent to <code>www.dropbox.com<\/code> to approve access. Tokens are obtained from <code>api.dropboxapi.com<\/code> using your app key (PKCE, no secret stored).\n* After each backup, the archive file and its filename are uploaded to <code>content.dropboxapi.com<\/code>. The plugin also reads your account email to show which account is connected.\n* When you open the cloud backup list, or retention is enabled, the plugin lists the app folder and deletes old archives of this site (<code>api.dropboxapi.com<\/code>). When you restore from the cloud, the chosen archive is downloaded from <code>content.dropboxapi.com<\/code>.\n* On disconnect, the token is revoked at <code>api.dropboxapi.com<\/code>.\n* Terms: https:\/\/www.dropbox.com\/terms \u2013 Privacy: https:\/\/www.dropbox.com\/privacy<\/p>\n\n<h3>Notes<\/h3>\n\n<ul>\n<li>A <strong>full restore<\/strong> of plugins and themes needs filesystem write access. On hosts without direct access, set <code>FS_METHOD<\/code> \/ <code>FTP_*<\/code> in <code>wp-config.php<\/code>. Content restores (database + uploads) don't need this.<\/li>\n<li>Uninstalling removes the plugin's options but keeps your backup archives.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install from <strong>Plugins \u2192 Add New<\/strong> by searching for \"Site Backup &amp; Migration\", or upload the zip.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open <strong>Site Backup<\/strong> in the admin menu.<\/li>\n<li>Click <strong>Content backup<\/strong> or <strong>Full backup<\/strong>, then download the archive.<\/li>\n<li>To migrate, install the plugin on the new site, upload the archive and click <strong>Restore<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20migrate%20my%20wordpress%20site%20to%20a%20new%20host%20or%20domain%3F\"><h3>How do I migrate my WordPress site to a new host or domain?<\/h3><\/dt>\n<dd><p>Create a full backup on the old site and download it. Install WordPress and this plugin on the new site, upload the archive in <strong>Site Backup<\/strong>, then click <strong>Restore<\/strong>. URLs are replaced automatically.<\/p><\/dd>\n<dt id=\"my%20host%20limits%20uploads%20to%202%20mb.%20can%20i%20still%20import%20a%20large%20backup%3F\"><h3>My host limits uploads to 2 MB. Can I still import a large backup?<\/h3><\/dt>\n<dd><p>Yes. The archive is sent in small chunks that each fit under the limit. If the server rejects a chunk (HTTP 413) or times out, the plugin automatically retries with a smaller chunk.<\/p><\/dd>\n<dt id=\"is%20there%20a%20maximum%20backup%20size%3F\"><h3>Is there a maximum backup size?<\/h3><\/dt>\n<dd><p>The upload itself has no plugin limit. The practical limit is your disk space, and archives over 2 GB need 64-bit PHP.<\/p><\/dd>\n<dt id=\"will%20a%20failed%20restore%20break%20my%20site%3F\"><h3>Will a failed restore break my site?<\/h3><\/dt>\n<dd><p>The database is imported into temporary tables and swapped in only when the import succeeds. A failed database restore leaves your live tables untouched.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20a%20content%20backup%20and%20a%20full%20backup%3F\"><h3>What is the difference between a content backup and a full backup?<\/h3><\/dt>\n<dd><p>A content backup includes the database and the uploads folder, which suits moving content or shipping a demo. A full backup also includes plugins and themes, for a complete site clone.<\/p><\/dd>\n<dt id=\"can%20i%20move%20a%20site%20from%20localhost%20to%20a%20live%20server%3F\"><h3>Can I move a site from localhost to a live server?<\/h3><\/dt>\n<dd><p>Yes. Back up the local site, then upload and restore it on the live site. Local URLs are replaced with the live URL.<\/p><\/dd>\n<dt id=\"where%20are%20backups%20stored%3F\"><h3>Where are backups stored?<\/h3><\/dt>\n<dd><p>In <code>wp-content\/uploads\/webangon-site-backup\/<\/code>, protected by <code>index.php<\/code> and <code>.htaccess<\/code>. Archives are standard <code>.zip<\/code> files containing <code>database.json.txt<\/code> and an <code>f\/<\/code> folder with your files.<\/p><\/dd>\n<dt id=\"does%20it%20need%20the%20php%20zip%20extension%3F\"><h3>Does it need the PHP Zip extension?<\/h3><\/dt>\n<dd><p>No. ZipArchive is used when available because it is faster. Otherwise the plugin falls back to PclZip, which ships with WordPress.<\/p><\/dd>\n<dt id=\"can%20i%20schedule%20automatic%20backups%3F\"><h3>Can I schedule automatic backups?<\/h3><\/dt>\n<dd><p>Yes. In <strong>Site Backup \u2192 Backup schedule<\/strong>, choose twice daily, daily, weekly or monthly, a start time, the backup type and how many scheduled archives to keep. Older scheduled archives are deleted automatically. Manual backups are never removed. Scheduled backups use WP-Cron. If your host disables WP-Cron, add a server cron job that calls <code>wp-cron.php<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20back%20up%20to%20google%20drive%20or%20dropbox%3F\"><h3>Can I back up to Google Drive or Dropbox?<\/h3><\/dt>\n<dd><p>Yes. In <strong>Site Backup \u2192 Cloud storage<\/strong>, add your own free Google or Dropbox app credentials, click <strong>Connect<\/strong> and approve access. Every new backup (manual and scheduled) is then uploaded automatically using resumable chunked uploads, so large archives work on slow or limited hosting. You can also delete the local copy after a successful upload to save disk space.<\/p><\/dd>\n<dt id=\"why%20do%20i%20need%20my%20own%20google%20%2F%20dropbox%20app%3F\"><h3>Why do I need my own Google \/ Dropbox app?<\/h3><\/dt>\n<dd><p>Your access tokens stay on your own site, and nothing passes through a third-party relay server. Creating an app is free and takes a few minutes. Copy the redirect URI shown in the plugin into the app's settings.<\/p><\/dd>\n<dt id=\"how%20do%20i%20restore%20a%20backup%20stored%20in%20the%20cloud%3F\"><h3>How do I restore a backup stored in the cloud?<\/h3><\/dt>\n<dd><p>In <strong>Cloud storage<\/strong>, click <strong>Show cloud backups<\/strong>, then <strong>Download &amp; restore<\/strong> next to the archive. The plugin pulls it back to your server in resumable chunks and starts the restore. It works on a fresh WordPress install too: install the plugin, connect the same account, and restore.<\/p><\/dd>\n<dt id=\"can%20old%20cloud%20backups%20be%20deleted%20automatically%3F\"><h3>Can old cloud backups be deleted automatically?<\/h3><\/dt>\n<dd><p>Yes. Set <strong>Keep the last N backups in each cloud account<\/strong>. After each successful upload, older archives of this site are deleted from Google Drive \/ Dropbox. Archives from other sites in the same account are never touched.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Google Drive and Dropbox cloud backup with resumable chunked uploads.<\/li>\n<li>New: cloud retention \u2013 keep the last N backups per cloud account.<\/li>\n<li>New: restore from the cloud \u2013 list cloud backups and download &amp; restore in one click.<\/li>\n<li>New: scheduled automatic backups (twice daily, daily, weekly, monthly) with retention. Manual backups are never pruned.<\/li>\n<li>New: adaptive chunked upload. The chunk size shrinks automatically on HTTP 413 or gateway timeouts and grows on fast connections, so large backups import on hosts with 2 MB upload limits.<\/li>\n<li>New: the browser remembers the working chunk size for each site.<\/li>\n<li>Improved: upload requests raise the PHP time limit and memory limit where the host allows.<\/li>\n<li>Improved: chunks are addressed by byte offset, so retries stay safe when the size changes mid-upload.<\/li>\n<li>Renamed to \"Site Backup &amp; Migration\".<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with content\/full backup, restore, download, upload\/import, and a responsive backup-management dashboard.<\/li>\n<\/ul>","raw_excerpt":"Free WordPress backup, restore and migration. Back up your database and files, then restore or move your site. Large uploads work on 2 MB hosting limi \u2026","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/333890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=333890"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webangon"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=333890"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=333890"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=333890"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=333890"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=333890"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=333890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}