Pixlify Image Optimizer
Converts your WordPress images to AVIF and WebP. Serves them to every browser. On every host.
Including the ones where .htaccess rules are off the table.

Simple pricing
billed yearly — $240/yr
No WordPress.org listing. Available directly from us.
How it compares
There are good image optimizer plugins out there. Here's an honest look at where the differences actually matter.
We built Pixlify so we're obviously biased. No affiliate links. No paid placements. Data based on public documentation and our own testing. Read it with that context.
| Feature | Pixlify | Smush | ShortPixel | Imagify | EWWW |
|---|---|---|---|---|---|
| Works on WP Engine / Kinsta (no .htaccess) | Yes | Partial | Partial | Partial | Partial |
| Handles Elementor JS-set backgrounds | Yes | No | No | No | No |
| External CSS file rewriting | Yes | No | No | No | No |
| WP-CLI support | Yes | Limited | Limited | No | Yes |
| Local conversion (no upload to cloud) | Yes | Optional | Cloud only | Cloud only | Yes |
| AVIF output | Yes | Paid only | Yes | Paid only | Yes |
| picture element wrapping for img tags | Yes | Paid only | Yes | Paid only | Yes |
| Unlimited image credits | Yes | No — credit limits | No — pay-per-image | No — credit limits | Paid plan only |
“Partial” for WP Engine/Kinsta means the plugin converts images but URL rewriting may require .htaccess or CDN config that isn't available on those hosts.
What's inside
Built for sites that have run into the edge cases other plugins don't handle.
Page Builder Support
Elementor, Divi, Avada, Beaver Builder, WPBakery, Bricks, Enfold
Page builders set background images in three different ways — inline style= attributes, <style> blocks injected into the HTML, and external CSS files linked via <link> tags. Pixlify rewrites all three.
Elementor goes further. Its Background Slideshow widget sets inline styles via JavaScript at runtime — the PHP buffer never sees those. We handle that with a MutationObserver that watches for style changes after page load and swaps the URL. No other plugin does this.
Tested builders
WP-CLI Support
Full command-line control
Run the bulk optimizer, check conversion status, reset history, manage the queue, and update settings — all from the terminal. Useful for deployment pipelines, staging-to-production workflows, and cron jobs that run outside of WP-Cron.
The --force flag re-processes everything from scratch. The --dry-run flag tells you what would happen without touching anything.
Background Processing
Cron-based bulk optimizer
New uploads are converted immediately. For your existing media library, the bulk optimizer runs in configurable batches — hourly, twice daily, or daily via WP-Cron. You set the batch size based on what your host can handle without timing out.
A live elapsed-time counter shows progress during each batch so you're not staring at a frozen screen. If you switch output formats later, Force Re-Optimize clears the history and rebuilds the queue without any manual database editing.
Works without .htaccess
PHP output buffer rewriting. No server config changes. Works on WP Engine, Kinsta, Cloudways, nginx, Apache — anything.
AVIF + WebP, your server decides
The plugin detects if your server supports AVIF via Imagick + libavif. If not, it disables AVIF automatically and falls back to WebP.
Original files untouched
Converted files sit alongside originals. Nothing is deleted or replaced. Disable the plugin and the site goes back to normal.
picture element wrapping
Every img tag gets a picture wrapper with typed source elements. Browsers pick AVIF first, WebP second, original last — no JavaScript needed.
image-set() for backgrounds
CSS backgrounds get a dual declaration — fallback url() first, then image-set() — so modern browsers serve the best format without breaking older ones.
Optional backups
Enable pre-conversion backups to /uploads/pixlify-backups/. One-click restore from the Media Library if anything goes wrong.
The problem most plugins skip over
WordPress has been sending JPEGs and PNGs to Chrome, Firefox, and Safari for years. Those browsers have supported WebP since 2020. AVIF since 2022. Your server just keeps sending the old formats anyway.
Most image optimizer plugins compress your JPEGs. That's useful. But you still sent a JPEG. The real problem is format, not just file size.
WP Engine, Kinsta, Cloudways — they don't let you touch .htaccess or nginx config. Every guide that says "just add this rewrite rule" doesn't apply to you.
Elementor sets section background images via JavaScript at runtime. The PHP output buffer never sees those style attributes being written. No plugin handled that. We built one that does.
How it works
Four passes over your page. Covers every way WordPress, Elementor, Divi, Avada, Beaver Builder, WPBakery, Bricks, and Enfold can put an image URL into the browser.
img tags get wrapped in picture elements
Every <img> on the page gets a <picture> wrapper with <source> elements for AVIF and WebP. Browsers pick the best format they support. The original <img> stays as the fallback.
CSS background-image rules get rewritten
Inline style attributes and <style> blocks are scanned for background-image: url(...). Elementor uses HTML-encoded quotes (") in style attributes — we handle that too. Each one gets a dual declaration: original URL first, then image-set() for modern browsers.
External CSS files get overrides injected
Elementor on WP Engine uses an 'External File' CSS method — it writes your styles to /uploads/elementor/css/post-N.css and links it with a <link> tag. The output buffer never sees that file. We read it from disk, extract only the background-image rules that changed, and inject a compact override <style> block right after the <link>.
JS-set backgrounds get swapped at runtime
Elementor's Background Slideshow widget builds slide divs via JavaScript. The inline styles it writes never appear in the HTML source — they're added after page load. A small MutationObserver script watches for background-image style changes and swaps the URL to AVIF or WebP using a HEAD fetch to check if the converted file exists. Result is cached in sessionStorage.
Technical requirements
Nothing unusual. Most WordPress hosting setups already meet these.
Minimum requirements
- —WordPress 5.8 or higher
- —PHP 7.4 or higher
- —GD or Imagick PHP extension (for WebP)
For AVIF support
- —Imagick PHP extension
- —ImageMagick compiled with libavif
- —Not available on all hosts — the plugin detects this and disables AVIF automatically if unsupported
WP-CLI commands
Setup
Four steps. No server config. No API keys.
Install and activate
Upload the plugin zip to wp-content/plugins, activate from the Plugins screen. The database table for tracking conversions is created on activation.
Choose output format
Go to Pixlify Settings. Pick WebP, AVIF, or both. The plugin checks your server for Imagick + libavif and disables AVIF automatically if it's not available.
Run the bulk optimizer
Go to Pixlify Bulk Optimizer. Click Start Auto-Processing. It works through your media library in batches. A live counter shows elapsed time per batch — no more staring at a frozen screen wondering if it crashed.
Enable serving and purge cache
Toggle on Serve WebP and/or Serve AVIF in Settings. Purge your page cache (WP Engine Dashboard → Caching → Purge All, or your caching plugin). Done.
Frequently Asked Questions
Get answers to the most common questions about our services
Yes. That's actually the main reason we built it. WP Engine and Kinsta don't let you modify .htaccess or nginx config, so the usual WebP rewrite rules don't work there. Pixlify rewrites image URLs at the PHP level using WordPress's output buffer — no server config changes needed at all.
Yes, all three layers. Inline CSS in style= attributes, external CSS files (Elementor's External File print method), and backgrounds set dynamically by JavaScript at runtime. The last one is the hard one — Elementor's Background Slideshow widget creates inline styles via JS, which means most plugins never touch it. We use a MutationObserver for that.
WebP, AVIF, or both. WebP works in every modern browser and has since 2020. AVIF gives better compression but requires Imagick with libavif on your server. If your server supports it, we recommend serving both — AVIF for browsers that support it, WebP as fallback, original as last resort.
No. The plugin rewrites URLs in the HTML output buffer — it never touches your database, your media files, or your content. The original JPEG and PNG files stay in place. You can disable the plugin and everything goes back to normal.
They stay. The plugin creates .webp and/or .avif copies alongside your originals. It does not delete or replace anything unless you explicitly ask it to. You can also enable backups before conversion.
Yes. Just purge your page cache after enabling URL rewriting so browsers receive the updated HTML. Works with WP Rocket, W3 Total Cache, WP Super Cache, and WP Engine's built-in cache.
Yes. The plugin comes with full WP-CLI support. You can run wp pixlify optimize, check status, build or clear the queue, reset conversion history, and update settings — all from the command line. Useful for scheduled tasks and deployments.
No. This plugin is not listed on WordPress.org. It's available directly from us at $20/month (billed yearly) for unlimited sites and unlimited image credits. You can start a free trial — reach out through the contact page and we'll get you set up.
Still have questions?
We'd love to discuss your project and answer any specific questions you might have.
Get in TouchInterested?
Pixlify isn't on WordPress.org. It's available directly from us.
Start a free trial or book a demo. We'll walk you through what's included, answer any questions about your specific host or setup, and take it from there.