Easy Watermark
by Wojtek Szałkiewicz · Media
Also makes 1 other plugin · 32K+ installs across the portfolio →
Allows to add watermark to images automatically on upload or manually.
66 health vs 59 average across 2,206 Media plugins
Directory ranking optimization
How it's scored →How well this listing is tuned to rank in WordPress.org search, on the factors an owner controls. Not popularity, optimization.
Excellent listing optimization
Well tuned across the board
Daily downloads
Since 2022-10-05 · 1,421 days · wp.org + Plugin Pulse archive
30-day downloads
Rolling 30-day volume · peaks are release surges
1.3K
now · peak 3.4K
Directory rank vs rivals
wp.org popularity rank over time · higher is better · when a rival's line climbs above yours, they've overtaken you
Rating trend
Star average over time · dips mark rough releases
Update activity
How busy the existing users are, measured as downloads in the last 30 days for every 1,000 active sites. A spike means a new release everyone's pulling; a long, slow decline means an aging user base that updates less.
Release cadence
No release in a yearHow often this plugin actually ships. A steady rhythm is the maintenance signal a single "last updated" date can't show.
0
releases in the last 12 months
1.0y ago
latest release · v1.0.11
32
tagged releases on record
Recent releases
What its installed base runs
via wordpress.orgShare of active installs on each version of this plugin · 95% run the current release. Green is the current release; a big slice on older versions is a user base that has stopped updating.
Estimated active installs
The public count shows “30K+”. Our estimate pins where the real number sits.
Refined from the date this plugin crossed into its current band.
Install history · since 2015-03-23 · 1,469 observations
Estimated value
What this plugin might earn a year, and what it might sell for. Modeled from public signals; we don't see anyone's books.
Est. annual revenue
Est. acquisition value
No paid tier is visible, so we don't put a figure on revenue or sale value: that would be guessing. The install base is a real asset to an acquirer, just not one public data lets us price.
Details
Recent reviews
All reviews on wp.org ↗- ★★★★★ brightonbeerblog4mo ago
Decent app without the fuss of other options. Had to delete in the end as doesn’t watermark WEBp
Read on wp.org ↗ - ★★★★★ brooklynfox9mo ago
Tried a few plug ins that did not work, but this one did. Happy days.
Read on wp.org ↗ - ★★★★★ msalah5210mo ago
I’ve managed to add support for the WebP format. Both developers and users can contact me to obtain it.Special thanks to Mr. Wojtek Szałkiewicz, the original developer.
Read on wp.org ↗ - ★★★★★ bugscout12mo ago
I positioned my watermarks in the bottom right corner as a small logo and text. It works for most images. However, for some, the logo is large and centered, obscuring large portions of the image.
Read on wp.org ↗ - ★★★★★ Beatriz2.0y ago
I wanted to suggest adding WebP support to your plugin for applying watermarks to images. As WebP is increasingly becoming a popular format due to its superior compression and quality, it’s essential to have watermark functionality for it as well. Currently, images in WebP format are left without watermarks, which compromises their protection. This feature would significantly enhance the plugin’s utility for users who rely on modern image formats. Thank you for considering this suggestion!
Read on wp.org ↗ - ★★★★★ synthezoid2.2y ago
This no longer works with new versions of WordPress. The only way to fix your de-rezzed and miscolored corrupted images after using this is to restore from a backup you made by other means. The built-in “restore” function doesn’t work any better than the watermarking function. If they fix it for newer versions of wordpress, it’ll be great like it used to be and I’ll revise this to 5 stars. But for now, it is a DO NOT INSTALL.
Read on wp.org ↗ - ★★★★★ zjcpzz2.3y ago
Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, array callback has to contain indices 0 and 1 in /www/wwwroot/www.xxxxx.com/wp-includes/class-wp-hook.php:324 Stack trace: #0 /www/wwwroot/www.xxxxx.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #1 /www/wwwroot/www.xxxxx.com/wp-includes/plugin.php(517): WP_Hook->do_action() #2 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/src/classes/Settings/Section.php(55): do_action() #3 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/src/classes/Backup/Manager.php(69): EasyWatermark\Settings\Section->__construct() #4 /www/wwwroot/www.xxxxx.com/wp-includes/class-wp-hook.php(324): EasyWatermark\Backup\Manager->register_settings_section() #5 /www/wwwroot/www.xxxxx.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #6 /www/wwwroot/www.xxxxx.com/wp-includes/plugin.php(517): WP_Hook->do_action() #7 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/src/classes/Settings/Settings.php(60): do_action() #8 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/src/classes/Settings/Settings.php(49): EasyWatermark\Settings\Settings->register_sections() #9 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/vendor/micropackage/singleton/src/Singleton.php(58): EasyWatermark\Settings\Settings->__construct() #10 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/src/classes/Watermark/Handler.php(75): Micropackage\Singleton\Singleton::get() #11 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/src/classes/Core/Plugin.php(217): EasyWatermark\Watermark\Handler->__construct() #12 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/src/classes/Features/WatermarkPreview.php(67): EasyWatermark\Core\Plugin->get_watermark_handler() #13 /www/wwwroot/www.xxxxx.com/wp-content/plugins/easy-watermark/src/classes/Core/Plugin.php(102): EasyWatermark\Features\WatermarkPreview->__construct() #14 /www/wwwroot/www.xxxxx.com/wp-includes/class-wp-hook.php(322): EasyWatermark\Core\Plugin->setup() #15 /www/wwwroot/www.xxxxx.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #16 /www/wwwroot/www.xxxxx.com/wp-includes/plugin.php(517): WP_Hook->do_action() #17 /www/wwwroot/www.xxxxx.com/wp-settings.php(550): do_action() #18 /www/wwwroot/www.xxxxx.com/wp-config.php(107): require_once(‘…’) #19 /www/wwwroot/www.xxxxx.com/wp-load.php(50): require_once(‘…’) #20 /www/wwwroot/www.xxxxx.com/wp-admin/admin.php(34): require_once(‘…’) #21 /www/wwwroot/www.xxxxx.com/wp-admin/edit.php(10): require_once(‘…’) #22 {main} thrown in /www/wwwroot/www.xxxxx.com/wp-includes/class-wp-hook.php on line 324
Read on wp.org ↗ - ★★★★★ xu wu2.4y ago
This plugin needs to be used in PHP7.4 or earlier versions, and an error is reported in PHP8.2 versions
Read on wp.org ↗
Latest updates
via wp.org changelogRecent releases and news for this plugin
- — Version 1.0.11 [Fixed] Watermark preview url fixed to work with non-standard WordPress installations [Fixed] Error in Cache Busting feature. 1.0.11
- — Version 1.0.10 [Added] Role existence checks during plugin activation. [Added] Filter to prevent applying certain watermark. 1.0.10
- — Version 1.0.9 [Fixed] Translated view file names causing missing view errors. [Fixed] Errors occuring on the first plugin activation. 1.0.9
- — Version 1.0.8 [Added] New form styles compatible with new WordPress form styles. [Added] Option to disable cache buster responsible for adding version param to image urls. [Fixed] Watermark preview. 1.0.8
- — Version 1.0.7 [Removed] Freemius library. [Fixed] Potential PHP 8 issue. 1.0.7
- — Version 1.0.6 [Fixed] Compatibility with other media-related plugins [Fixed] Backup file paths on Windows [Fixed] Bulk actions in media library list view 1.0.6
Known vulnerabilities
via Wordfence Intelligence1 disclosed vulnerability on record for this plugin, fixed in the current version. Sites on older versions stay exposed until they update.
- 2019-02-25 Missing Authorization Affects < 0.7.1 Patched in 0.7.1
Vulnerability records provided by Wordfence Intelligence. Copyright 2012-2026 Defiant Inc. License and terms.
Behavioral tests
via WP HiveAutomated install-time checks, tested on PHP 7.4.8 · WP 5.7
Languages
via translate.wordpress.orgTranslated into 64 languages, 11 at 90% or more
Plus 40 more locales with partial translations.
Growth timeline
Install-tier crossings we have observed, and how long each tier took to outgrow
- 2026-05-02 40K+ → 30K+ down after 708 days in tier
- 2024-05-24 50K+ → 40K+ down after 284 days in tier
- 2023-08-14 60K+ → 50K+ down after 155 days in tier
- 2023-03-12 50K+ → 60K+ up
Competes with
The plugins that solve the same job, ranked by shared tags then reach, closest match first. The letter on the right is each plugin's health grade (A best, F worst).
-
Firelight Lightbox 200K+ installs · 4.8★ · 2 shared tags A -
ImageMagick Engine 60K+ installs · 4.2★ · 2 shared tags A -
Default Featured Image 60K+ installs · 4.7★ · 2 shared tags A -
Phoenix Media Rename 50K+ installs · 4.6★ · 2 shared tags A -
Image Watermark 40K+ installs · 4.2★ · 2 shared tags B -
LightPress Lightbox 40K+ installs · 4.5★ · 2 shared tags A
Embed this report card
Drop a live Pulse card for Easy Watermark into a readme, a review or a deck. It updates itself.
<iframe src="https://plugins.wpmayor.com/embed/easy-watermark" width="480" height="300" style="border:0" loading="lazy" title="Easy Watermark — Plugin Pulse"></iframe> Easy Watermark: 30K+ active installs, 3.7★ (159 reviews). Plugin Pulse (WP Mayor), as of 2026-08-25. https://plugins.wpmayor.com/plugin/easy-watermark