Opens in a new tab
  1. Home
  2. Guides
  3. Publishing
Publishing guide

WordPress Autosave vs. Post Revisions, Explained

Learn the difference between WordPress autosaves and post revisions, how both use the revision architecture, why autosaves do not accumulate like normal revisions, how retention and recovery work, and how to configure autosave frequency and revision history safely.

  • Updated September 22, 2026
  • 25 min read
  • WordPress guide

WordPress autosave vs. post revisions is an important distinction to understand because both systems preserve versions of content, but they solve different editing problems and follow different storage rules.

An autosave protects work that has not yet been intentionally saved.

A post revision preserves a historical version created through the normal content-saving process.

The simplest model is:

Autosave
→ recovery protection while editing

Post revision
→ historical version after a save or update

The terminology becomes slightly confusing because WordPress stores autosaves through the same revision architecture used for ordinary post revisions.

So these two statements are both true:

Autosaves and revisions
serve different purposes.

Autosaves are technically
a special type of revision.

This guide explains how WordPress autosaves and post revisions differ, how they are stored, when WordPress creates them, how many are retained, how recovery and restoration work, how WordPress 7.0 displays revision history, how custom post types and metadata interact with revisions and how to configure both systems without confusing autosave frequency with revision retention.

WordPress autosave vs. post revisions: the quick answer

The practical difference is:

AUTOSAVE

Created automatically
while editing

Primary purpose:
recover unsaved work

Typical frequency:
every 60 seconds

Retention:
maximum one autosave
per user per post


POST REVISION

Created from content saves
and updates

Primary purpose:
historical version recovery

Frequency:
depends on actual saves

Retention:
unlimited by default
unless configured otherwise

Autosaves protect the current editing session.

Revisions preserve content history across editing sessions.

What is WordPress autosave?

WordPress autosave automatically preserves editing progress while a user is working on supported content.

The purpose is to reduce lost work when something interrupts the editing session.

Examples include:

  • the browser crashing;
  • the computer losing power;
  • the internet connection failing;
  • a tab being closed unexpectedly;
  • the editor becoming unresponsive;
  • a session being interrupted before the user clicks Save.

WordPress can later detect that a newer autosaved version exists and provide a recovery path.

What is a WordPress post revision?

A revision is a stored historical version of revision-enabled content.

The official WordPress Revisions documentation describes the revision system as a way to preserve previous versions so editors can inspect changes and restore an earlier state.

A revision answers:

What did this content
look like earlier?

An autosave answers:

Can WordPress recover
work I had not deliberately
saved yet?

For a deeper treatment of the revision architecture itself, see What Are WordPress Post Revisions, Really?.

Autosaves are stored as a special type of revision

At the database level, autosaves participate in WordPress’s revision architecture.

Both normal revisions and autosaves use:

post_type = revision

and both are associated with the parent post.

This is why WordPress documentation can accurately describe autosaves as a special type of revision even though their purpose and retention behavior differ.

Revisions live in the posts table

Normal revisions are stored in the same posts table architecture used by ordinary WordPress content.

A standard installation therefore commonly contains records representing:

post
page
attachment
revision
navigation item
custom post types
...

inside the posts table.

A revision is linked back to its original post through:

post_parent

and uses:

post_type = revision
post_status = inherit

This architecture is documented in the official WordPress revisions documentation.

Autosaves are identified separately from normal revisions

WordPress provides:

wp_is_post_autosave()

for identifying whether a revision record represents an autosave.

The official wp_is_post_autosave() documentation shows that WordPress identifies autosave revisions through their revision naming structure.

It returns the parent post ID when the supplied revision is an autosave.

WordPress can also identify ordinary revisions

The related:

wp_is_post_revision()

function determines whether a post object or ID represents a revision.

See the official wp_is_post_revision() reference.

The current content is separate from its revisions

Consider a published article:

Post ID:
100

Current content:
Version C

Its historical records might be:

Revision 301
→ Version A

Revision 317
→ Version B

and the current editing session might also have:

Autosave 322
→ unfinished Version D

The conceptual structure becomes:

Revision A
Revision B
      ↓
Current Post C
      ↓
Autosaved work D

These are related records, but they represent different states.

Autosaves do not overwrite published content

An autosave is stored separately from the published post.

If a user begins editing:

Published Version A

and WordPress creates an autosave containing:

Draft Version B

the public site does not automatically start displaying Version B.

The autosaved work remains separate until the normal publishing or update workflow commits the content.

How often does WordPress autosave?

The default WordPress autosave interval is:

60 seconds

The official WordPress wp-config.php documentation documents the:

AUTOSAVE_INTERVAL

constant.

WordPress Core defines the default as:

MINUTE_IN_SECONDS

when no custom value is configured.

You can change the WordPress autosave interval

For example:

define(
    'AUTOSAVE_INTERVAL',
    180
);

changes the interval to:

180 seconds
=
3 minutes

For the configuration process itself, see How to Change the WordPress Autosave Interval.

TheOneWP Autosave Interval provides a configurable interface for managing this behavior without manually maintaining the constant.

Autosaving every 60 seconds does not mean storing a new permanent row every 60 seconds forever

This is one of the most common misconceptions about WordPress autosaves.

A user editing one post for:

2 hours

with a:

60-second autosave interval

does not automatically produce:

120 permanently retained
autosave revisions

for that user.

WordPress keeps a maximum of one autosave per user per post

The current WordPress documentation states that there is normally a maximum of:

one autosave
per user
per post

When that same user produces a newer autosave, WordPress updates the autosaved state rather than accumulating an endless chain of autosaves.

Multiple users can have separate autosaves

This becomes important on collaborative sites.

Suppose:

Post ID 100

is edited by:

Alice
Bob

WordPress can maintain:

Alice autosave
+
Bob autosave

for that post.

The retention rule is therefore not:

one autosave total
per post

but:

one autosave
per user
per post

wp_get_post_autosave() retrieves autosaved content

WordPress provides:

wp_get_post_autosave()

for retrieving autosaved data.

The official wp_get_post_autosave() documentation allows code to retrieve either:

  • the latest autosave for a post;
  • the autosave associated with a specific user.

For example:

$autosave = wp_get_post_autosave(
    $post_id,
    $user_id
);

Autosave frequency and revision retention are independent settings

This is the central distinction.

AUTOSAVE_INTERVAL
→ how frequently editing work
is automatically protected

WP_POST_REVISIONS
→ how many normal historical
revisions WordPress retains

Changing one does not configure the other.

A longer autosave interval does not reduce the revision limit

Suppose you configure:

AUTOSAVE_INTERVAL = 300

That means WordPress attempts autosave activity less frequently during editing.

It does not mean:

keep fewer revisions

A revision limit does not make autosave less frequent

Likewise:

WP_POST_REVISIONS = 5

does not mean WordPress autosaves every five minutes.

It means WordPress retains a limited number of normal historical revisions according to its revision-retention logic.

What is the default revision limit?

By default, WordPress keeps:

unlimited normal revisions

for post types that support revisions.

The official wp_revisions_to_keep() documentation states that the default is an unlimited number of revisions.

WP_POST_REVISIONS controls the global revision policy

The constant can be configured in:

wp-config.php

For example:

define(
    'WP_POST_REVISIONS',
    10
);

This tells WordPress to retain up to ten normal revisions according to the revision-retention system.

WP_POST_REVISIONS supports several modes

true
→ normal revisions enabled
→ unlimited by default

-1
→ unlimited revisions

false
or
0
→ normal revisions disabled

positive integer
→ maximum normal revisions retained

Autosaves remain a separate special case.

Disabling normal revisions does not disable autosave

This is another important distinction.

If you configure:

define(
    'WP_POST_REVISIONS',
    false
);

WordPress can still maintain the autosave used to protect current editing work.

The official WordPress revisions documentation explicitly distinguishes normal revision storage from the one-autosave-per-user behavior.

Why does WordPress retain autosave when revisions are disabled?

Because the two systems solve different problems.

Revision history disabled
→ no long-term historical versions

Autosave retained
→ current editing recovery
still available

Without this separation, disabling revision history would also remove an important editor-recovery mechanism.

How are normal revisions created?

WordPress provides:

wp_save_post_revision()

for creating a revision of the current post state.

The official wp_save_post_revision() documentation explains that a revision is typically created around a post update.

WordPress does not necessarily create an identical revision every time

Current Core logic compares revision-supported fields with the latest stored normal revision.

By default, a new revision is saved when relevant revisioned content has changed.

This helps avoid retaining pointless duplicate versions when there is no meaningful difference in the fields WordPress revisions.

Which fields are revisioned by default?

The standard revision architecture tracks core content fields including:

  • title;
  • author;
  • content;
  • excerpt.

WordPress internally determines revision-supported fields through its revision API.

Post metadata can also support revisions

Modern WordPress versions allow registered post metadata to opt into revision support.

The official register_meta() documentation includes:

revisions_enabled

for metadata registered against revision-supporting post types.

For example:

register_post_meta(
    'post',
    '_project_subtitle',
    array(
        'single'            => true,
        'type'              => 'string',
        'show_in_rest'      => true,
        'revisions_enabled' => true,
    )
);

Not every post meta value is automatically revisioned

This matters when building custom editing experiences.

Do not assume:

post has revisions
↓
every wp_postmeta value
automatically has historical versions

Revision support for custom metadata needs to be designed deliberately.

Custom post types must support revisions

A custom post type can declare:

'supports' => array(
    'title',
    'editor',
    'revisions'
)

when registered.

If the post type does not support:

revisions

WordPress revision APIs will not treat it like a revision-enabled content type.

The official post_type_supports() documentation covers feature support checks.

Check whether revisions are enabled for a post

WordPress provides:

wp_revisions_enabled()

which evaluates whether revision support is active for a particular post.

This accounts for:

  • post-type support;
  • revision configuration;
  • WordPress revision policy.

Per-post-type revision limits are possible

You do not necessarily need one revision-retention value for every post type.

WordPress provides:

wp_revisions_to_keep

and a post-type-specific revision-retention filter.

The official wp_revisions_to_keep documentation allows developers to modify the number of revisions retained for a particular post.

Example: keep fewer revisions for one post type

add_filter(
    'wp_revisions_to_keep',
    function (
        $num,
        $post
    ) {

        if (
            'product_note'
            === $post->post_type
        ) {
            return 5;
        }

        return $num;
    },
    10,
    2
);

This can be useful when different content types have very different editorial requirements.

One global revision limit is not always ideal

Consider:

Blog articles
→ edited frequently
→ 20 revisions useful

Legal notices
→ rarely changed
→ 5 revisions enough

Landing pages
→ page builder
→ larger revisions
→ 10 revisions enough

A thoughtful retention policy can reflect actual content workflows.

TheOneWP Post Revisions provides a dedicated revision-retention control for WordPress content.

Autosave is primarily about recovery

Suppose an editor writes:

1,500 words

but has not yet clicked:

Save draft
or
Update

If the browser closes unexpectedly, the most useful data may not be the last normal revision.

It may be the newer autosaved copy created during the interrupted editing session.

Revisions are primarily about history

Now suppose the article was deliberately updated several times:

Monday
→ first draft

Tuesday
→ editorial rewrite

Wednesday
→ legal correction

Thursday
→ published version

Normal revisions provide the historical trail that allows earlier versions to be inspected and restored.

A practical example

Imagine a published page contains:

Version 1
"Free shipping over $50."

An editor changes it and deliberately saves:

Version 2
"Free shipping over $75."

WordPress can retain Version 1 as a historical revision.

The editor then starts changing the sentence to:

"Free shipping for premium members."

but has not saved yet.

An autosave may contain that unfinished Version 3.

The structure becomes:

Revision
→ Version 1

Current published content
→ Version 2

Autosave
→ unfinished Version 3

How does autosave recovery work?

When WordPress detects autosaved content newer than the version currently being edited, it can notify the editor that recoverable content exists.

The user can then inspect or restore the autosaved state rather than reconstructing lost work manually.

Autosave is not a website backup

An autosave protects a particular editing state.

It does not protect:

  • the complete database;
  • theme files;
  • plugin files;
  • uploads;
  • server configuration;
  • all website settings.

A complete backup belongs to a different recovery layer.

TheOneWP Backup Manager provides a separate backup system for broader recovery requirements.

A revision is not a complete backup either

A revision represents an earlier state of supported content fields.

It does not represent a snapshot of the entire WordPress installation.

The hierarchy is:

Autosave
→ editing-session recovery

Revision
→ content-history recovery

Backup
→ site or database recovery

How do you view WordPress revisions?

For content with available revisions, WordPress exposes revision history through the editor’s document settings.

In current WordPress versions, the sidebar displays the number of available revisions when revision history exists.

Opening it launches the revisions interface.

WordPress 7.0 introduced a redesigned revisions screen

WordPress 7.0 introduced a newer revision experience.

The current WordPress revisions documentation explains that the newer interface includes a top timeline-style slider and visual change indicators.

The revision interface highlights different kinds of changes

Current WordPress documentation identifies:

Green
→ inserted content

Red
→ deleted content

Yellow
→ changed content

This makes it easier to move through revision history and identify which parts of the content changed.

The classic revision screen remains available

WordPress 6.9 and earlier use the classic revisions interface by default.

WordPress 7.0 also retains access to the classic screen.

The classic interface supports:

  • side-by-side comparison;
  • next and previous navigation;
  • comparison between selected revisions;
  • restoration of a historical version.

How does restoring a revision work?

WordPress provides:

wp_restore_post_revision()

for restoring revision data to its parent post.

The official wp_restore_post_revision() documentation allows WordPress to restore all revision-supported fields or a selected subset.

Restoring a revision does not mean deleting later history

Conceptually, restoration means:

select historical version
↓
copy its revisioned fields
back into current post
↓
current post becomes based
on that earlier version

WordPress’s revision workflow is designed so restoration itself remains part of an editable history rather than acting like destructive time travel.

Do not edit revision rows manually

A revision belongs to WordPress’s content architecture.

Use:

  • the WordPress editor;
  • WordPress revision APIs;
  • documented maintenance tools;

rather than manually rewriting revision rows through arbitrary SQL.

wp_get_post_revisions() retrieves revision history

Developers can retrieve revisions through:

wp_get_post_revisions()

The official wp_get_post_revisions() reference provides the programmatic interface for retrieving revisions associated with a post.

For example:

$revisions =
    wp_get_post_revisions(
        $post_id
    );

Do not use direct SQL when WordPress already provides revision APIs

This:

SELECT *
FROM wp_posts
WHERE post_type = 'revision';

may be useful during investigation.

It is usually not the best basis for application behavior when WordPress already provides APIs that understand the revision model.

Autosave and Heartbeat are related but not identical

The WordPress Heartbeat API provides recurring communication between the administration interface and the server.

Heartbeat supports functionality related to editing workflows, including:

  • post locking;
  • session coordination;
  • plugin background communication.

See The WordPress Heartbeat API, Explained.

Do not treat Heartbeat frequency as the autosave interval

These are separate concepts.

Heartbeat interval
→ periodic admin communication

AUTOSAVE_INTERVAL
→ autosave timing

Revision retention
→ historical versions kept

Changing one does not automatically configure the others.

Autosave and post locking are different systems

Post locking asks:

Who is currently editing
this content?

Autosave asks:

What unsaved work should
be recoverable?

Revisions ask:

What did the saved content
look like previously?

See WordPress Post Locking Explained for the concurrent-editing side of the workflow.

Why WordPress keeps these systems separate

Consider two editors.

Alice
→ currently editing post 100

Bob
→ opens post 100

Post locking helps prevent accidental concurrent editing conflicts.

Alice’s autosave helps recover her current work.

Normal revisions preserve the historical versions already committed through previous saves.

Each layer solves a different problem.

Does autosave increase database writes?

Autosave activity can generate database writes because editing state needs to be persisted.

However, it is misleading to assume:

one autosave interval
=
one permanently accumulating row

because the autosave for a given user and post is reused rather than creating an unlimited sequence.

Should you increase the autosave interval to reduce database writes?

Possibly, but only after considering the editorial tradeoff.

A longer interval can reduce autosave frequency.

It also increases the amount of recent work that may not yet have a server-side autosave when an editing session fails.

For example:

60-second interval

maximum theoretical gap
between autosave opportunities:
approximately 1 minute

versus:

600-second interval

maximum theoretical gap:
approximately 10 minutes

The exact real-world behavior also depends on editor activity, connectivity and the editing implementation.

Do not optimize autosave merely because it writes to the database

Autosave exists to prevent content loss.

On a publishing team producing long articles, removing a small amount of database activity may be a poor trade if it significantly increases lost work.

See How to Reduce Database Writes in WordPress for a broader optimization strategy.

Revision retention affects database growth more directly

Unlike autosaves, normal revisions can accumulate as content is edited over time.

Consider:

5,000 posts
×
30 retained revisions
=
up to 150,000
historical revision records

The real storage impact depends on:

  • content length;
  • number of revision-enabled posts;
  • editing frequency;
  • revisioned metadata;
  • page-builder data;
  • database configuration.

Large page-builder revisions can matter

A simple article revision may contain relatively modest content.

A page-builder revision can preserve a much larger serialized or structured document state depending on the builder and integration.

Therefore:

10 revisions
of a short post

and:

10 revisions
of a complex landing page

may have very different storage costs.

Do revisions slow down WordPress?

The answer depends on the workload.

Simply having revisions does not mean every frontend request becomes slow.

Most normal frontend queries are interested in:

published content

rather than loading every historical revision.

However, very large revision volumes can contribute to:

  • larger database tables;
  • larger backups;
  • slower migrations;
  • heavier revision-management queries;
  • larger development copies;
  • more storage consumption.

See WordPress Database Bloat, Explained for the wider storage issue.

Database size alone is not a performance metric

A large database containing useful content is not automatically unhealthy.

A small database with poor query patterns can still perform badly.

See Optimizing the WordPress Posts Table for the distinction between table size and query performance.

Should you disable revisions?

Usually, disabling revisions entirely should be a deliberate workflow decision rather than a generic performance recommendation.

Revisions provide:

  • editorial recovery;
  • historical comparison;
  • protection against accidental changes;
  • a way to restore previous content;
  • useful audit context.

For many sites, a limited retention policy is more balanced than complete removal.

Example: keep ten revisions

define(
    'WP_POST_REVISIONS',
    10
);

This keeps historical recovery available while preventing indefinite accumulation of ordinary revisions.

How many revisions should you keep?

There is no universal correct number.

Consider:

  • how frequently content changes;
  • how many editors work on the site;
  • how valuable historical recovery is;
  • how large each revision tends to be;
  • how long editorial approval cycles last;
  • how large the database already is;
  • backup and migration requirements.

Small company website

A site with infrequently edited pages may be comfortable with:

5–10 revisions

per item.

Editorial publication

A news or publishing team may benefit from:

20
30
or more

depending on workflow and recovery requirements.

Highly regulated or audited content

Some environments may have reasons to preserve much longer history.

In that case, storage reduction may be less important than traceability.

WordPress revisions alone should not automatically be treated as a complete regulatory audit system, however.

Revision limits clean old revisions during future revision processing

A revision limit controls the number WordPress intends to retain as revisions continue to be created.

Do not assume that merely defining:

WP_POST_REVISIONS = 10

will instantly scan the complete database and remove every historical revision beyond ten from every post.

Existing cleanup should be considered separately.

Changing future policy and cleaning old data are separate operations

Revision configuration
→ controls future retention behavior

Database cleanup
→ removes already accumulated data

TheOneWP Post Revisions addresses revision policy.

TheOneWP Database Optimizer addresses supported database-cleanup categories.

Back up before deleting large revision histories

Historical revisions exist specifically to make recovery possible.

Mass-deleting them without a recovery point defeats that purpose fairly efficiently.

Create a backup before large cleanup operations.

TheOneWP Backup Manager provides a separate recovery layer for database and broader backup workflows.

Use Database Manager for inspection

TheOneWP Database Manager can help inspect the underlying tables and stored records when revision growth requires deeper investigation.

The appropriate sequence is:

measure
↓
identify revision volume
↓
decide retention requirement
↓
back up
↓
clean if appropriate
↓
measure again

Do not delete every revision just because there are many

A revision is not automatically database waste.

Ask:

  • Is this history useful?
  • How far back do editors realistically restore?
  • How much storage does it consume?
  • Does the site have an external editorial history system?
  • Would losing it create operational risk?

Do not confuse revisions with database bloat automatically

Database bloat means unnecessary or disproportionately retained data.

Useful revision history is legitimate data.

The same set of revisions can therefore be:

useful history
on one site

and

unnecessary excess
on another

Autosaves normally do not create the same long-term growth pattern

Because WordPress keeps a maximum of one autosave per user for a particular post, autosaves do not normally accumulate like unlimited normal revisions.

If the database has an enormous revision count, investigate:

normal revisions
before assuming
autosave is responsible

Autosave and browser-local recovery are not necessarily identical

Modern editing interfaces can have additional client-side protection mechanisms.

A browser-local recovery mechanism and WordPress’s server-side autosave system should not automatically be treated as the same layer.

The important distinction remains:

client-side temporary state
→ browser environment

WordPress autosave
→ server-side WordPress state

Do not rely exclusively on browser-local recovery

Local browser storage can disappear because of:

  • browser cleanup;
  • private browsing;
  • device failure;
  • switching devices;
  • storage restrictions.

Server-side autosave provides a different recovery mechanism.

Autosave and manual Save Draft are different

Clicking:

Save draft

commits the draft through the normal WordPress post-saving workflow.

Autosave exists so progress can be protected without requiring the user to manually trigger that save.

Autosave and Update are different too

For published content:

Update
→ deliberately changes
the current post

Autosave
→ preserves work
without publishing it

This separation protects the live page from unfinished editorial changes.

Autosave and preview can interact

When an editor previews content that has not yet been committed to the main post state, WordPress can use autosaved data to generate the preview representation.

The revision architecture therefore supports both recovery and preview-related editing workflows.

Developers should exclude autosaves from unrelated save_post logic

A common custom-plugin pattern is:

add_action(
    'save_post',
    'project_save_data'
);

If the callback should only run for intentional post saves, it may need to recognize autosave activity.

Use wp_is_post_autosave()

For example:

function project_save_data(
    $post_id
) {

    if (
        wp_is_post_autosave(
            $post_id
        )
    ) {
        return;
    }

    if (
        wp_is_post_revision(
            $post_id
        )
    ) {
        return;
    }

    // Normal save logic.
}

This prevents unrelated metadata or integrations from being executed merely because WordPress created an autosave or revision.

DOING_AUTOSAVE is also commonly encountered

Some WordPress save callbacks check:

defined(
    'DOING_AUTOSAVE'
)
&&
DOING_AUTOSAVE

However, developers should understand the exact context they are trying to exclude rather than copying defensive conditions blindly.

Functions such as:

wp_is_post_autosave()
wp_is_post_revision()

communicate the actual record type clearly.

Autosave can trigger expensive plugin behavior accidentally

Suppose a plugin performs:

save post
↓
send remote API request
↓
regenerate report
↓
clear site cache
↓
write audit record

on every relevant save hook.

If autosave traffic triggers all of those operations unnecessarily, the editing experience and server load can suffer.

Audit custom save callbacks

Ask:

  • Should this run on autosave?
  • Should this run when a revision is created?
  • Should it run only when the main post is deliberately updated?
  • Does it repeat expensive remote work?
  • Does it write additional metadata unnecessarily?

This is another connection to How to Reduce Database Writes in WordPress.

Custom revision metadata needs deliberate registration

If an important custom field must travel through historical versions, configure it for revision support.

If the metadata represents:

runtime cache
analytics count
last viewed timestamp
temporary processing state

revisioning it usually makes little sense.

Separate editorial state from runtime state

Good revision candidates include:

  • subtitle;
  • editorial summary;
  • structured page content;
  • revision-worthy design settings.

Poor candidates often include:

  • view count;
  • last cache rebuild;
  • background queue position;
  • temporary lock;
  • API synchronization timestamp.

Revisions should represent recoverable content state

A useful test is:

If I restore an old revision,
should this value also become
what it was at that time?

If the answer is yes, the metadata may belong in the revision model.

If the answer is no, it probably should not.

Page builders may implement additional revision behavior

WordPress provides the Core revision system, but page builders and complex editing tools may store additional content or metadata.

Some integrate closely with Core revisions.

Others may provide additional history systems.

Do not assume that:

WordPress revision limit
=
complete history policy
for every page builder

Check the builder’s own architecture.

WooCommerce and plugin content types may behave differently

Custom post types can enable or disable revision support independently.

Do not assume every object stored in:

wp_posts

automatically maintains normal post revision history.

Check:

post_type_supports(
    $post_type,
    'revisions'
)

Autosaves also depend on the editing architecture

Standard WordPress posts and pages have autosave support.

Custom editing systems can implement additional behaviors or bypass parts of the normal editor flow.

Test the actual content type rather than assuming every custom admin screen behaves like the standard post editor.

Autosave does not replace collaboration controls

If two users edit the same post simultaneously, two autosaves do not automatically merge the users’ intentions.

Post locking and editorial coordination remain important.

See WordPress Post Locking Explained.

Autosave is not version control

Autosave is designed for:

recovery

not:

complete historical change management

Normal revisions provide more of that historical role.

Even revisions are not a replacement for source-control systems when managing code, configuration or deployment artifacts.

Revision history can improve editorial confidence

An editor can make substantial changes knowing that earlier saved versions may remain recoverable.

This can encourage safer:

  • rewrites;
  • SEO updates;
  • legal corrections;
  • content refreshes;
  • collaborative review.

Autosave improves editing resilience

Autosave protects against a different class of failure:

  • unexpected browser closure;
  • connection interruption;
  • device problems;
  • accidental navigation;
  • editing-session interruption.

These benefits should be considered before aggressively increasing the autosave interval.

When should you increase the autosave interval?

Possible reasons include:

  • a highly constrained hosting environment;
  • many simultaneous editors;
  • measured autosave-related server pressure;
  • custom admin workflows where frequent recovery points provide little value.

Change the interval only after measuring the actual workload.

When should you decrease the autosave interval?

A shorter interval may be appropriate when:

  • editors write long-form content;
  • network interruptions are common;
  • losing several minutes of work would be expensive;
  • server capacity comfortably supports the workload.

A shorter interval means more frequent recovery opportunities.

Do not choose the autosave interval based only on database size

Autosaves do not accumulate like normal revisions.

Therefore an enormous revisions table is not automatically evidence that:

AUTOSAVE_INTERVAL
is too small

Measure the actual source of the records first.

When should you limit revisions?

Revision limits become worth reviewing when:

  • the site contains many frequently edited posts;
  • page-builder revisions are large;
  • database backups are becoming heavy;
  • migrations take excessive time;
  • very old revisions provide little recovery value;
  • database storage is constrained.

Do not choose a revision limit only from a performance tutorial

The appropriate number depends on workflow.

A site where content is edited once and never touched again has different requirements from an editorial operation with twenty writers.

Review revision policy as the site grows

A configuration that was irrelevant with:

30 posts

may become meaningful with:

30,000 posts

especially when each post has a long editing history.

Revision cleanup and future retention are different

After choosing a new limit, you may still need to review historical data already stored.

The safe workflow is:

measure existing revisions
↓
choose future retention
↓
create backup
↓
clean known excess
↓
verify site
↓
measure again

Use staging before aggressive revision changes

Test significant changes away from production when possible.

Especially test:

  • custom post types;
  • page builders;
  • revisioned metadata;
  • custom editor plugins;
  • restoration workflows.

See WordPress Staging Site Best Practices.

Test autosave recovery

A useful controlled test is:

1. Open a draft.

2. Make an identifiable change.

3. Wait beyond the autosave interval.

4. Verify autosave activity.

5. Simulate leaving without
   committing the change.

6. Return to the post.

7. Confirm WordPress exposes
   the recoverable version.

Test normal revisions separately

Then:

1. Save Version A.

2. Change the content.

3. Save Version B.

4. Change the content again.

5. Save Version C.

6. Open Revisions.

7. Verify A, B and C
   can be compared as expected.

Test restoration before relying on it operationally

Select an earlier controlled test revision and restore it.

Confirm:

  • the expected title returns;
  • the expected content returns;
  • revision-enabled metadata behaves correctly;
  • page-builder content remains coherent;
  • the frontend renders correctly.

Test custom fields

If the site depends on custom post metadata, explicitly verify whether those values are included in revision history.

Never assume every custom field is versioned merely because the editor shows a revision count.

Test multiple users

For collaborative sites:

User A
→ edits post

User B
→ edits same post

verify:

  • post locking;
  • autosave behavior;
  • revision attribution;
  • recovery behavior.

Check attribution in revision history

Revision records help indicate which editor was associated with a saved historical version.

This can be useful for editorial review, although revisions should not automatically be treated as a complete immutable audit log.

Revisions are editable application data

Administrators, plugins and database maintenance processes can modify or delete revision data.

If an organization requires tamper-resistant compliance logging, use an architecture specifically designed for that requirement.

Autosaves are even more temporary by nature

An autosave should be thought of as:

working recovery state

rather than permanent history.

A newer autosave replaces the user’s earlier autosave for that post.

Common mistake: treating autosave and revisions as synonyms

Autosaves use revision infrastructure, but their operational purposes differ.

Use:

autosave
→ temporary editing recovery

revision
→ historical saved version

Common mistake: thinking WordPress creates a new autosave row every minute forever

WordPress normally keeps one autosave per user per post.

Newer autosaves replace earlier autosave state.

Common mistake: changing AUTOSAVE_INTERVAL to control revision history

Autosave frequency and revision retention are independent.

Common mistake: changing WP_POST_REVISIONS to control autosave frequency

The revision limit does not define how frequently WordPress protects current editing work.

Common mistake: disabling revisions and assuming autosave disappears

WordPress preserves autosave as a separate recovery mechanism.

Common mistake: disabling autosave because the database contains many revisions

Large historical revision counts normally require investigation of revision retention rather than an assumption that autosave generated every row.

Common mistake: deleting all revisions as a generic optimization

Revision history has operational value.

Choose a retention policy based on real recovery requirements.

Common mistake: assuming revision limits instantly delete all historical excess

Future retention policy and cleanup of already accumulated records are separate concerns.

Common mistake: treating revisions as full backups

A revision contains supported content state, not the entire WordPress installation.

Common mistake: treating autosave as a full backup

Autosave protects editing progress for a specific content item.

Common mistake: assuming all post meta is revisioned

Custom metadata needs appropriate revision support.

Common mistake: assuming every custom post type supports revisions

Revision support must be registered for the post type.

Common mistake: triggering expensive plugin code during autosave

Audit custom save hooks and exclude autosave or revision records when that processing is unnecessary.

Common mistake: globally disabling Heartbeat to change autosave behavior

Heartbeat, post locking, autosave and revision retention are related editing systems but separate mechanisms.

Changing one without testing the others can create unexpected editor problems.

Common mistake: setting the autosave interval extremely high

A value such as:

3600 seconds

means a potential one-hour interval between autosave opportunities.

That may defeat much of the recovery benefit.

Common mistake: using unlimited revisions without ever reviewing the policy

Unlimited history can be appropriate.

It should still be intentional.

Common mistake: applying one revision limit to every workflow automatically

Different post types can have different historical requirements.

Common mistake: performing direct SQL cleanup without a backup

Revision deletion is destructive.

Create a recoverable backup first.

Common mistake: assuming a large database means revisions are responsible

A WordPress database can also grow because of:

  • post meta;
  • orders;
  • logs;
  • transients;
  • comments;
  • custom plugin tables;
  • analytics;
  • queue data.

Inspect before deleting.

How TheOneWP separates autosave and revision controls

TheOneWP treats autosave timing and revision retention as separate responsibilities because WordPress itself treats them as separate systems.

Autosave Interval

TheOneWP Autosave Interval controls how frequently WordPress automatically protects in-progress editor work.

Its purpose is:

editing recovery timing

Post Revisions

TheOneWP Post Revisions controls how many historical content revisions WordPress retains.

Its purpose is:

revision-history retention

Database Optimizer

TheOneWP Database Optimizer addresses supported historical cleanup categories after unnecessary database data has already accumulated.

Database Manager

TheOneWP Database Manager provides direct inspection of WordPress tables and stored records when deeper database investigation is required.

Backup Manager

TheOneWP Backup Manager provides the broader recovery layer that should exist before destructive cleanup.

Keep these controls conceptually separate

Autosave Interval
→ How often should WordPress
protect unsaved editing work?

Post Revisions
→ How much saved content
history should WordPress retain?

Database Optimizer
→ Which known disposable
historical records can be cleaned?

Database Manager
→ What is actually stored
in the database?

Backup Manager
→ How can the database
or site be recovered?

Recommended decision process

When reviewing autosaves and revisions, use this order:

Understand editing workflow
↓
measure revision volume
↓
review autosave requirements
↓
choose autosave interval
↓
choose revision retention
↓
test custom fields
↓
test custom post types
↓
create backup
↓
clean historical excess
if appropriate
↓
measure again

Autosave checklist

  • Understand that autosave protects unsaved editing work.
  • Remember that the default interval is 60 seconds.
  • Remember that autosave frequency and revision retention are separate.
  • Expect a maximum of one autosave per user per post.
  • Do not assume one permanent row is added every autosave interval.
  • Do not assume disabling normal revisions disables autosave.
  • Test autosave recovery before changing production behavior.
  • Consider editorial workflow before increasing the interval.
  • Use a shorter interval when frequent recovery points are operationally valuable.
  • Use a longer interval only when the tradeoff is understood.
  • Test custom editors and page builders separately.
  • Test multiple-user editing environments.
  • Do not run expensive custom save logic unnecessarily during autosave.
  • Use wp_is_post_autosave() where custom save callbacks need to exclude autosaves.
  • Do not treat autosave as a complete website backup.

Post revision checklist

  • Understand that revisions preserve historical saved versions.
  • Remember that normal revisions are unlimited by default.
  • Use WP_POST_REVISIONS when a global retention limit is appropriate.
  • Use revision filters when different content types need different limits.
  • Confirm that custom post types support revisions.
  • Check whether important custom metadata has revision support.
  • Do not assume every post meta value is revisioned automatically.
  • Review page-builder revision size.
  • Measure database storage before deleting history.
  • Keep enough revisions for realistic recovery.
  • Do not disable revisions solely because they use database space.
  • Do not assume a revision limit immediately cleans the historical database.
  • Create a backup before large revision deletion.
  • Use WordPress-aware cleanup when possible.
  • Test revision restoration before depending on it operationally.
  • Review revision policy again as the site grows.

Related guides

Final recommendation

The easiest way to understand WordPress autosave and post revisions is to stop treating them as two names for the same feature.

They belong to the same broader revision architecture, but they exist for different reasons.

Autosave
→ protects work
that has not yet been
deliberately saved

Revision
→ preserves content
that was saved previously

The default WordPress autosave interval is 60 seconds, but WordPress does not permanently add another autosave row every minute. It normally keeps a maximum of one autosave per user for a given post and replaces that user’s earlier autosave as editing continues.

Normal revisions follow a different retention policy. For revision-enabled content, WordPress keeps an unlimited number by default unless WP_POST_REVISIONS or revision filters establish a limit.

That means the correct controls are:

Need more or fewer
recovery checkpoints?
→ adjust autosave interval

Need more or less
historical content?
→ adjust revision retention

Database already contains
too much old revision data?
→ review and clean existing data

Need complete site recovery?
→ use backups

Do not increase the autosave interval merely because the database contains many revisions. Do not disable revisions merely because autosave exists. Do not disable Heartbeat assuming it is simply another name for autosave. And do not delete historical revisions before deciding how much editorial recovery your site genuinely needs.

The safer workflow is:

preserve useful editor recovery
+
retain useful content history
+
limit unnecessary historical growth
+
back up before destructive cleanup

TheOneWP Autosave Interval manages editing-recovery frequency, while Post Revisions manages historical retention.

Database Manager and Database Optimizer address inspection and supported cleanup separately, and Backup Manager provides a recovery point before destructive maintenance.

Once autosave timing, revision retention and database cleanup are treated as separate decisions, WordPress’s content-history system becomes considerably easier to configure correctly.

Simplify your WordPress stack

A modular WordPress toolkit. 104 focused tools.

Ultimately, you can build cleaner workflows, maintain fewer plugins and enable only the features each website actually needs.