Skip to content

FAQ & Support

Update URLs Troubleshooting: Fix Search and Replace

Most Update URLs problems come from one of four things: the search text does not exactly match what is stored, the match is case-sensitive, a replace was applied with no way to undo it, or a very large site needs the PRO background engine to finish. This page walks through each symptom with the exact admin path and fix so you can get search and replace working correctly and safely.

Update URLs lives under the Update URLS top-level menu in your WordPress admin. The main Search & Replace screen is where you run replacements; History, Tools and Settings are separate submenus.

Nothing changed / "No search found"

If a run finishes with "No search found." or reports zero changes, the search text did not match anything stored in the tables you targeted. This is almost always an exact-match or case problem rather than a bug.

  1. Copy the exact string as it is stored, not as it looks on the page. View the page source or the database value and copy the full URL, including http:// vs https://, www vs no www, and any trailing slash.
  2. Confirm you selected somewhere to look. In Free, tick at least one box under Where to Update?Content, Excerpts, Attachments, Links or Custom.
  3. Check case. Matching is case-sensitive by default (see the next section).
  4. In PRO, run a Dry Run first and read the results table — it shows the exact Before and After values so you can see why a string did or did not match.

URLs are treated as URLs in Free

In Free, both Search For and Replace With are cleaned as URLs on submit. If you are replacing plain text rather than a URL, the PRO search and replace accepts arbitrary text strings.

Search matches are case-sensitive

Update URLs matches text exactly, and matching is case-sensitive by default. Example.com and example.com are treated as different strings, so a replace can report "No search found" even though the URL is clearly on the page.

  • In Free, there is no case-insensitive option. Copy the string with its exact capitalisation, or run separate replaces for each variant you find.
  • In PRO, turn on Case-Insensitive in Additional Settings on the Search & Replace screen before running.

PRO feature

The Case-Insensitive toggle is available in Update URLs PRO. In Free, matches are always case-sensitive.

A replace was irreversible (Free has no undo)

In Free, a search and replace writes directly to your database, immediately and irreversibly — there is no preview and no undo. If you replaced the wrong string, the only way back is a database backup you took beforehand.

Before running any replace in Free:

  1. Back up your database (via your host, a backup plugin, or mysqldump).
  2. Double-check Search For and Replace With.
  3. Run the replace, then validate the affected pages.

To avoid this entirely, use the PRO workflow, which previews changes and can undo them.

PRO feature

Dry Run (preview without writing) and one-click Undo are PRO features. A Free replace cannot be undone from within the plugin — upgrade to Update URLs PRO for a preview and rollback. See how to run a dry run and how to view history and undo changes.

Serialized data looks corrupted after a replace

If widget settings, page-builder layouts or plugin options broke after a search and replace, the cause is almost always a naive tool that did a plain text replace on serialized data. Serialized values store the length of each string, so changing a URL without updating those length prefixes leaves the data unreadable.

Update URLs handles this correctly. It unserializes the value, replaces inside it, and re-serializes with corrected lengths — so serialized options and meta stay valid.

  • In Free, this serialization-aware handling applies to the Custom (custom fields / postmeta) target.
  • In PRO, the same careful handling runs across the tables you select, including page-builder and directory-plugin data stored as escaped URLs in JSON.

For the full explanation and how to recover, see how to update serialized data effectively. If a previous tool already corrupted your data, restore from a backup and re-run the replace with Update URLs.

PRO feature

Match escaped URLs in JSON data (encoded-slash matching, on by default in PRO) catches links saved by page builders and directory plugins that store https:\/\/… with escaped slashes.

Import fails

If a database import does not complete, check the file and the upload:

  1. The file extension is .sql or .sql.gz.
  2. The file actually uploaded — large files can exceed your server's upload limit.
  3. If you used a manual server path, the path is correct and readable.

For large backups, upload the file to your server over FTP/SFTP and point the importer at the file path instead of uploading through the browser.

PRO feature

One-click database backup and import is a PRO feature. See how to do one-click database import and export.

"You do not have sufficient permissions"

Every Update URLs screen requires the manage_options capability. If you see a permissions message:

  • Sign in as an administrator-level user.
  • Confirm the plugin is active under Plugins.
  • On multisite, use a user with the right capability on the site you are editing.

Undo restored only some rows

When an undo reports that only part of a replace was rolled back, that is expected behaviour, not a failure. Undo only restores a value when the current value still matches what the replace wrote. If a row was edited again after the replace, Update URLs skips it to avoid overwriting your newer change.

  • Open Update URLS → History and check the entry's status — fully undone, partly undone, or cannot be undone.
  • Review the skipped rows, which list what is stored now next to the original value.
  • If you are sure you want the original back on a skipped row, use Restore this to force it individually.

PRO feature

History, undo status and force-restore of skipped rows are PRO features. See how to view history and undo changes.

Large sites: the run is slow or times out

On a big database, a browser-driven replace can stall or appear to hang. PRO runs the replace as a background job so it survives you closing the tab, and you can adjust batching:

  1. In PRO, start the replace — it is handed to a background queue and continues even if you leave the page. Reopening the Search & Replace screen picks it back up, and a notice appears anywhere in the admin when it finishes.
  2. Use the Stop button in the progress modal to cancel a running replace. Whatever was already changed is saved to History and can still be undone.
  3. If batches are too heavy for your server, lower Max Page Size under Update URLS → Settings → General (default 20000 rows, range 1000–50000).

PRO feature

Background execution, the Stop button and the Max Page Size setting are PRO features. In Free, a replace runs as a single direct database operation.

Conclusion

Nearly every Update URLs issue traces back to an exact-match or case mismatch, an irreversible Free replace, corrupted serialized data from another tool, or a large site that needs the PRO background engine. Back up first, copy stored values exactly, and use the PRO Dry Run and Undo when you can. For the safest workflow, start with how to do a dry run before search and replace.

FAQs

Why does Update URLs say "No search found" when the URL is clearly on my page?

Update URLs matches the string exactly as it is stored, and matching is case-sensitive by default. What you see rendered on the page can differ from the stored value — for example https:// vs http://, www vs no www, or a different capitalisation. Copy the exact value from the page source or database, and in PRO run a Dry Run to see the real Before values.

Can I undo a search and replace in the free version?

No. In Free, a search and replace writes directly to the database and is irreversible — there is no built-in undo. Your only recovery is a database backup taken before the run, so always back up first. Update URLs PRO adds a Dry Run preview and one-click Undo that rolls back changes from the History screen.

Why did my widgets or page-builder layout break after a search and replace?

That usually happens when a naive tool does a plain-text replace on serialized data, leaving the stored string-length prefixes wrong so WordPress can no longer read the value. Update URLs avoids this by unserializing, replacing, and re-serializing correctly. If another tool already corrupted the data, restore from a backup and re-run the replace with Update URLs.

Why was only part of my change undone?

Undo only restores a row when its current value still matches what the replace originally wrote. If a row was edited again after the replace, Update URLs skips it rather than overwrite your newer edit, then reports the entry as partly undone. Open Update URLS → History to see skipped rows and, if needed, use Restore this to force an individual row.

How do I run a search and replace on a very large site without it timing out?

Use Update URLs PRO, which runs the replace as a background job that continues even if you close the tab, and shows a Stop button you can use at any time. If batches are too heavy, lower Max Page Size under Update URLS → Settings → General (default 20000 rows). The Free version runs as a single direct database operation with no background processing.

Why do I see "You do not have sufficient permissions to access this page"?

Every Update URLs screen requires the WordPress manage_options capability, which normally means an administrator. Sign in as an administrator-level user and confirm the plugin is active under Plugins. On a multisite network, use an account that has the capability on the specific site you are editing.

Was this page helpful?

Next
Changelog