Protected in six steps
Most sites need about 10–15 minutes of setup. Use the defaults for the first run; tune exclusions and retention after you have one verified restore point.
Where do I find each task?
- Backup / Restore
- Run a backup, upload or rescan backup files, inspect restore points and logs, restore, roll back an update, or delete a restore point.
- Migrate
- Replace this site with a full package brought from another site. It also explains how to prepare this site to be moved elsewhere.
- Staging
- Create a protected copy on this server, refresh it from live, push chosen changes back to live, and remove it. Staging is premium.
- Targets
- Add, test, edit, connect, disconnect, or remove local and remote storage destinations.
- Policy
- Choose what is backed up, when it runs, where it goes, how long it is kept, and whether a second copy is made.
- Settings
- Set the backup directory and archive size, exclusions, the report email (every report, or only the ones with a warning or an error), housekeeping, and Rescue Protection behavior.
- Advanced Tools
- Read health and job details, clean the database or disk, search and replace, export or import settings, repair recovery files, or wipe settings.
- Licence / Addons
- Connect, refresh, or deactivate this site’s licence and see the storage allowance attached to it.
Requirements
WordPress and PHP
WordPress 6.2 or newer, PHP 8.0 or newer, and the PHP ZIP and zlib extensions.
Administrator access
Your account must be allowed to manage WordPress options. On a normal site, use an Administrator account.
Writable storage
PHP must be able to write the backup directory. Staging also needs enough local disk for a copy of the files and database.
Outbound connections
HTTPS access is needed for account, updates, managed storage, and cloud sign-in. Your host must also allow the protocol used by SFTP or FTP targets.
Working scheduler
Scheduled jobs depend on WP-Cron or a real server cron. Quiet or firewalled sites should use a server cron.
Private backup directory
Best: a folder outside the public web root and dedicated to this site. If kept inside it, the web server must refuse direct requests to it.
Install and activate
- Get the plugin.
The free build, Okleone Backups, comes from the wordpress.org directory: in your WordPress admin open Plugins → Add New Plugin, search for Okleone Backups, and select Install Now, then Activate; that is the whole install, and updates arrive on the same screen. To upload a file instead, the listing at wordpress.org/plugins/okleone-backups has a Download button that gives you
okleone-backups.<version>.zip. With a premium licence, takewp-allbackup.zipfrom the customer portal under Downloads instead. Keep any file you upload zipped. - Uploading a ZIP: open Plugins → Add New Plugin → Upload Plugin.
Choose the ZIP you downloaded, select Install Now, then Activate Plugin. Skip this step if you installed from the directory search.
- Open the plugin in the WordPress menu.
The menu carries the name of the build you installed: WP-AllBackup for the premium build, Okleone Backups for the free one. Everything inside is the same, and the Plugins screen lists each under the same name. If the menu is missing, confirm you are signed in as an Administrator and that activation completed.
- Check the top of the page for warnings.
Fix a non-writable or publicly accessible backup directory before keeping real backups there.
Connect your licence
- Open WP-AllBackup (Okleone Backups) → Licence / Addons.
This tab holds the licence, the account it belongs to, covered-site count, expiry, and managed-storage allowance.
- Select Connect to your account.
Sign in to the customer portal, choose the licence, and approve this site. There is no key to copy in the normal flow.
- Return to WordPress.
Confirm the card says Active and shows the expected plan and site usage. Standard, Business, and Agency show used sites against their limit; Enterprise says connected, no limit. Use Check now after changing a licence in the portal.
Use the customer portal
The portal is the account side of WP-AllBackup (Okleone Backups). Use it for licences, connected sites, storage, downloads, billing, and support; use the WordPress plugin for backup and recovery work on a site.
- Dashboard: licence and billing.
See the plan, masked key, connected-site allowance, expiry, subscription status, receipts, and any available cancellation or refund action.
- Sites: connections and rescue access.
Review the sites using a licence, disconnect a site you no longer control, and open a mirrored Rescue Protection entry when one is available.
- Storage and Downloads.
See managed-storage use and packages under Storage. Downloads holds the current install ZIP for a fresh WordPress site.
- Support: keep the conversation together.
Select New request, choose the closest category, and include the exact error and diagnostic reference. Replies and status stay in the same request.
- Account: protect your sign-in.
Keep the email current, use a unique password, and sign out on a shared computer. Staff accounts require two-factor authentication.
Connect storage
Keep a local copy for fast recovery and at least one independent off-site copy for a server failure. WP-AllBackup Storage is the simplest premium option; your own storage remains supported.
- Open Targets.
For included WP-AllBackup Storage, select Connect. For another service, select Add target.
- Name the destination clearly.
Examples: “S3, production backups” or “SFTP, off-site copy.” The name appears in policies and restore points.
- Authorize or enter limited credentials.
Dropbox, OneDrive, and Google Drive use provider sign-in, and each of those three allows one target per provider: once it is added, the dialog greys that provider out, and Reconnect on its row signs in again or switches the account. S3, Azure, SFTP, and FTP use the fields supplied by that provider, and can have as many targets as you like.
- Test before saving.
Do not schedule a target that does not say Connected. For SFTP, compare the presented host fingerprint with your provider's published value.
- Disconnecting is not deleting.
If you disconnect WP-AllBackup Storage, your existing archives stay readable for the period shown on the Targets card, so a restore you had planned still works. New backups stop going there straight away. The space is released when that period ends.
Which storage should I choose?
Easy: WP-AllBackup Storage. Already use Microsoft or Dropbox: OneDrive or Dropbox. Large sites: S3, S3-compatible, or Azure. Your own server: SFTP is preferred over FTP. Use FTPS if FTP is unavoidable.
What permissions should cloud credentials have?
Use a dedicated bucket, container, folder, or server account when possible. Grant only the ability to list, read, write, and delete backup objects in that location. Do not reuse a hosting control-panel administrator or root credential.
Schedule backups
- Open Policy and edit the active policy.
Only one policy runs at a time. Additional policies may be kept for later.
- Choose a frequency and time window.
Daily is a practical starting point for a normal business site. Busy stores may need more frequent database backups.
- Choose what to include.
Database, plugins, themes, uploads, and other content form the recoverable site. Exclude rebuildable caches and old backup folders.
- Choose retention and destinations.
Select the main target and, when useful, a second copy target. Retention must fit the available space.
- Confirm the policy says Active.
The Backup / Restore tab shows the next expected run. A cron warning means the time is only a promise until the scheduler is repaired.
Take and verify the first backup
- Select Backup Now.
Leave database and all file groups selected for the first run. Select Full file backup when the package must stand alone for migration.
- Choose destinations.
Tick the local target if you keep one, and the off-site target that should receive this copy. A backup needs at least one ready destination.
- Wait for the job to finish.
Keep the page open while it reports progress. If it stops, reload the page; resumable work should continue rather than silently start over.
- Read the restore-point row.
Confirm Complete, expected components, reasonable sizes, and the intended Target/Copy.
- Open View log if anything differs.
A backup is not successful merely because some archives exist. The final row and log must report completion.
How are restore points organized?
Incremental backups (premium) sit under the full backup they depend on. Imported packages show their source site, and the origin filter helps separate local history from packages brought here. Use Newer and Older to move through long histories.
Restore a site or component
- Select exactly one restore point and choose Restore.
Choose the local or remote copy to read from.
- Select the components.
Restore only what is broken when possible. A database restore can roll back orders, posts, users, and settings made after that backup.
- Run Verify archives.
The wizard checks the entire required backup chain and refuses missing or damaged data before touching the live site.
- Review the preflight.
Read path, database-prefix, collation, disk-space, and package warnings. Stop if the source is not the site or date you expect.
- Confirm and wait for Finished.
The restore runs in short, resumable requests. If the browser loses contact, reopen WP-AllBackup (Okleone Backups) and continue rather than starting another restore. Afterward, test the home page, admin login, forms, recent content, and permalinks. Clear caches only after the checks.
What happens to restore working files?
From 3.16.0, a restore that reaches Finished removes the checkpoint, preflight, and report working files created for that run. A failed or abandoned restore keeps its diagnostic material so support can investigate it. Do not manually remove those files while a restore is active.
Restore a managed backup from another site
Use this when the source and destination are covered by the same licence and the source backup is still in WP-AllBackup Storage. The destination reads the backup without copying cloud credentials or taking ownership of the source site's storage folder.
- Confirm both sites are on the same licence.
Connect WP-AllBackup Storage on the destination with its own site connection. Each site keeps its own identity and folder even though the licence allowance is shared.
- Open Backup / Restore and select Rescan remote storage.
Select WP-AllBackup Storage, then tick Also look in the other sites on this licence. Leave it unticked for an ordinary rescan of only this site's folder.
- Find the imported restore point.
The row says Imported, names the source site, and keeps the original Full or Incremental and encryption badges. Use the origin filter when the history is long.
- Add the recovery key if the row says Encrypted, no key.
On the source, retrieve the recovery key from Settings → Encryption and move it through a password manager or another secure channel. On the destination, use Add a recovery key from another site. Never put the key in a ticket, email, or screenshot.
- Restore through the normal wizard.
Choose WP-AllBackup Storage as the copy to read, verify every archive, review the source and preflight, then confirm. The destination keeps its own site URL, database prefix, licence, instance, and encryption setting.
- Remove the imported row when it is no longer needed.
Deleting a restore point imported from another site removes destination metadata and local copies only. The source site's remote objects remain under the source site's control.
Create a staging site
Staging is part of the premium plan. On a free site the Staging tab says so and links to the licence tab and the plans; copies you made while licensed stay on your server if the licence lapses.
- Open Staging and enter a short folder name.
Keep Require a login enabled unless the copy must be publicly reviewed.
- Decide whether to copy or link uploads.
Copying is safer. Linking is faster and smaller, but deleting or replacing linked media also changes the live site's media.
- Select Check required space.
Create remains disabled until the preflight confirms files, database tables, routing, and free disk.
- Create and wait for Ready.
Use Open admin and confirm the red STAGING identity before changing anything.
- Pull from live when the copy goes stale.
Pull replaces the copy’s files, tables and settings with the live site as it is today, keeping the same address and settings. Changes made on the copy are lost, and the confirmation says so; the live site is only read. A copy whose build failed can be pulled to retry it.
- Push to live when the copy holds work you want to keep.
A push always asks what to move: files (changed only, or everything, with an off-by-default option to delete live files the copy no longer has) and database tables (all, or a picked set). Preview what would move, then type PUSH. A restore point of what the push touches is taken first, the tables land in one atomic swap with the previous ones set aside, and you keep the push or roll it straight back after looking at the site. WP-AllBackup’s own settings, storage accounts and history on the live site are never overwritten.
- Delete the copy when finished.
Deletion removes the owned directory and staging tables. Reload and confirm the row is gone.
Both directions ask before they act. Pull replaces the whole copy and confirms with a click, because the copy is disposable. Push writes to the live site, so it always asks what to move, previews it, takes a restore point first, and wants the word PUSH typed. Nothing moves that the preview did not list, and an undecided push is kept automatically after 48 hours with the previous tables held aside until then.
Migrate to another site
- On the source, take a Full file backup.
An incremental package cannot migrate by itself unless every earlier member of its chain travels with it. On a free site every file backup is already a full one.
- Install WP-AllBackup (Okleone Backups) on the destination.
Do not delete the old site yet. Keep both reachable during verification.
- Make the package visible at the destination.
For WP-AllBackup Storage on the same licence, use the explicit other-sites rescan. For another remote target, connect it and Rescan remote storage; or download the archives and manifest from the source and use Upload backup files; or copy them into the destination backup directory and Rescan local.
- Open Migrate and choose the package under Bring another site here.
Run the dry-run analysis. Review source URL, destination URL, paths, table prefix, and serialized-data-safe replacements.
- Run the migration in maintenance mode.
The rewrite is paced in short batches. Reopen WP-AllBackup (Okleone Backups) to Continue if the browser or PHP request is interrupted.
- Verify before changing DNS or deleting the source.
Test admin login, pages, images, forms, redirects, cron, cache, and storage. Activate the destination with its own licence slot.
If the source used WP-AllBackup Storage, the copy cannot use it until you press Connect on the copy. A copied site carries the original's saved connection, and using it would let the copy write into the original's backups, so it is refused until the copy connects for itself.
Upload backup files
A WP-AllBackup (Okleone Backups) backup is a handful of files: one archive per component (backup_…-plugins.zip, backup_…-db.sql.gz and so on) and a manifest_….json that lists them. If you have those files, from another site, from a download you kept, or from storage this site cannot reach, the Backup tab can take them and turn them back into a restore point. There is no need for the two sites to share cloud storage, and nothing to copy over SFTP.
- Get the files.
On the source site, each entry in the Contents column of the restore points list is a download link, and the Manifest link beside them downloads the manifest. From cloud storage, download the archives and the manifest of one backup set into the same folder.
- Open the Backup tab and select Upload backup files.
Drop the whole set onto the dialog, or choose the files. Anything that is not a WP-AllBackup (Okleone Backups) backup file is refused on the spot by name; nothing is sent for it.
- Select Upload and read the rows.
Each file is sent in small pieces sized for the host, so the host's upload limit does not matter however large the archive. A file already in the backup directory is not sent again. If the connection drops or you close the tab, open the dialog again with the same files: it continues from where it stopped.
- Read the outcome.
When the manifest and every archive it names are present, the restore point is imported and appears in the list with an Imported badge. A set made on another site says which host it came from and is listed on the Migrate tab as a package. A manifest still waiting for an archive says which file it is waiting for, and archives whose manifest has not arrived yet say so.
Arm Rescue Protection
- Open Settings → Recovery and housekeeping.
Enable Rescue Protection. Enable portal mirroring if you want the recovery entry available from your account while WordPress is down.
- Save settings, then open Advanced Tools.
Confirm the console and crash pages are installed. Regenerate the access key if it may have been exposed.
- Store the break-glass details securely.
Use a password manager. Do not place them in a ticket, shared note, screenshot, or public repository.
- Test before an emergency.
Open the console address in a private browser session, confirm authentication, and close without running repair actions.
When WordPress or the database cannot load, the standalone console can inspect status and logs, disable a broken plugin, switch theme, or restore a verified backup. If another plugin owns WordPress's crash-page files, that page may remain while other rescue channels continue.
Free up space
Two tools under Advanced Tools → Tools, one for the database and one for the disk. Both answer the same question from different sides: what is this site carrying that nothing reads any more? Neither is part of backing up, and neither is reversible without a backup, so treat both as an edit to the site rather than as maintenance.
Database cleanup
- Open Advanced Tools → Database cleanup and select Scan.
The cards start empty on purpose. Counting things like duplicated metadata means reading a whole table, which is real work on a large site, so nothing is counted until you ask. The scan runs in short steps and fills the cards in as it goes.
- Read the counts, then tick what you want removed.
The items nothing would miss are ticked for you: spam, trashed comments, auto drafts, expired caches, and metadata belonging to posts, comments, users or terms that no longer exist.
- Decide about the four that are not ticked.
Post revisions are the only copy of what a page said before the last edit. Trashed posts are content someone may still want back. Unapproved comments are unread mail rather than litter. Optimize tables is a different kind of work, described below. None of these are wrong to remove; they are wrong to remove without looking.
- Confirm, then select Clean selected.
Removal runs in short steps and reports what went. Posts and comments are removed the way WordPress removes them, so their metadata and category links go with them instead of becoming the next set of orphans.
What the autoload summary is telling you
Below the cards is a list of the options WordPress loads on every single page request, for every visitor, whether the page needs them or not, largest first. It is the one number on the screen that visitors feel rather than one that merely takes up room, and anything much past 800 KB is worth acting on.
Nothing in that list is offered for deletion, deliberately. Only the plugin that wrote an option knows whether your site still needs it, and a cleaner that guesses breaks sites. Treat it as evidence instead: if one plugin owns the top of the list, that is the plugin to ask about, reconfigure, or replace.
File cleanup
- Select Scan files.
The scan measures sizes and changes nothing. It runs in short steps so it cannot time out on a large site, and the page reloads into the finished report.
- Start with the folder table, not the findings.
It shows where the disk actually went, one level deep and two levels inside plugins, themes and uploads, so you get plugins/some-slider: 780 MB rather than a useless plugins: 900 MB. The answer is very often one plugin, one forgotten archive, or one cache nobody has swept in a year.
- Review the findings.
Leftover archives and database dumps, log files, editor and operating-system leftovers, and page cache directories. Each is listed with its size and its date, largest first.
- Tick and remove, or empty a cache directory.
Ticks are yours to make; nothing is pre-selected. Emptying a page cache is safe (everything in it is rebuilt on demand), but the first few page loads afterwards will be slow.
| What it found | Can it be removed here? | Why |
|---|---|---|
| Archives and database dumps | Yes | Left behind by a migration, a manual backup, or a plugin update. Nothing reads them. |
| Log files | Yes | Append-only and nothing shrinks them. Found wherever they are written, including inside a plugin's own folder. |
| Temporary and editor leftovers | Yes | .tmp, .bak, .old, .orig and the files an editor or an operating system leaves behind. |
| Page cache directories | Yes, emptied | Rebuilt on demand. The directory itself and the small files a caching plugin puts there to guard it are kept. |
| Another backup plugin's files | No, reported only | Usually the largest thing on the disk, and possibly the only copy of something. Remove them from the screen that made them. |
| Staging sites | No, reported only | Delete these from the Staging screen, which also removes their database tables. |
| WP-AllBackup (Okleone Backups) archives | No, reported only | Shown so the folder table adds up. Their size is governed by your retention settings, and restore points are deleted from the Restore screen so their off-site copies go with them. |
wp-config.php. Files inside a plugin or theme folder are that plugin's own: a .zip it ships as a sample or a .bak beside its code is never listed. Log files are the one exception, because a log is never code and a plugin quietly writing gigabytes into its own folder is exactly what this screen exists to find.Encryption
Off by default. Switch it on under Settings → Encryption and every new backup is encrypted on your own server before it is stored anywhere, the local disk included. Each archive and the database dump become AES-256-GCM ciphertext; whoever holds the files afterwards, a cloud provider, your host, or WP-AllBackup Storage, holds something they cannot read. Backups made before you switched it on are left exactly as they were.
- Settings → Encryption → Switch on encryption.
A key is made on this server and the card shows your recovery key:
WPAB1-followed by eight groups of eight letters and digits. Copy it into your password manager or print it, tick "I have written the recovery key down", and press Done. Until you do, the card keeps reminding you. - Back up as usual.
Every archive is sealed the moment it is written and before anything is uploaded, so the storage targets only ever see
.encfiles. The restore points list marks encrypted sets with an ENCRYPTED badge, and the manifest that lists a backup’s files stays readable, so listings, rescans, uploads and imports keep working without the key. - Restore as usual.
Restores decrypt on this server as they read; the decrypted copy lives inside the backup directory for the length of the restore and is removed when it ends. The dry-run check says in words if a set was encrypted with a key this site does not hold.
- Bringing an encrypted set to another site.
Rescan or upload it there as usual, then paste the source site’s recovery key into "Add a recovery key from another site" on the destination’s Encryption card. The badge changes from ENCRYPTED, NO KEY to ENCRYPTED and the set restores or migrates like any other. The imported key opens that source package; it does not switch on encryption or become the key for new destination backups.
When WordPress will not load
The rescue console lists encrypted archives like any other and asks for the recovery key on the restore row; it opens the archive with the plugin’s own code, so the plugin files need to be on the server. And for any machine with PHP, bin/wpab-decrypt.php in the plugin folder turns a downloaded .enc back into the ordinary zip or database dump: php wpab-decrypt.php backup-file.zip.enc backup-file.zip, and it asks for the key.
wp-config.php as WPAB_ENCRYPTION_KEY; the card then says so and the key is managed there.Permissions and safety
| Capability | Needed for | Safe approach |
|---|---|---|
WordPress manage_options | All WP-AllBackup (Okleone Backups) administration | Use a named Administrator account; do not share one account among staff. |
| Write backup directory | Backups, manifests, logs, temporary downloads | Use a directory owned by the site's PHP user, preferably outside the web root. Do not point two unrelated sites at one local folder. |
| Write selected WordPress files | Restore, staging, Rescue Protection | Normal WordPress ownership; avoid world-writable permissions such as 777. |
| Create, rename, and drop database tables | Atomic database restore and staging | Grant these only to the site's database user and only on that site's database. |
| Outbound HTTPS | Licence, updates, relay, managed/cloud storage | Allow the WP-AllBackup (Okleone Backups) services and the chosen storage provider over port 443. |
| Storage read/write/list/delete | Upload, verify, rescan, restore, retention | Use a dedicated bucket, container, prefix, folder, or user; avoid account-wide administrator keys. |
Protect a backup folder inside the web root
The best fix is moving the folder outside the public directory. Apache and IIS can read the deny files shipped by the plugin; nginx and Caddy need a server rule.
nginx example
Add this inside the site's server { } block, adjust the path if you changed it, then reload nginx:
location ~* /wp-content/wp-allbackup-backups/ { deny all; return 403; }
Caddy example
@wpabBackups path /wp-content/wp-allbackup-backups/*respond @wpabBackups 403
After changing server configuration, use the plugin's exposure check. A direct request must return a refusal, never an archive or directory listing.
Troubleshooting
A scheduled backup did not run
Open Backup / Restore and read the cron warning. Use Test WP-Cron. On quiet or protected sites, configure a real server cron to call WordPress cron regularly, then confirm the next run is scheduled.
A backup remains in progress
Reload WP-AllBackup (Okleone Backups) and allow the resumable job to continue. Check available disk, PHP time/memory, the final log message, and Advanced Tools diagnostics. Do not start many duplicate backups.
A large site dies at the same step every time
Files are archived in parts (Settings → Advanced → Split archives every MB, 400 by default), each part a complete zip written inside one request with progress saved between parts, so a backup survives a host's request limit as long as one part fits inside it. If the log shows the same part being started again and again, lower the number: 200 or 100 on a slow shared host. In the restore points list a component written in parts is one chip with its size and the part count; press it to list the parts and download any of them. Parts are restored like any other archive.
A remote target fails
Select Test on Targets. Reauthorize OAuth connections, check bucket/folder permissions, endpoint and region, available quota, firewall/DNS, TLS certificate, or SFTP host fingerprint. A failed remote upload must not be counted as a successful off-site backup.
Restore verification refuses to continue
Do not bypass it. A required archive is missing, unreadable, or does not match its manifest. Rescan the correct target, restore the missing file, or choose another complete restore point.
An imported restore point says Encrypted, no key
The destination can see the manifest but cannot decrypt the archives. Obtain the recovery key from the source site's Settings → Encryption card through a secure channel, then use Add a recovery key from another site on the destination. Do not replace the destination's own key and do not send either key to support.
Staging cannot be created
Run Check required space and read the exact preflight. Common causes are low disk, an unwritable folder, database-table permission, an occupied folder name, or routing configuration. Do not manually delete similarly named folders.
The site or the backup is running out of disk space
Open Advanced Tools → File cleanup and select Scan files. Read the folder table before the findings: it names where the space actually went, per plugin and per uploads year, which is very often one answer nobody expected. Then remove leftover archives, logs and caches, and check whether another backup plugin is still keeping copies of its own. If the database is what grew, Database cleanup counts revisions, spam, expired caches and orphaned metadata on the same screen.
The licence or managed storage looks stale
Use Check now on Licence / Addons and Refresh on Targets. Compare the portal account, site URL, site-slot use, storage allowance, and expiry. Existing managed backups remain restorable when the service is read-only.
I am moving or reinstalling the plugin
Deactivating keeps settings. Deleting WP-AllBackup (Okleone Backups) through WordPress runs its uninstall cleanup, including saved connection credentials, so reconnect targets after reinstalling. A reinstall's first file backup is full. If you select a previously used local folder, the plugin checks its ownership marker and refuses a folder owned by another site.
Before opening a support request
- Copy the final plain-language error
- Note the failed action and time
- Open Advanced Tools diagnostics
- Use the diagnostic report reference
- Keep the affected restore point
- Remove passwords, keys, and secrets
Ready to protect a site?
Install the plugin, make one full backup, and verify it before relying on a schedule.
Download the free plugin Get support