Enabling automatic watermarking going forward is easy. The harder problem is what to do about the hundreds or thousands of images already sitting unprotected in your WordPress Media Library. Re-watermarking them one by one is not realistic. Bulk watermarking is the only practical solution, and when done correctly it takes under an hour regardless of library size.

Before You Start: Backup Your Media Library

Bulk watermarking is a destructive operation — it permanently modifies the stored image files. Before running it, make a complete backup of your /wp-content/uploads/ directory. Most backup plugins (UpdraftPlus, BackupBuddy, Duplicator) include the uploads folder by default. If anything goes wrong or the watermark placement turns out wrong, you want to be able to restore the originals.

Decide Which Image Sizes to Watermark

WordPress stores multiple versions of every uploaded image: the original, full-size, large, medium, medium_large, thumbnail, and any custom sizes registered by your theme and plugins. You don’t need (or want) to watermark all of them.

Watermark: full, large, medium_large — the sizes that appear in content and are large enough to be repurposed

Skip: thumbnail, small custom sizes — watermarks are unreadable at these dimensions and look cluttered in grids and galleries

Running the Bulk Watermark Operation

Step 1 — Configure Watermark Settings First

Before running the bulk operation, finalize your watermark configuration: position, opacity, size, and whether you’re using a text or image watermark. Changing settings after bulk processing means running it again. Get it right the first time on a small test batch before committing to the full library.

Step 2 — Run a Test Batch

Most good watermark plugins let you select a subset of images for processing — a specific upload month or a custom selection. Run the watermark on 20–30 images first, check the results, and adjust settings if needed. Common issues to look for: watermark is too large or too small relative to image dimensions, opacity is too low to be visible, or position clips outside the image area on non-standard aspect ratios.

Step 3 — Process the Full Library

Once the test results look correct, run the full bulk operation. The plugin processes images in batches (typically 20–50 at a time) to avoid PHP timeouts. For large libraries this may take 10–30 minutes. Do not close the browser tab while processing — or use a plugin that runs the batch in the background via AJAX.

Step 4 — Verify Spot Results

After completion, spot-check images across different upload dates and image types. Verify watermarks appear correctly on WooCommerce product images, blog post featured images, and gallery images. Force-refresh any pages that display these images if your site uses full-page caching.

Handling Regenerated Thumbnails

If you ever run the “Regenerate Thumbnails” operation (to apply new image sizes from a theme change), thumbnails will be regenerated from the original unmodified files — and the watermarks will be stripped. This is a known gotcha. After any thumbnail regeneration, you need to re-run the bulk watermark operation. Some plugins store the original and maintain a watermarked copy separately to handle this case — worth checking before choosing a plugin if you frequently change themes or image sizes.

Automation Going Forward

Once the historical library is covered, enable automatic watermarking on upload so every new image is protected without any manual action. The bulk operation is a one-time cleanup; automatic watermarking is the ongoing prevention.

WP Watermark Images

Plugin used in this tutorial

WP Watermark Images

The best watermarks plugin for WordPress. Add image and text watermarks on your images with full control over…

Learn more →