Bulk Replacement

How to Bulk Replace Files in WordPress Without Updating Them One by One

Quick answer

WordPress is good at uploading and managing one file at a time. What it does not give you is a way to take a folder of new files, work out which existing file each one replaces, check the ones it is unsure about, replace the rest, and undo any single change afterwards.

For dozens or hundreds of files, the safe order is:

Upload → match → review → check for clashes → back up → replace → check the result → undo anything wrong.

The point is not doing it faster. It is being able to see and correct every decision before anything is overwritten.

Why replacing 100 files is a different job

Replacing one file is easy, because you already know where it goes.

Replacing 100 files adds a second job: working out which file goes where.

The files you have been sent might be called:

  • 2026-employee-handbook-final.pdf
  • HR_Benefits_Approved.pdf
  • catalog-q3-v4.pdf

while the pages on your site have documents called:

  • Employee Handbook
  • Benefits Guide
  • Product Catalog

You can usually see which is which at a glance.

An exact filename match cannot — none of those names is the same.

Matching on similar names helps, but “these names look alike” is not the same as “go ahead and overwrite it”.

What WordPress does on its own

WordPress can:

  • upload files
  • add them to the Media Library
  • edit the title and description
  • delete them
  • bulk-select a few Media Library actions.

What it has no answer for is the middle of the job:

  1. holding new files somewhere while you look at them, without touching your live pages
  2. suggesting which existing file each one replaces
  3. telling you which suggestions it is unsure about
  4. telling the difference between a replacement and a brand-new file
  5. spotting when a file is used somewhere else on the site
  6. keeping a copy of the original before overwriting it
  7. getting through a few hundred files without timing out
  8. showing you what happened to every single one
  9. undoing one replacement without restoring the whole site.

You can do all of that with scripts and WP-CLI if you want to write and maintain them. WP Bulk Replace is that workflow ready-made, for when the job comes back.

The safe way to run a batch

1. Upload the new files

Uploading should not change anything on your live site.

The files sit in a batch of their own, so you have a stable list to work through.

You want to be able to see:

  • how many files arrived
  • which types are supported
  • whether any are duplicates
  • which ones have an obvious match
  • which ones need you.

2. Match them to what is already there

Good matching uses evidence you can check yourself:

  • the words in the filename
  • the names of the files already on your site
  • abbreviations you have explained
  • the field or product a file belongs to
  • exact identifiers like a SKU.

Matching should shorten your list of candidates. It should not hide the fact that a row is uncertain.

3. Say how sure it is

A confidence score is useful because it answers one question: how much checking does this row need?

It does not mean the software has permission to overwrite at a certain score. A row it is confident about can still be wrong, which is why you get to look.

4. Check the ones it flagged

On any row you want to be able to:

  • accept what it suggested
  • send the file somewhere else
  • mark it as a brand-new file
  • skip it
  • leave it for later.

The point is to spend your attention where the software is weakest, not on all 200 rows.

5. Catch two files aimed at the same place

Two new files should never quietly end up replacing the same existing file.

When that happens, those rows stop and tell you, rather than one silently winning.

6. Catch files used elsewhere on the site

The file you are about to replace might be used on pages that have nothing to do with this job.

Replacing it would change those pages too. That is worth stopping for, not just warning about — a warning in a list of 200 rows is a warning nobody reads.

7. Back up before the write, not after

The copy of the original has to exist before your live content changes.

The safe order is: find the original, copy it, save the details of where the copy went, check it really saved, and only then overwrite.

A backup taken after the overwrite leaves the one moment that matters uncovered.

8. Work through big batches in chunks

Three hundred files should not depend on one long browser request staying alive.

Working in chunks avoids timeouts and gives the job natural places to pause and resume. It also has to be safe to retry: a second attempt must not replace something that already succeeded.

9. Check what actually happened

“Done” is not a result.

You want to see each file as one of:

  • replaced
  • added as a new file
  • skipped
  • held back
  • failed
  • still needs you.

So you know exactly what is left.

10. Undo one file, not the whole site

One wrong document should not mean restoring last night’s backup of everything.

Undo puts that one file back, along with whatever the replacement changed with it.

Brand-new files belong in the same batch

A real folder usually has both: new versions of documents you already have, and documents you have never published.

Making you split those into two separate jobs is busywork.

A good batch treats “I know where this goes, but there is nothing there yet” as a brand-new file to add, not as a failed match — and still shows you that it did.

Files that live in custom fields

Established WordPress sites often keep file references in:

  • custom fields
  • custom post types
  • plugin data
  • structured resource records.

A replacement tool has to actually support those places rather than assume every file is a plain Media Library attachment. With WP Bulk Replace Pro that means ACF file, image and gallery fields — including the ones inside repeater rows — and WooCommerce product images, gallery positions and customer downloads.

When you do not need a batch tool

If you have three files and you know exactly where they go, replacing them by hand is quicker.

If you have 100 files and you know the exact server path for each one, a script or an rsync will do it.

A batch tool starts to pay for itself when the expensive part of the job is:

  • working out where things go
  • untangling inconsistent names
  • getting someone else to check them
  • making sure you are not changing pages outside the job
  • undoing individual mistakes
  • doing the whole thing again next month.

Example: a 150-document annual refresh

An organization gets 150 revised documents.

After uploading:

  • 118 match confidently
  • 19 need a look
  • 5 are new documents
  • 4 clash with each other
  • 2 point at files used elsewhere on the site
  • 2 are file types it does not support.

A good workflow does not flatten that into “144 succeeded”. It gives you a queue:

  • check 19
  • confirm where the 5 new ones go
  • sort out the 4 clashes
  • look at the 2 shared files
  • remove or convert the 2 unsupported ones.

That is the difference between bulk replacement and bulk guessing.

Free and Pro

The free plugin does the whole job: uploading, matching, the review step, replacing, backups, undo, and the check that stops you breaking a page you forgot about. No file limits, no trial period, nothing switched off after 30 days.

Pro is for when the job comes back. It remembers the corrections you already made, learns your abbreviations, ignores the filename words that mean nothing, and keeps all of that with the site so whoever runs the next batch starts where you finished. It also finds files attached through ACF fields and sitting on WooCommerce products, which a bulk tool otherwise walks straight past.

Before you run a batch

Make sure you can answer:

  • Where is each new file going?
  • Which matches are uncertain?
  • Which files are brand new?
  • Is anything I am replacing used on a page outside this job?
  • Are two files aimed at the same place?
  • Is the backup written before the overwrite?
  • Can the run pick up where it left off?
  • Can I see what happened to every row?
  • Can I undo one replacement on its own?

If the answer to any of those is no, something important is missing.

CTA: Download WP Bulk Replace Free

Related: Bulk replace PDFs · Replace hundreds of files safely · WordPress replacement checklist