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

# Backups & Restore

Back up SEO Utils to a file, an S3 / R2 bucket or a folder, by hand or on a schedule, and restore it on this computer or another one.

SEO Utils backs up everything you work with to a file, to a cloud bucket, or to a folder such as an external drive. You can back up by hand or on a schedule, and restore on this computer or on a new one. It works in the desktop app, not in a browser over [Remote Access](/guide/remote-access.md).

To open it, go to the user dropdown and select **Backup Tools > Database**.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-8875d9e589d227c7373eb8e9910df518948eb322%2FXnapper-2024-11-13-20.47.25.png?alt=media" alt=""><figcaption><p>Access Database backup tool</p></figcaption></figure>

## What a Backup Contains

A backup is one file that ends in `.seobackup`.

| Part                | What it holds                                                                      |
| ------------------- | ---------------------------------------------------------------------------------- |
| **Database**        | Your workspaces, reports, keyword lists and everything else you work with          |
| **Vector database** | The embeddings SEO Utils keeps for semantic search and clustering, if you have any |
| **Settings**        | Your app settings, including saved API keys and Google sign-ins                    |
| **Saved pages**     | Only in a backup to a file, and optional: the saved SERP pages on this computer    |

{% hint style="warning" %}
A backup contains your saved API keys and Google sign-ins. Keep it private, or [encrypt your backups](#encrypt-your-backups).
{% endhint %}

A backup never holds what belongs to the computer: your licence key, the Remote Access pairing, where your saved pages are stored, and secret keys kept in the keychain, such as S3 / R2 secret keys. A restore never changes them either.

## Where Backups Can Go

| Destination | Good for                                             | Needs                                                |
| ----------- | ---------------------------------------------------- | ---------------------------------------------------- |
| **File**    | A one-off copy you keep or move yourself             | Nothing. By hand only.                               |
| **Bucket**  | Automatic backups, and restoring on another computer | An [S3 / R2 connection](/guide/s3-r2-connections.md) |
| **Folder**  | An external drive, or a Dropbox or iCloud folder     | A folder on this computer                            |

To use a bucket or a folder, choose it once:

{% stepper %}
{% step %}

#### Open the destination

On the Database page, find the **Destination** row in the **Automatic backups** card and click **Set up**.
{% endstep %}

{% step %}

#### Pick the bucket or the folder

{% tabs %}
{% tab title="Bucket" %}
Choose a **Storage connection** (1), or click **New connection** to add one. Its key needs to read, write and delete, and its endpoint must be `https://`. Then enter the **Bucket** (2) and, if you like, a **Prefix**: a folder in the bucket for the backups.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-94ec28d1a790a36c7f586fedcf3bd0744af9a935%2Fbackups-destination-bucket.png?alt=media" alt=""><figcaption><p>A bucket destination: (1) connection, (2) bucket, (3) test, (4) save</p></figcaption></figure>
{% endtab %}

{% tab title="Folder" %}
Select **Folder or external drive**, click **Choose folder…** (1) and pick a folder. It cannot be inside the SEO Utils data folder. The folder belongs to this computer: on another computer, choose the folder there.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-52713f55f9d2ef1cc4fa7e1a3ea735913cac51a3%2Fbackups-destination-folder.png?alt=media" alt=""><figcaption><p>A folder destination: (1) choose, (2) test, (3) save</p></figcaption></figure>
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

#### Test and save

Click **Test**. SEO Utils writes, lists, reads and deletes a small file there to prove it can use the place. When the test passes, click **Save**.
{% endstep %}
{% endstepper %}

Backups go in a `seo-utils-backups` folder with one subfolder for each computer, so computers that share a destination never delete each other's backups.

## Back Up Now

{% stepper %}
{% step %}

#### Open the Database page

The **Back up now** card has **To a file…** (2) and, after your first backup, the **Last backup** line with **View log** (3). The switch **Include saved pages on this computer** (1) applies to files only.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-48360ae72597d91919b748211c13534afab0658f%2Fdatabase-backup-back-up-now.png?alt=media" alt=""><figcaption><p>The Back up now card: (1) include saved pages, (2) start the backup, (3) read the log of the last backup</p></figcaption></figure>
{% endstep %}

{% step %}

#### Choose where to back up

{% tabs %}
{% tab title="File" %}
Click **To a file…**, then choose a folder and a file name. Keep **Include saved pages on this computer** on to put the saved SERP pages in the file; without them, SERP snapshots and page-change histories are unavailable after a restore.
{% endtab %}

{% tab title="Bucket" %}
Click **To the bucket** (2). It uses the destination you saved.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-e2d8ce66791f57700a27b134d5b6759b81b4f9c1%2Fbackups-back-up-now.png?alt=media" alt=""><figcaption><p>With a destination saved, <strong>To the bucket</strong> (2) sits beside <strong>To a file…</strong> (1)</p></figcaption></figure>
{% endtab %}

{% tab title="Folder" %}
Click **To the folder**. It replaces **To the bucket** when your destination is a folder.
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

#### Keep working and check the result

SEO Utils keeps working while it backs up, and the card shows the progress. When it finishes, **Last backup** shows when it ran and how big it is. Click **View log** to read what it did.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-9733d555cf2c60b73a8a14b7445349fd22016f78%2Fdatabase-backup-progress.png?alt=media" alt=""><figcaption><p>A backup in progress</p></figcaption></figure>
{% endstep %}
{% endstepper %}

**Backup history** lists every backup this computer has started, with how it started, where it went and its status. A backup cut short by closing SEO Utils shows **Interrupted**: start it again.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-c2ccc6723777e58521d093c6a0c083d55d4a3916%2Fdatabase-backup-history.png?alt=media" alt=""><figcaption><p>Backup history</p></figcaption></figure>

## Automatic Backups

Automatic backups send a backup to your bucket or folder on a schedule and delete the oldest ones after each new one.

{% stepper %}
{% step %}

#### Choose the schedule

In the **Automatic backups** card, click **Set up**. The dialog repeats your destination and adds:

* **How often** (1): every hour, every 2, 3, 6 or 12 hours, every day or every week. A daily or weekly schedule also asks for a **Start time**, and a weekly one for a **Day of the week**.
* **Keep** (2): how many backups this computer keeps in the destination, from 1 to 365 (14 by default). After each successful backup, older ones are deleted.
  {% endstep %}

{% step %}

#### Set the encryption

**Encrypt backups** (3) is on. Type a passphrase twice and tick **I understand that SEO Utils cannot recover a forgotten passphrase.** See [Encrypt Your Backups](#encrypt-your-backups).
{% endstep %}

{% step %}

#### Turn it on

Click **Save and turn on** (4). The first backup starts about 5 minutes later, then follows the schedule.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-76bae991473910bf26591a3c9aa8f7009ff96312%2Fbackups-automatic-setup.png?alt=media" alt=""><figcaption><p>The setup dialog: (1) how often, (2) keep, (3) encryption, (4) save and turn on</p></figcaption></figure>
{% endstep %}
{% endstepper %}

The card then shows **On**, the schedule, the size of the last backup and when the next one starts. **Edit** changes the schedule, **Turn off** pauses it and **Turn on** resumes it.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-6d2dd8a24e9d6da74424e25d2a333b42140a9fb8%2Fbackups-automatic-card.png?alt=media" alt=""><figcaption><p>The Automatic backups card: (1) on, (2) edit, (3) turn off, (4) destination</p></figcaption></figure>

* **Backups run while SEO Utils is open.** One missed while it was closed starts 5 minutes after SEO Utils opens again.
* **Keep counts only this computer's backups**, and only while automatic backups are on.
* **After two failed scheduled backups in a row**, the card shows the reason and the date of the last good backup, and **View log** opens the details. The notice goes away after the next backup to the destination succeeds.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-0049dfad39012ac4da94f8678c9fd90b0aec55fe%2Fbackups-failing-notice.png?alt=media" alt=""><figcaption><p>The notice after two failed backups: (1) the reason, (2) the log</p></figcaption></figure>

## Encrypt Your Backups

Encryption keeps a backup unreadable to anyone without your passphrase. Turn it on in the automatic backups dialog, or in the **Encryption** card: click **Encrypt backups**, enter a passphrase of at least 12 characters twice, tick the box and click **Save**. It applies to later backups.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-d62235b067a9095b690d1a036f69857bd8f95451%2Fdatabase-backup-encrypt.png?alt=media" alt=""><figcaption><p>Set a backup passphrase</p></figcaption></figure>

{% hint style="danger" %}
**An encrypted backup cannot be restored without its passphrase.** If you forget it, your backups can never be restored, and SEO Utils cannot recover the passphrase or open the backups for you. Store it somewhere safe.
{% endhint %}

| Action                  | What it does                                                                                  |
| ----------------------- | --------------------------------------------------------------------------------------------- |
| **Check my passphrase** | Confirms that you still remember it. Do this after you set it.                                |
| **Change passphrase**   | Sets a new passphrase for future backups. A backup file made earlier still needs the old one. |
| **Turn off**            | Stops encrypting future backups, after you confirm in place.                                  |

## Restore a Backup

{% hint style="danger" %}
Restoring replaces everything in SEO Utils with the backup. Your current data is kept only until the restored data has started once, so make a new backup first if you might need it.
{% endhint %}

{% stepper %}
{% step %}

#### Choose the backup

In the **Restore** card, choose where the backup is:

{% tabs %}
{% tab title="From a file" %}
Click **From a file…** and choose the backup. Besides `.seobackup` files, SEO Utils restores the `.tar.gz` and `.db.gz` files made by earlier versions (see below).
{% endtab %}

{% tab title="From the bucket or folder" %}
Click **From the bucket** (or **From the folder**). The list shows the backups of **This computer**; use **Device** (1) to see another computer's. Open the row's menu (2) and choose **Restore**. The same menu has **Delete**, which asks **Remove?** in place and deletes the backup for good.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-1307d59b80993b3f1dce2d27e3c2311c0cce6609%2Fbackups-restore-bucket-list.png?alt=media" alt=""><figcaption><p>Backups in the bucket: (1) choose the computer, (2) open the row's menu</p></figcaption></figure>
{% endtab %}

{% tab title="From another bucket" %}
For a computer that has no destination yet: see [Restore on Another Computer](#restore-on-another-computer).
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

#### Check the summary

The dialog shows who made the backup (**Made by**, **Date**, **Computer**), what it **Contains** and whether it is **Encrypted** (1). For an encrypted backup, type the passphrase it was made with (2). Then click **Restore** (3).

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-ebfcbf622061a0ec5340690c60740d2aeddeafd5%2Fdatabase-backup-restore-summary.png?alt=media" alt=""><figcaption><p>What the backup holds, the passphrase and Restore</p></figcaption></figure>

A backup in a bucket or folder may also show **Saved SERP pages of reports deleted after this backup was made may be missing.** It means the saved pages of a report you deleted after that backup may be gone. See [Saved Pages and Backups](#saved-pages-and-backups).

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-cb4f195882a9afff22e179abca8bd31f1f735bb3%2Fbackups-restore-bucket-summary.png?alt=media" alt=""><figcaption><p>A restore from the bucket: (1) summary, (2) warning, (3) passphrase, (4) restore</p></figcaption></figure>
{% endstep %}

{% step %}

#### Confirm

SEO Utils asks once more, in place: read the message (1) and click **Restore** (2).

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-72ba9a0ff5dae9a526559a8184ad00544f59374f%2Fdatabase-backup-restore-confirm.png?alt=media" alt=""><figcaption><p>Confirm the restore</p></figcaption></figure>
{% endstep %}

{% step %}

#### Wait for the restore

SEO Utils reads the backup and prepares the restored data. Your current data is not touched yet, so you can click **Cancel restore** (1) and nothing changes, until **Replacing your data** begins. Then the window shows **Restoring the backup**: do not close the app.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-8458a34520a4ce9b866aafe9d4edaa6a6f1653bc%2Fdatabase-backup-restore-progress.png?alt=media" alt=""><figcaption><p>A restore in progress, with Cancel restore</p></figcaption></figure>
{% endstep %}

{% step %}

#### Restart SEO Utils

When you see **Restore completed. Restart SEO Utils to finish.**, click **Restart SEO Utils** (1). It opens again with the data from the backup.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-90b358e0b15104ab3be112465bf1c73d613c2c24%2Fdatabase-backup-restore-restart.png?alt=media" alt=""><figcaption><p>The restore is complete</p></figcaption></figure>
{% endstep %}
{% endstepper %}

* A backup made by the same or an older version restores. One from a **newer** version is refused, and the dialog names the version to update to.
* A wrong passphrase changes nothing. A backup in a bucket or folder also opens with your latest passphrase.
* If SEO Utils closes while it replaces your data, the next start puts your data back and shows **Restore interrupted** once.

<details>

<summary>Restoring files from earlier versions</summary>

* The dialog marks them **Older backup format**. They hold the database, plus saved pages in a `.tar.gz`, but not your settings. Use [Back Up Only Your Settings](#back-up-only-your-settings) for those.
* A file from a different version shows a warning about issues or data corruption. Tick the acknowledgement to enable **Restore**. After you confirm, a progress page ends with **Restore completed successfully! Please restart the application.** Click **Restart App**.

</details>

## Restore on Another Computer

Use this to move to a new computer or to open a copy on a second one.

{% stepper %}
{% step %}

#### Install and activate

Install SEO Utils in the same version as the backup or a newer one, and [activate your licence](/guide/manage-license-key.md).
{% endstep %}

{% step %}

#### Reach the backups

{% tabs %}
{% tab title="From a bucket" %}
In the **Restore** card, click **From another bucket…** and enter the bucket's keys: the same fields as an [S3 / R2 connection](/guide/s3-r2-connections.md), plus the **Prefix** you set on the first computer. No connection is needed here. Leave **Save these keys on this computer** (3) on, and SEO Utils saves the secret key in your keychain for the restored connection. Click **List backups** (4).

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-d3514e13e4f207e742a789afc480a9dcaa219570%2Fbackups-restore-another-bucket.png?alt=media" alt=""><figcaption><p>Restore from another bucket: (1) account, (2) bucket, (3) keep the keys, (4) list the backups. Example values.</p></figcaption></figure>

Choose the computer in **Device** (1), then open the menu of its newest backup (2) and choose **Restore**.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-aaaaab0f89e5dddbae62ce24ab697f419567f04f%2Fbackups-restore-another-pick.png?alt=media" alt=""><figcaption><p>The backups of another computer: (1) choose it, (2) restore</p></figcaption></figure>
{% endtab %}

{% tab title="From a file" %}
Copy the `.seobackup` file to the new computer and use **From a file…**. Before you make the file, bring any saved pages that you moved to a drive or bucket [back to this computer](/guide/saved-serp-pages-storage.md#bringing-pages-back), and keep **Include saved pages on this computer** on.
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

#### Restore and restart

Type the passphrase if the backup is encrypted, restore as above, and restart SEO Utils. Then:

* **Secret keys needed** lists the connections whose secret keys are not on this computer, because the keychain is never in a backup. Open **Settings > Services > Storage > S3 / R2 Connections**, edit each one and enter its secret key. The notice shows once.
* **Automatic backups come back set up but turned off.** Click **Turn on** when you want them. With a folder destination, choose the folder on this computer first.
* Pair [Remote Access](/guide/remote-access.md) again if you use it. Your licence stays as you activated it.
  {% endstep %}
  {% endstepper %}

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-0348170c67c152e32f5848de917a2bfafd08e751%2Fbackups-secret-keys-needed.png?alt=media" alt=""><figcaption><p>The notice after a restore: (1) open the connections</p></figcaption></figure>

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-117a2c987cdc84b2b50ce39eb9385a8221c1f9a4%2Fbackups-set-up-but-off.png?alt=media" alt=""><figcaption><p>Automatic backups wait for you: (1) the notice, (2) turn on</p></figcaption></figure>

## Saved Pages and Backups

[Saved SERP pages](/guide/saved-serp-pages-storage.md) can take many gigabytes, so backups to a bucket or a folder, scheduled or not, never contain them. Only a backup to a file can, with the switch on.

To keep them safe anyway, store them in the bucket next to your backups:

1. In the **Automatic backups** card, find the **Saved pages** row: **Saved SERP pages on this computer are not in automatic backups.**
2. Click **Keep them in this bucket too** (1). SEO Utils moves the pages into a `saved-pages` folder inside your backup prefix, in the background.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-44907588df8ea83b0debd1d1b9b8279f899a307e%2Fbackups-saved-pages-row.png?alt=media" alt=""><figcaption><p>The Saved pages row</p></figcaption></figure>

The row then says where the pages are, and a restore finds them again. The button shows only for a bucket destination, while the pages are still on this computer.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-d58c1a2241341da850dfef9e8dd7187138c34b74%2Fbackups-saved-pages-kept.png?alt=media" alt=""><figcaption><p>The Saved pages row after the move</p></figcaption></figure>

* **Restoring on the same computer** needs nothing more.
* **Restoring on another computer** asks whether to copy the backup's saved pages into this computer's own storage. **Copy them** copies inside the bucket and downloads nothing; **Restore without them** skips them.
* **The daily cleanup** keeps every saved page that a backup you still keep needs.
* **Bringing the pages back** to this computer warns you, while automatic backups are on, that a backup restored elsewhere will not have them.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-6dd102ae21e9604031c20d7dc457f37c3561b7a4%2Fbackups-restore-pages-question.png?alt=media" alt=""><figcaption><p>A restore on another computer: (1) copy the pages, (2) restore without them</p></figcaption></figure>

## Back Up Only Your Settings

A database backup already includes your settings, so use the **App Configurations** tool only when you want the settings alone, to save time re-entering important ones such as the [DataForSEO API](/guide/seo-data-source.md#how-to-connect-your-dataforseo-account-to-seo-utils), a [rented API key](/guide/rent-dataforseo-api-key.md), the [Google Maps API](/guide/google-my-business-rank-tracker.md#setup-the-google-places-api) and [IndexNow](/guide/indexnow.md).

To open it, go to the user dropdown and select **Backup Tools > App Configurations**.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-ef99527a2823ab8c91662ac70bcbc06e117e44f4%2FXnapper-2024-11-13-21.07.01.png?alt=media" alt=""><figcaption><p>Access the app configurations backup tool</p></figcaption></figure>

Create and restore a backup file of your settings the same way as in the database tool.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fgit-blob-140764d912c293482756fc3ae9f14139d2c8c2b1%2FXnapper-2024-11-13-21.08.09.png?alt=media" alt=""><figcaption><p>Create &#x26; restore app configurations</p></figcaption></figure>
