ShortPixel Adaptive Images – WebP, AVIF, CDN, Image Optimization
An easy-to-use plugin that lets you solve any problems with images and improve your website’s Core Web Vitals in a minute. Imagine if you could solve all your website’s image-related problems and increase pagespeed and performance with a simple click, would not that be great? Usually, images are the biggest resource on a web page. With just one click, ShortPixel Adaptive Images replaces all the pictures on your website with properly sized, smartly-cropped and optimized images and uploads them to ShortPixel’s global CDN. And for even more Google love, the plugin delivers next-gen WebP or AVIF images to the right browsers auto-magically! 🙂 Using ShortPixel Adaptive Images also helps with Core Web Vitals (CWV)‘s Largest Contentful Paint (LCP), First Input Delay (FID) and Cumulative Layout Shift (CLS). This is an important SEO factor that Google uses to rank pages. The smaller the CWV values are, the better for your website. Do I need this plugin? If you have a WordPress website with images, the answer is most likely yes! Have you ever tested your website with tools like PageSpeed Insights or GTmetrix and received complaints that the images are not the right size or are too big? Or that you should be using “next gen” images like WebP or AVIF? Or that the website should “defer offscreen images”? ShortPixel Adaptive Images comes to the rescue and solves the problems with images on your website in no time. In addition to images, CSS, JS and font files are also minimized and delivered from our global CDN. What are the benefits? What are the features? new! you can now set your custom domain to serve images or JSS/CSS files, e.g. cdn.example.com. Read more here. new, lightweight, pure JavaScript Adaptive Images Engine (jQuery no longer required) same visual quality, but smaller images thanks to ShortPixel algorithms smart cropping – see an example serve only images of appropriate size, depending on the viewport of the visitor lazy load support with adjustable threshold; browser native lazy loading support is also available automatically serves WebP and AVIF images to browsers that support this format. Animated GIFs are also supported and can will converted to animated WebP and animated AVIF! caching and serving from a global CDN for images as well as CSS, JS and fonts CSS/JS files are minimized automatically all major image galleries, sliders and page builders are supported onboarding wizard with a tool that suggests the best settings for each website support for low quality image placeholders (LQIP) support for JPEG, PNG, GIF, TIFF, BMP no need for a separate AVIF or WebP converter plugin, the original images are automatically converted to WebP or AVIF adjustable size breakpoints when resizing images possibility to disable plugin functionality for logged in users multiple types of exclusions available, including and advanced Image Checker Tool Easy and Advanced mode for settings with a variety of settings for an increased flexibility of the plugin functionality Do I need an account to test this plugin? No, just install it and activate it on your WordPress website. You will then automatically receive 500 MB of CDN traffic every month. That’s about 500 visits/month! How much does it cost? When using ShortPixel Adaptive Images, only CDN traffic is counted if you choose to use our CDN. With the free plan, you get 100 credits for image optimization, which is equivalent to 500 MB of CDN traffic or about 500 visits/month. Paid plans start at $4.99 and are available as both one-time and monthly plans. Even better, if you already use ShortPixel Image Optimizer, you can use the same credits for ShortPixel Adaptive Images! How does it work? Different visitors have different devices (laptop, mobile phone, tablet), each with its own screen resolution. ShortPixel AI takes into account the resolution of the device and then provides the right size image for each placeholder. Let us take a web page with a single image of 640×480 pixels. When viewed from a laptop, the image retains its 640×480 pixel size, but is optimized and delivered from our CDN. When the same web page is viewed from a mobile phone, the image (for example) is resized to 300×225 pixels, optimized, and delivered via our CDN. In this way, neither time nor bandwidth is wasted for visitors. Other plugins by ShortPixel: FastPixel Caching – WP Optimization made easy ShortPixel Image Optimizer – Image optimization & compression for all the images on your website, including WebP & AVIF delivery Enable Media Replace – Easily replace images or files in Media Library reGenerate Thumbnails Advanced – Easily regenerate thumbnails Resize Image After Upload – Automatically resize each uploaded image WP SVG Images – Secure upload of SVG files to Media Library Get in touch! Email https://shortpixel.com/contact Twitter https://twitter.com/shortpixel WP CLI commands Use the following WP CLI commands to clear the CSS cache and the Low Quality Image Placeholders: wp shortpixel clear_css wp shortpixel clear_lqips For developers If there are main images in the Media Library that end with the usual thumbnail size suffix (e.g. -100×100), please set this in wp-config.php: define('SPAI_FILENAME_RESOLUTION_UNSAFE', true); If you need to do post-processing in JavaScript after the image/tag has been updated by ShortPixel AI, you can add a callback like this: jQuery( document ).ready(function() { ShortPixelAI.registerCallback('element-updated', function(elm){ // elm is the jQuery object, elm[0] is the tag console.log("element updated: " + elm.prop('nodeName')); }); }); To change the original URL of the image that is detected by ShortPixel, use this filter that receives the original URL: add_filter('shortpixel/ai/originalUrl', 'my_function'); To return your own custom URL for each language domain for the same website (single plugin installation), use this filter: add_filter(‘shortpixel/ai/cdnUrl’, function($cdn_url) { switch($_SERVER[‘HTTP_HOST’]) { //this is the domain name without protocol case ‘mydomain.com’: //that’s your main domain return “https://images.mydomain.com/spai”; case 'mydomain.fr': //that's your french language domain return "https://images.mydomain.fr/spai"; default: return $cdn_url; } }); Sometimes when the option to crop images is enabled, SPAI thinks it is not safe to crop an image, but you want to crop it anyway. Please add this attribute to force cropping: --> this will completely exclude from processing the image which has this attribute; --> this will exclude the image from being lazy-loaded by the plugin; --> this will prevent the image from being resized by the plugin. For adding custom replacement rules use: add_filter('shortpixel/ai/customRules', 'my_function'); The function is given an array and should append ShortPixel\AI\TagRule instances to the given array , as in the example below. A real-world example of custom image attributes, a custom srcset, and a custom JSON data attribute: add_filter('shortpixel/ai/customRules', 'spai_to_iconic'); function spai_to_iconic($tagRules) { //lazy-loaded data-iconic-woothumbs-src attribute $tagRules[] = new ShortPixel\AI\TagRule('img', 'data-iconic-woothumbs-src'); //eager attribute $tagRules[] = new ShortPixel\AI\TagRule('img', 'data-large_image', false, false, false, false, true); //lazy srcset style attribute. $tagRules[] = new ShortPixel\AI\TagRule('img', 'srcset', false, false, false, false, false, 'srcset', 'replace_custom_srcset'); $tagRules[] = new ShortPixel\AI\TagRule('div', 'data-default', 'iconic-woothumbs-all-images-wrap', false, false, false, false, 'srcset', 'replace_custom_json_attr'); return $tagRules; } The parameters of the rule are, in this order: * tagName – the tag name * attribute to be replaced * classFilter – only elements having the class, default false * attrFilter – only elements having the attribute, default false * attrValFilter only elements having the attribute with the specified value, default false * mergeAttr – advanced usage (see code), default false * eager – if true the image is replaced server-side, otherwise is lazy-loaded * type – advanced usage (see code), default is ‘url’, can also be ‘srcset’ if it has a srcset or json structure * callback – advanced usage (see code), default false. Needs to be ‘replace_custom_srcset’ if the type is srcset, or ‘replace_custom_json_attr’ if the type is json * quickMatch – advanced usage (see code), default false * frontEager -advanced usage (see code), default false In the same manner if you need a rule to be applied only on the front-end (javascript) you can use the following filter: add_filter('shortpixel/ai/customFrontendRules', 'my_function'); This rule will only be applied by the New JS Engine (so you need to have the option enabled) and is useful if you have content that is rendered by JavaScript and you need the replacement to be made after the content is rendered.
Top keywords
- images30×2.13%
- shortpixel23×1.63%
- image22×1.56%
- false20×1.42%
- ai12×0.85%
- cdn12×0.85%
- website12×0.85%
- custom10×0.71%
- false false10×0.71%
- attribute9×0.64%
- default9×0.64%
- filter8×0.57%
Tempaloo WebP
The pricing problem with most WebP plugins WordPress generates 5-8 thumbnails for every image you upload (thumbnail, medium, medium_large, large, full, plus theme-specific sizes). Most popular optimizers count each thumbnail as a separate credit, so a single product photo or blog hero can burn through 6-8 credits before you’ve touched your second image. Tempaloo charges 1 credit per upload, no matter how many sizes WordPress derives from it. Same quota, 6-8x more usable conversions. Concrete comparison — 1,000 uploads / month ShortPixel / Imagify (per-thumbnail billing): 6,000 to 8,000 credits consumed → you need a 10k or 20k plan. Tempaloo (per-upload billing): 1,000 credits consumed → our 5,000-image Starter plan covers you 5x over. If your site averages 4+ thumbnails per upload (which it does, by default), Tempaloo is the lowest cost-per-converted-image on the market. Built for Agencies managing 10–100 client sites tired of credit math and license-per-site upcharges (our Growth plan covers 5 sites; Business covers unlimited). WooCommerce stores with 50+ photos per product who blow through ShortPixel quotas in days. Photographers, portfolios, magazines who want AVIF + high quality without the Imagify Pro tier. What’s in version 1.0 Async upload pipeline — conversion runs in a fresh PHP process via non-blocking loopback, so your uploads finish instantly and we never fight other plugins on the same WordPress filter chain (security scanners, page builders, other optimizers). Most optimizers convert sync inline; that’s where conflicts come from. Bulk converter with adaptive backoff, pause/resume, and live progress (current image, savings counter, ETA). Diagnostic + reconcile tab — drift detection across filesystem, attachment metadata, bulk state, and retry queue. One click to repair desynchronized state. Most optimizers leave this to the user; we audit it. AVIF on every paid tier — not a Pro-only add-on. Starter (5€/mo) already includes it. WP-CLI — wp tempaloo status / activate / bulk / restore / quota. First-class deploy story for managed WordPress hosts. Picture-tag and URL-rewrite delivery modes — picture-tag works with Gutenberg, Elementor, Bricks, Divi, Beaver Builder, WooCommerce, and any theme. URL rewrite stays out of your markup. CDN passthrough also supported. Compatibility hardening — atomic temp+rename writes, explicit nocache_headers() + DONOTCACHEPAGE so LiteSpeed Cache, WP Rocket, and W3 Total Cache never serve stale admin data. Developer hooks — three filters/actions to skip attachments, override quality, and react after conversion. See “Developer hooks” below. Pricing Free plan: 250 images / month, 1 site, no credit card required. Starter (5 €/mo): 5,000 images/month, AVIF included. Growth (12 €/mo): 25,000 images/month, 5 sites per license. Business (29 €/mo): 150,000 images/month, unlimited sites. Unlimited (59 €/mo): fair-use 500k/mo, priority SLA. Paid plans include a 7-day trial and a 30-day money-back guarantee. Credits roll over up to 30 days on paid plans. Full details at https://tempaloo.com/webp. Trademarks WebP and AVIF are open image formats developed by Google and the Alliance for Open Media respectively. Tempaloo is an independent product and is not affiliated with, endorsed by, or sponsored by Google or the Alliance for Open Media. ShortPixel, Imagify, EWWW, Smush, and Optimole are trademarks of their respective owners and are referenced for comparison purposes only. External services This plugin connects to the Tempaloo conversion API hosted at https://api.tempaloo.com to: Verify your license key when you activate the plugin. Convert images to WebP or AVIF — the plugin sends your image files (temporarily, not stored) along with your license key and site URL. Fetch your current monthly quota. Receive webhooks from Freemius (our payment processor) for subscription events. What data is sent Your license key (required for authentication). Your site URL (for license-to-site binding). The image bytes to be converted (streamed, never persisted on our servers — originals stay on your server). Your WordPress and plugin version (for compatibility diagnostics). Data retention Image data is held in memory only during conversion, then discarded. Usage logs (count of conversions, byte totals, duration) are stored for billing and analytics, associated with your license. No personal data beyond what is needed to authenticate your license: your account email (collected at activation or via Google OAuth) and the URL of the WordPress site where the license is active. Both are necessary for license enforcement and are detailed in our privacy policy at https://tempaloo.com/privacy. Providers Conversion API: Tempaloo (hosted in Frankfurt, EU). Terms of Service Privacy Policy Payment processing (paid plans only, triggered by clicking “Upgrade”): Freemius, Inc. Freemius Privacy Policy Freemius Terms By activating this plugin and entering a license key, you agree to Tempaloo’s Terms and Privacy Policy. Privacy See the External services section above for a full disclosure of the data this plugin sends to the Tempaloo API. Developer hooks Three hooks let you tailor the plugin’s behavior from your own theme or custom plugin. They fire on both the auto-convert-on-upload path and the bulk path (CLI or admin), so a single rule applies everywhere. apply_filters( 'tempaloo_webp_skip_attachment', false, $attachment_id, $mode ) Return true to bypass conversion for a specific attachment. Useful to exclude a folder, a CPT, or images larger than a threshold. apply_filters( 'tempaloo_webp_quality_for', $quality, $attachment_id, $format ) Override the quality value (1–100) per attachment. Returned values are clamped to 1–100. Useful to lift quality on portfolio shots or drop it on product thumbnails. do_action( 'tempaloo_webp_after_convert', $attachment_id, $info ) Fired after a successful conversion (one or more sizes written). $info contains format, converted, failed, mode, quality, sizes. Useful for CDN purges, custom logging, webhooks, manifest rebuilds. Example — skip conversion for any attachment in the private/ upload subfolder: add_filter( 'tempaloo_webp_skip_attachment', function( $skip, $id ) { $path = get_attached_file( $id ); return $path && false !== strpos( $path, '/uploads/private/' ); }, 10, 2 ); Source code Tempaloo WebP is open source under the GPLv2 (or later) license. All compiled assets are generated from human-readable sources included in this distribution — no obfuscated or auto-generated code without a matching source. Compiled assets The admin dashboard UI is built with Vite + React + TailwindCSS. The compiled output (build/admin.js and build/admin.css) is generated from the source files under admin-app/: TypeScript / TSX source: admin-app/src/ Build configuration: admin-app/vite.config.ts, admin-app/tsconfig.json, admin-app/tailwind.config.js, admin-app/postcss.config.js Dependency manifest: admin-app/package.json (and admin-app/package-lock.json for reproducible installs) How to rebuild From the plugin root: cd admin-app npm install npm run build This regenerates build/admin.js and build/admin.css. Output is deterministic — same source plus same lock file produce the same bytes. npm run typecheck runs the TypeScript compiler in `--noEmit` mode for a standalone type check. Third-party libraries All third-party libraries are pulled in via npm (declared in admin-app/package.json) — none are vendored as pre-built minified files in this repository. Their licenses are MIT and compatible with GPLv2-or-later. React 18 — https://react.dev (MIT) React DOM 18 — https://react.dev (MIT) clsx — https://github.com/lukeed/clsx (MIT) @freemius/checkout — https://github.com/Freemius/checkout (MIT) TailwindCSS — https://tailwindcss.com (MIT) Vite — https://vitejs.dev (MIT) PostCSS — https://postcss.org (MIT) Autoprefixer — https://github.com/postcss/autoprefixer (MIT)