Positioning & sizing
Ultimate Watermark supports a familiar 9-point anchor grid plus pixel- or percentage-based offsets. Combined with auto-scale, you can build watermarks that look right on a 400 px thumbnail and a 4000 px hero image.
The 9-point grid
Pick one of nine anchors. The watermark's box is positioned relative to that anchor:
top-left top top-right
◯ ◯ ◯
◯ ◯ ◯
left center right
◯ ◯ ◯
bottom-left bottom bottom-rightAnchor values (from AddWatermarkPage.php:897–910):
| Anchor | Behaviour |
|---|---|
top-left | Watermark's top-left corner aligns with image's top-left + offsets. |
top | Watermark's top edge aligns horizontally centred. |
top-right | Watermark's top-right corner aligns with image's top-right − x-offset. |
left | Watermark's left edge aligns vertically centred. |
center | Watermark is centred. |
right | Watermark's right edge aligns vertically centred. |
bottom-left | Watermark's bottom-left corner aligns with image's bottom-left + offsets. |
bottom | Watermark's bottom edge aligns horizontally centred. |
bottom-right | Watermark's bottom-right corner aligns with image's bottom-right − offsets. |
Offsets
After picking an anchor, nudge the watermark with X and Y offsets:
| Field | Range | Note |
|---|---|---|
| Offset X | −100 to +100 | Horizontal nudge from anchor. Negative shifts left. |
| Offset Y | −100 to +100 | Vertical nudge. Negative shifts up. |
| Offset unit | pixels or percentage | Switches between absolute (px) and image-relative (%). |
Pixels vs percentage
- Pixels: useful for fine corner padding (e.g. always 20 px in from the edge regardless of image size).
- Percentage: scales with image size (e.g. 5 % from each edge — looks the same on small thumbs and big hero images).
Common combos
| Goal | Anchor | Offset X | Offset Y | Unit |
|---|---|---|---|---|
| Corner stamp 20 px in | bottom-right | -20 | -20 | pixels |
| Centred diagonal | center | 0 | 0 | pixels |
| Faint margin watermark | bottom-right | -5 | -5 | percentage |
| Top banner | top | 0 | 10 | pixels |
Auto-scale by image dimensions
For image watermarks, the Scaled % size mode (AddWatermarkPage.php:795–802) makes the watermark width track the image width:
| Setting | What it means |
|---|---|
100 | Watermark width = image width (same as image). |
50 | Watermark width = half the image width. |
25 | Watermark width = a quarter of the image width. |
10 | Watermark width = a tenth of the image width. |
Use case: a logo that should be roughly 1/8 of the image width — so it's small on a thumbnail and scales up on a hero image. Set Scaled % = 12.5.
For text watermarks, font scaling is handled automatically by the rendering library:
- Imagick scales the font size with the subsize ratio (
ImagickWatermarkProcessor.php:86–88). - GD uses your declared font size literally — set the size that looks right on the largest output.
Quality controls (image watermark)
| Setting | Default | Range | Note |
|---|---|---|---|
| Output quality | 90 | 1–100 | JPEG quality. 90 is sane; 95+ is overkill for web. |
| JPEG type | baseline | baseline / progressive | Progressive renders top-to-bottom; baseline is faster. |
For PNG output, quality is lossless — these controls are ignored.
What's NOT supported
The following are not in the current builder:
- Random position — there's no "place watermark at a random spot" toggle. (
Math.randomis only used for rule IDs, seeAddWatermarkPage.php:1204.) - Padding / safe-area beyond X/Y offsets — there's no separate margin field.
- Tile / repeat — no built-in repeating pattern. Use a single watermark instead.
- Rotation — no built-in rotate slider. Pre-rotate your watermark image in another tool.
If random position or rotation is critical, add it via a custom hook against
ultimate_watermark_apply_custom_type(see Hooks & filters).
Tips for sharp watermarks
- For PNG logos, render your source PNG at 2× the largest output size so it scales down crisply.
- For text watermarks, prefer system fonts (Arial, Helvetica, Georgia, Times) — custom fonts via Imagick are tricky on shared hosts.
- For dark-on-dark issues, set color
#ffffffwith opacity 80, or vice versa.
Per-subsize positioning
Each WordPress subsize (thumbnail, medium, large, full) is rendered independently. Ultimate Watermark applies the same position settings to each — but percentage offsets scale with the subsize, so:
- A 400 × 300 thumbnail: 5 % offset = 20 px / 15 px.
- A 4000 × 3000 hero: 5 % offset = 200 px / 150 px.
That's why percentage offsets are recommended for multi-size sites.
Testing your position
The fastest way to dial in position:
- Save the watermark template.
- Upload one test image (different aspect ratios — square, landscape, portrait).
- View at every subsize via the Edit Image screen (Media → click image → Image attributes shows each size's URL).
- Iterate the offset values.
Save → upload → tweak — usually 3 iterations is enough.
Where to go next
- 🖼️ Watermarks — text / image fields.
- 🎯 Conditional rules — apply watermarks selectively.
- ⚡ Performance — sizing for performance trade-offs.