Preview, Undo & Tables (PRO)
Search and Replace History and Undo Changes (PRO)
If a search and replace changed more than you intended, you need a record of what ran and a way to roll it back. Update URLs PRO logs every real (non-dry) replace to a History page and keeps a per-value undo journal, so you can audit each run row by row and undo it — safely skipping any row that has been edited since.
PRO feature
History and Undo are available in Update URLs PRO. The free version takes no snapshot and cannot undo a search and replace — its changes are immediate and irreversible. Back up your database first if you are on the free tier.
What is saved in History
Every real replace is recorded as one History entry. An entry stores:
- Date and time of the run.
- The Search For and Replace With values.
- The tables involved.
- Total changes and the number of updated rows.
- Row-level before and after details (capped by your Max Results setting).
- The undo status of the entry.
A separate, uncapped undo journal stores the full original value of every changed column value, so an undo can restore complete data even when the on-screen details are truncated.
View run details
- Go to Update URLS → History.
- Click Details on an entry.
- Review each change by table, column, row ID, before value, and after value.

Undo an entry
Undo is invoked per History entry and processes in resumable batches, so a large undo that is interrupted resumes where it stopped.
- In Update URLS → History, click Undo on the entry you want to reverse.
- Confirm the action.
- Update URLs restores original values from the undo journal.
How the safety check works
A row is only restored if its current value still matches what this run wrote. Update URLs compares hashes of the stored and current values before restoring. If a row has been edited since the replace, restoring it would overwrite that newer edit, so the row is skipped and reported instead.
After an undo you see counts for restored versus skipped rows. Skipped rows are listed as not undone, with their wanted-versus-current values, and each one can be force-restored individually with Restore this if you are certain you want to overwrite the current value.
Delete an entry
- Click Delete to remove a History record.
- Deleting an entry removes its log and its undo journal, so the run can no longer be undone.
- It does not revert any data already written — deleting the record only clears the audit trail.
Retention
History keeps the newest 50 entries. When a new entry pushes the count past 50, the oldest entry is pruned and its undo journal rows are deleted with it, so very old runs are no longer undoable.
Conclusion
History gives you an auditable record of every real search and replace, and Undo lets you roll one back without clobbering rows that changed afterward. Before running a large replace, use a Dry Run preview to see the changes first, and for full-site safety keep a one-click database backup.
FAQs
Can I undo a search and replace in the free version?
No. Undo and History are Update URLs PRO features. The free version writes changes directly with no snapshot and no journal, so its replacements are immediate and irreversible. Always back up your database before running a search and replace on the free tier.
Why were some rows skipped during undo?
A row is skipped when its current value no longer matches what the original run wrote — usually because it was edited after the replace. Restoring it would overwrite that newer edit, so Update URLs skips it and reports it as "not undone." You can force-restore any skipped row individually with Restore this.
How many history entries are kept?
History keeps the newest 50 entries. When a new run pushes the total past 50, the oldest entry is pruned automatically along with its undo journal rows, so runs older than the most recent 50 can no longer be undone.
What happens if an undo is interrupted?
Undo runs in resumable batches, so an interrupted undo — for example if the page is closed mid-operation — resumes from where it stopped rather than restarting. The entry's undo status reflects whether the rollback is still running, partial, or complete.
Does deleting a history entry revert the changes?
No. Deleting a History entry only removes the log record and its undo journal; it does not undo the changes that were written to the database. Once you delete an entry you also lose the ability to undo that run, so undo first if you need to reverse it.