# WordPress revisions: what they save, how to limit them, and what they miss

WordPress revisions will save your blog post. They won't save your menu, your widgets or the settings page you clicked through at 11pm.

Revisions are great at one job: keeping old versions of a post or page's text. By default WordPress keeps track of four things per revision: the title, the author, the content and the excerpt. Everything else on your site changes with no history at all.

## How revisions work

Every time you save a draft or update a published post, WordPress stores a copy. Those copies live in the same `wp_posts` table as everything else, as child rows of the post with a post type of `revision` and a status of `inherit`.

Autosaves are separate. WordPress keeps **at most one autosave per user per post**, and each new autosave overwrites the last one. So your table doesn't grow by a row every minute while you type. Autosaves never overwrite published content; if your browser crashes, WordPress offers the autosave back the next time you open the post.

Which content gets revisions? Posts and pages do. A custom post type only gets them if it declares `revisions` in its `supports` list when it's registered, and `revisions` isn't in the default list. So whether your products, portfolio items or events have revisions depends on how their plugin registered them.

## Viewing and restoring a revision

In the block editor:

1. Open the Settings sidebar.
2. Pick the Post or Page tab.
3. Click the number next to Revisions.

Since WordPress 7.0 that opens a new revisions screen. You get a list of saved revisions and a slider across the top. Colored markers show where blocks were added (solid green), removed (red stripes) or changed (yellow stripes). Find the version you want and click **Restore**.

On WordPress 6.9 and earlier you get the classic screen instead, which shows a side-by-side HTML diff. It also has a "Compare any two revisions" mode with two slider handles. In 7.0 you can still reach it with "Open classic revisions screen" in the sidebar.

## Limiting revisions with WP_POST_REVISIONS

A post edited 200 times has 200 revisions sitting in your database. Most sites never notice. Big, busy sites sometimes do, so WordPress lets you cap it in `wp-config.php`:

```php
define( 'WP_POST_REVISIONS', 5 );
```

The values, from the WordPress docs:

| Value | What it does |
| --- | --- |
| `true` or `-1` (the default) | Keep every revision |
| `false` or `0` | Keep none, except the one autosave |
| A number above 0 | Keep that many per post, plus one autosave per user |

With a number set, older revisions are deleted the next time the post is updated, not straight away. Developers can also change the count per post with the `wp_revisions_to_keep` filter.

## Plugins people use

If you'd rather click than edit `wp-config.php`, WP Revisions Control (40,000+ active installs) adds a setting under Settings → Writing to cap revisions per post type. Fair warning, as of October 2026 its plugin page says it hasn't been tested with the last three major WordPress releases.

Database cleanup plugins will also bulk-delete old revisions. That's fine for a bloated site, but think before you do it. Those revisions are the only undo your posts have.

## What revisions don't cover

When something goes wrong on a real site, these are what revisions won't bring back:

- Menus. Rearrange your main menu, save, regret it. There's no revision to go back to.
- Widgets and sidebars. Same story.
- Settings. Your site title, permalinks, reading settings and every plugin's options page.
- Plugins and themes. An update replaces the files. There's no "restore the old version" button in core.
- Custom fields and anything outside the four tracked fields. Revisions track title, author, content and excerpt by default.
- Custom post types that didn't opt in.
- Deleted media. Once it's permanently deleted, it's gone.

So **revisions are a history of your writing, not of your site.** For the rest of the site, core gives you nothing between one post's revisions and a full backup restore, which throws away everything since.

## How Kitepod covers the rest

If your changes go through an assistant connected with Kitepod, the gap closes. Every write Kitepod makes is snapshotted first, whatever it touches: a post, a menu, a widget, a setting, a custom CSS rule, a file in wp-content. Plugin, theme and core updates get a checkpoint each, so one bad update can be rolled back on its own.

Undo comes in three sizes: one edit, a whole task (a change set), or an entire session. Ask your assistant to "tidy the footer, rename three menu items and update the contact details", and that's one change set. If the client hates it, one undo puts all of it back, menu included.

```prompt
Undo everything you changed on the footer and menu this morning, but keep the new contact details.
```

Snapshots are encrypted and kept for 90 days. And there's an audit trail of who asked, what changed and who approved it, which pairs well with an [activity log](/wordpress-activity-log).

Kitepod's snapshots stop at Kitepod, though: they cover changes made through it. An edit you make by hand in wp-admin still only has core revisions behind it. And Kitepod isn't a backup service, so keep your real backups running. If you want to see how it fits next to Git and backups, read [WordPress version control](/wordpress-version-control). For the setup itself, start at [WordPress MCP](/wordpress-mcp).

## Finer points

### Where are WordPress revisions stored?

In the `wp_posts` table, as child rows of the original post with the post type `revision`. Autosaves are stored the same way, named `{post ID}-autosave`.

### How many revisions does WordPress keep by default?

All of them. `WP_POST_REVISIONS` defaults to `true`, which keeps every revision until you set a limit.

### Do revisions slow down my site?

Rarely on their own. They add rows to `wp_posts`, which matters more on huge, heavily edited sites. If you're worried, set a limit like 5 or 10 rather than turning them off.

### Can I turn revisions off completely?

Yes: `define( 'WP_POST_REVISIONS', false );`. WordPress still keeps one autosave per post. You'd lose your only built-in undo for content, so most sites shouldn't.

### Can I delete old revisions without a plugin?

Not from a screen. Core has an API function for deleting revisions but no button for it, so it's a cleanup plugin, a developer, or a limit that trims them as posts get updated.

Your main menu has never had an undo button. It can have one now.
