> For the complete documentation index, see [llms.txt](https://docs.3techagency.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.3techagency.com/documentation/reference-and-help/backups-and-restore.md).

# Backups and restore

Make a verified database backup, confirm full-site coverage, restore safely, revert a restore and control retention.

## What a backup covers

| Backup                    | Covers                                                  | Made by                                           | Restore with                             |
| ------------------------- | ------------------------------------------------------- | ------------------------------------------------- | ---------------------------------------- |
| WP AI Manager archive     | **Database only** (no core, themes, plugins or uploads) | **Back up my site** Task, large-write checkpoints | **History > Backups > Restore database** |
| UpdraftPlus full-site set | Files, uploads and database                             | UpdraftPlus, triggered by the Task when installed | UpdraftPlus                              |
| Other backup plugins      | Their own coverage                                      | Their own screens                                 | Their own screens                        |

All-in-One WP Migration, Duplicator, WPvivid and others are detected but not triggered. Only UpdraftPlus has a verified trigger. WP AI Manager never calls a database-only download a full-site backup.

## Make a backup

{% stepper %}
{% step %}

### Start the Task

In **Playbooks**, choose **Back up my site** > **Automate**, then **Run now**. It can also be scheduled.
{% endstep %}

{% step %}

### Database archive

The Task exports every table in chunks to a private gzip file in WordPress uploads, recounts each table and records an integrity hash. It refuses to start if gzip is missing, uploads are not writable or free disk space is below twice the estimated database size.
{% endstep %}

{% step %}

### Full-site set (UpdraftPlus only)

If UpdraftPlus is active, the Task requests a backup and waits for a **new, complete** set in UpdraftPlus history. Meanwhile the run says "Database backup ready. Waiting for the backup provider to confirm the full-site archive…". If nothing is confirmed within **30 minutes**, the run says so; the database download is still available.
{% endstep %}

{% step %}

### Check coverage

Open **History > Backups** and read **Coverage**.
{% endstep %}
{% endstepper %}

| Coverage label                           | Meaning                                                   |
| ---------------------------------------- | --------------------------------------------------------- |
| Database verified, *date*                | The archive was checked and can be downloaded or restored |
| Full site confirmed by UpdraftPlus       | **Open in UpdraftPlus** to restore files and database     |
| Full-site archive pending                | Do not rely on it yet                                     |
| Files and uploads not confirmed          | Only the database is covered                              |
| Database download expired or unavailable | The file was pruned or removed                            |

Downloads go through a nonce-checked admin link. File names carry random characters, so a leaked folder path cannot be guessed.

## Restore the database

Only administrators can restore, and only WP AI Manager's own archives. Archives from before restore metadata existed, from another site or table prefix, or with a changed hash can be downloaded but not restored in the plugin.

**Before you start**

1. Take and verify a separate full-site backup.
2. Download the archive and confirm it is the restore point you want.
3. Test on a copy of the site, especially a store.

**During the restore**

* The restore checks the archive, stages tables, then swaps them.
* Visitors can still read the site. Their writes (orders, front-end forms, comments, REST and Store API writes, XML-RPC) get **HTTP 503** with `Retry-After: 120`. Administrators are never blocked.
* The site enters maintenance briefly for the table swap.
* A fresh safety backup is made automatically.
* Task run history and WP AI Manager settings are kept as they are now, so backups made after the archive stay listed.

**After the restore**

**Revert last restore** is available for **24 hours** ("Available until …"). It is not a substitute for a full-site backup. Content changed after the archive point is overwritten by the restore.

## Retention

**Settings > Advanced > Backups to keep** sets how many WP AI Manager database archives are kept: default **5**, range 1 to 50. Older ones are deleted after each backup and in the daily cleanup. Archives are also deleted after **7 days**.

Never deleted by cleanup: an archive less than an hour old (it may be a live write checkpoint), the archive **Revert last restore** needs, and anything while a restore is running.

## Write-safety checkpoints

A Task applying more than 25 items, or publishing a large sandbox draft, needs a verified database backup made within the last hour. You are offered **Back up and continue**. If the backup fails, nothing is published or applied. These checkpoints cover the database only.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.3techagency.com/documentation/reference-and-help/backups-and-restore.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
