On this page
- Which undo tool fits the change you made?
- Check the cache and save the broken state first
- How to undo an edit you haven’t saved yet
- How to restore a saved post or page from revisions
- How to get back a page you deleted
- Why reinstalling a block theme doesn’t undo design changes
- How to undo a plugin or theme update
- When a backup restore is the right undo, and what it erases
- How to tell the undo actually worked
- When to stop and get help
- Frequently asked questions
Key takeaways
- Revisions restore a post’s title, author, content and excerpt. They don’t bring back menus, settings, SEO plugin fields or page builder data.
- Block theme design changes are stored in the database, so deleting and reinstalling the theme leaves them in place. Reset the template or the styles instead.
- WP Rollback swaps a plugin’s files for an older version. It doesn’t reverse database changes the update made, so keep a backup from before the update as your fallback.
- Since WordPress 6.3, core puts the old plugin or theme back only when a manual update fails to install. An update that installs fine and then breaks the site stays in place.
- On a WooCommerce store, a database restore can delete orders placed after the backup, and restoring with Subscriptions can trigger duplicate renewal charges.
You rewrote the shipping page on Tuesday and only noticed today that a heading is missing. Or a plugin updated at lunchtime and the cart is now an empty column on mobile. In both cases you want an undo button, and WordPress doesn’t have one for the whole site.
What it has is a set of separate recovery tools. Each one covers one part of the site and has its own limit. The skill is matching the tool to the place where the change is stored, then using the smallest tool that can reach it. Picking the wrong one is how a typo turns into a lost week of orders. A full restore is the last step on that ladder, and our guide to restoring a WordPress site from backup covers it in detail.
Which undo tool fits the change you made?
Find the row that matches what changed. The last column shows what that tool can’t reach, which is usually the reason an undo fails.
| What changed | Where it lives | Undo with | What it can’t reach |
|---|---|---|---|
| An edit you haven’t saved | The editor session | Undo arrow or Ctrl+Z | Anything already saved |
| Saved post or page content | Revisions in the database | Revisions panel | Menus, settings, plugin and builder data |
| A deleted post or page | Trash | Restore from Trash | Items already emptied from Trash |
| Block theme styles or templates | Database customizations | Styles revisions or template reset | Changes outside the Site Editor |
| A plugin or theme update | Files, sometimes data too | Isolate, then roll back the files | Database changes the update made |
| Damage across files and data | Everywhere | Backup made before the problem | Nothing, which is the danger |
Check the cache and save the broken state first
Before undoing anything, make sure the problem is real. WordPress.org’s FAQ on changes that seem to do nothing lists browser caching, server-side caching and caching plugins as common reasons a page looks wrong when the site is fine. Do a hard reload first. Then clear your caching plugin or builder cache, then your host’s cache and any CDN.
If the problem is still there, take a backup of the site as it is now, even though it’s broken. That copy lets you undo your undo. It also holds any orders, comments or form entries that came in since your last good backup. You may need to copy them back later.
How to undo an edit you haven’t saved yet
Use the Undo arrow in the editor’s top toolbar, or press Ctrl+Z on Windows. Each press steps back one action in the current editing session. Redo, next to it, steps forward again.
Undo only covers the current session. Once you save or publish, use revisions instead. One quirk confuses people: after you undo every change, the Save button can stay active. If you want to throw away a whole session of experiments, close the tab or reload without saving.
How to restore a saved post or page from revisions
WordPress records a revision every time you save a draft or publish an update. Restoring one replaces the content of that single post or page and leaves the rest of the site alone. For content mistakes, it’s the safest undo there is.
- Open the post or page in the block editor.
- Open the Settings sidebar, select the Post or Page tab, and click Revisions. If you don’t see it, the item may only have been saved once, or revisions are switched off.
- Drag the slider to the last good version and check its date and time. The good and bad versions are often one step apart.
- Read the comparison. Anything added on purpose after that version, such as a corrected price or a colleague’s paragraph, will be lost if you restore past it.
- Click Restore This Revision. The version you replaced stays in the history, so you can undo this step too.
- View the live page in a private window and check links, forms and the SEO title before you move on.
Know the limits before you rely on this. WordPress’s revisions documentation says core tracks the title, author, content and excerpt. It doesn’t track menus, widgets, site settings or most plugin data. People testing SEO changes on r/Wordpress warn that revisions don’t always restore SEO plugin fields or page builder data cleanly. Revisions are unlimited by default, but the WP_POST_REVISIONS constant in wp-config.php can limit or turn them off. A host or plugin may have set it without telling you.
Autosaves are separate. WordPress keeps one per user per post, each new one replaces the last, and an autosave never overwrites published content. To get a reliable restore point, save by hand before a big edit.
How to get back a page you deleted
Go to Posts or Pages, open the Trash view at the top of the list, hover over the item and click Restore. Restored items may come back as drafts, so check the status and publish again if needed.
Trash only holds items for a limited time before deleting them for good, and the window depends on your setup. Once an item is gone from Trash, you need a backup made before you deleted it. Restore that backup to a staging copy and copy the page across, rather than rolling the whole site back for one page.
Why reinstalling a block theme doesn’t undo design changes
Block themes save your Site Editor changes in the database, not in the theme files. In a wordpress.org support thread, a user deleted and reinstalled the theme and found their customizations still there. Clearing the template’s customizations is what removed them.
Go to Appearance → Editor. For site-wide colours, fonts and spacing, open Styles and use its revision history to compare and restore an earlier version, or reset it. For a template or template part, open it, then use the three-dot menu to reset it to the theme’s version. Menu labels have changed between WordPress versions, so look for “Reset” or “Clear customizations”.
Be careful with what you reset. A template controls every page that uses it, and resetting it removes all of its customizations, including the ones you wanted to keep. Global styles affect the whole site. If you edit a classic theme’s files directly instead, a theme update can overwrite those edits. Learn WordPress’s advice is to use a child theme, and our guide to updating a WordPress theme safely covers the checks to run before an update.
How to undo a plugin or theme update
Find the component that’s causing the problem before you roll anything back. WordPress.org’s plugin documentation suggests checking the plugin’s support forum or deactivating plugins one at a time. If you updated five plugins and rolled all five back, you still wouldn’t know which one broke the site.
Once you know which plugin it is, the free WP Rollback plugin from the WordPress.org directory can install an earlier version. Go to Plugins → Installed Plugins, click Rollback under the plugin, choose a version and confirm. For premium plugins, download the earlier version from your account with the vendor and upload it.
Rollback only replaces files. WP Rollback’s own FAQ says a downgrade doesn’t reverse database changes a newer version made, and that older versions can be missing security fixes. If the update changed how the plugin stores its data, the old code is now running against new data and can stay broken. The changelog is the best clue. Look for words like “migration”, “database update” or a major version jump. In that case, restoring the pre-update backup is the real undo.
WordPress core won’t do this for you. Since 6.3, core automatically puts the previous version back only when a manual plugin or theme update fails to install. Make WordPress Core’s announcement says it doesn’t keep the old version once an update succeeds. An update that installs cleanly and then breaks the site stays installed.
If you can’t reach the dashboard
When the site shows “There has been a critical error on this website,” check the admin email inbox for WordPress’s recovery link first. If that doesn’t work, connect by SFTP or your host’s file manager and rename the plugin’s folder inside wp-content/plugins. WordPress deactivates a plugin it can’t find. Renaming the whole plugins folder also works, but it turns off every plugin at once. Our guide to fixing a WordPress fatal error walks through reading debug.log to find the cause.
When a backup restore is the right undo, and what it erases
Use a backup when the damage covers both files and data, or when you can’t find the cause and the narrower tools have failed. WordPress’s backup handbook says a complete backup needs both the files and the database. A database-only backup doesn’t bring back themes, plugins or uploads.
The cost is everything that happened after the backup’s timestamp. One r/Wordpress poster restored a five-month-old backup to fix a problem. It wiped theme changes, a slider, an infographic and their stock counts. Kinsta’s documentation makes the same point about staging: pushing a whole staging database to live replaces the live database. That loses orders, comments, form entries and users created since the copy was made.
To keep the damage small, choose the newest backup taken before the problem, not just the newest backup. Restore it to staging first if your host allows, and compare it with live. If your host offers selective restore, restore only the files or only the database, whichever actually needs it. Our article on backups that actually restore covers setting this up before you need it.
On a WooCommerce store, protect orders first
WooCommerce’s update guide recommends a current backup, testing on staging, and keeping checkout out of use while you restore or troubleshoot. Rolling back a plugin’s files doesn’t delete orders, but a database restore can. Practitioners on r/woocommerce export orders and customers before a restore and re-import them afterwards. They add that the right method depends on whether High-Performance Order Storage is enabled.
Subscriptions add a money risk. WooCommerce’s Subscriptions documentation warns that restoring a backup can remove orders, customer details, payment tokens and subscriptions from the gap between the backup and the restore. Renewals may then run again and charge customers twice, unless you fix the renewal schedule. If you need to refund anyone afterwards, WooCommerce’s refund docs are clear: changing an order’s status to Refunded doesn’t return the money. The refund has to go through the payment gateway.
How to tell the undo actually worked
The error going away isn’t the finish line. Log out, open the page in a private window, and check whatever the change touched: the form submits, the cart adds an item, the menu opens on a phone. A restored page can bring back an old form, an outdated offer or missing image alt text you had already fixed. Then save the post or take a fresh backup, so the repaired state becomes your next restore point.
When to stop and get help
Stop undoing and start diagnosing when:
- a critical error survives a plugin rollback
- the files are back but the data is still wrong
- a restore would erase live orders
- a fix removes the error but breaks something else
At that point you’re fixing a bug, not reversing a change. Collect the error message, the time it started and what changed just before, then take it to the plugin’s support forum or your developer. If you’d rather not do it yourself, SiteSelf handles finding and fixing WordPress errors on request. It needs hosting (SSH) access for code and file work, says what it is about to change and whether that can be undone, then fetches the page and reports what it changed and what it checked.