Configure
WebP and AVIF Everywhere
- Visitors get WebP
- WebP 5,184 of 6,117 (84 %)
Overview
Your shop’s images get lighter WebP copies, sent to the browsers that can show them.
- Step 1 · done Check the server
- Step 2 · done Choose the quality
- Step 3 · now Convert your images
- Step 4 Turn on delivery
- Step 5 · done Keep conversion automatic
Convert your images
The module creates the copies of the images already in your shop, a few at a time.
Images waiting for their copies: 933
Checks
Checks passed: 12 of 13Show all checks
-
Passes: A conversion engine works GD: test image converted in 8 ms
-
Passes: PHP fileinfo extension is loaded Needed to recognise image types
-
Passes: Server rules are in your .htaccess Backups kept: 5
-
Passes: Visitors get WebP Last test: 10/26/2026 20:08:20.
-
Passes: Copies are sent with the Vary: Accept header
-
Passes: Feeds and shared links still get JPG images
-
Needs attention: WebP copies still missing: 933 Module images: 933Convert: WebP copies still missing: 933
-
Information: AVIF is off Your server can create AVIF copies, often 20 % smaller than WebP.Turn on: AVIF is off
-
Passes: New images are converted when you upload them Product, category, brand, supplier and store images
-
Passes: Automatic conversion is running Last run: 3 h ago.
-
Passes: No leftover copies
-
Passes: The old address override is gone Nothing of version 2 is left in PrestaShop’s Link class
-
Information: Conversion settings apply to all shops. The images and their copies are shared by every shop.
Formats and quality
Choose how small the converted images are. Changes apply to images converted from now on.
What PrestaShop creates itself
PrestaShop 8.1 and later can create WebP and AVIF copies of catalogue images itself. This module never replaces them: it adds the copies PrestaShop forgets (supplier images) or misses (images of a CSV import or the webservice, the no-picture images), and the formats PrestaShop does not create.
PrestaShop can also create WebP and AVIF copies of catalogue images (Design > Image settings). This option is off in your shop, so this module creates them. If you turn this option on, the module leaves those files to PrestaShop and only adds what PrestaShop misses.
| Images | WebP | AVIF |
|---|---|---|
| Products | This module | Not made |
| Categories | This module | Not made |
| Brands | This module | Not made |
| Suppliers | This module | Not made |
| Stores | This module | Not made |
Images to convert
Choose which images get WebP and AVIF copies.
Engine
The program on your server that creates the copies.
Engines of this server
- Imagick Not installed on this server
- GD WebP and AVIF Used first
- EWWW cloud service Not set up: it needs an EWWW API key
- Last test conversion GD: 8 ms, 6 KB → 1 KB (10/26/2026 19:55:19)
Each engine converts one image of your shop in memory: nothing is saved and your images stay as they are. EWWW is tested only when it is the preferred engine, as each test uses one EWWW credit.
Delivery
Images keep their .jpg and .png addresses. Your server sends the AVIF or WebP copy to browsers that accept it, so your theme stays as it is and page caches stay valid.
Test delivery
Shop tested: #1 WebPGenerator
Leaving the page pauses the test; it goes on when you come back.
Yes, your visitors get WebP images.
Browsers that can show WebP got the copies, and older browsers got the JPG.
- Images tested: 27
- Sent as WebP: 27
- Older browsers got the JPG
- Feeds keep JPG
Show the details
webp.demo9.prestachamps.com Same address (server swap)
Visitors get WebP Images tested: 27 Sent as WebP: 27
Home page: Opened Category page: Opened Product page: Opened CMS page: Opened
Feeds and shared links still get JPG images.
Addresses of your shop
Automatic sends the copies at the same address wherever the module can write its rules to the .htaccess file, and as sources in the page elsewhere; a media server, often a CDN, gets them once a delivery test has checked it. Same address (server swap) always writes the rules for the address; Sources in the page adds the copies to the HTML of your pages instead. Default: Automatic.
| Address | How images are sent | Last test | Mode |
|---|---|---|---|
| demo9.prestachamps.com | Same address (server swap) Automatic: the .htaccess file holds the rules. | Not tested yet | |
| webp.demo9.prestachamps.com | Same address (server swap) Automatic: the .htaccess file holds the rules. | Visitors get WebP · 10/26/2026 |
Server rules
-
Passes: Server rules are in your .htaccess The last 5 versions of the file are kept as backups.
nginx configuration
Using nginx? Here are the lines to copy into your server’s configuration.
nginx reads no .htaccess file: add these lines to the configuration of your server, the second part in the server block of every shop address, then reload nginx. On Apache you need them only when nginx sits in front of it and serves your images. They cover product, category, brand, supplier and store images, CMS images, theme and module images and the logo. The first part lists the addresses whose images nginx swaps: when their modes change, this section asks you to paste the nginx configuration again.
# 1) In the http { } block, once:
# The addresses whose images nginx swaps; the others keep sources in the page.
map $host $webpgen_host { default 0; "demo9.prestachamps.com" 1; "webp.demo9.prestachamps.com" 1; }
map "$webpgen_host:$http_accept" $webpgen_webp { default ".webpgen-none"; "~*^1:.*image/webp" ".webp"; }
map $uri $webpgen_base { default $uri; "~*^(?<webpgen_name>.+)\.(?:jpe?g|png)$" $webpgen_name; }
# 2) In the server { } block of every shop address, before PrestaShop's own rules.
# nginx answers these images from the locations below alone: copy the expires and
# Cache-Control lines of your own image location into each of them.
location ~* ^/img/(?:p|c|m|su|st)/(?:.+/)?(?:\d+(?:-|_thumb-)[^/]*|[a-z][a-z]-default-[^/]*)\.(?:jpe?g|png)$ {
types { image/avif avif; image/webp webp; image/jpeg jpg jpeg; image/png png; }
add_header Vary Accept;
try_files $webpgen_base$webpgen_webp $uri =404;
}
location ~* ^/(?:img/cms/.+|img/[^/]+|themes/.+|modules/.+)\.(?:jpe?g|png)$ {
types { image/avif avif; image/webp webp; image/jpeg jpg jpeg; image/png png; }
add_header Vary Accept;
try_files $uri$webpgen_webp $uri =404;
}
A location with its own add_header line gets none of the add_header lines of the server block: copy the ones your images need, such as security headers, into the location above.
Sources in the page
Speed
Small changes in your pages that help Google’s speed scores.
CDN
A CDN keeps copies of your pages and images close to your visitors. When the module changes an image, or how an address sends its images, the CDN must forget the old version.
CDN in front of your addresses
A CDN is seen by the delivery tests and by a daily look at the home page of each address.
Convert images
Creates the copies of the images that have none yet, a few at a time. Leaving the page stops it; the copies made so far stay.
Images of your shop
Looks through the image folders again for images added, replaced or removed outside an upload, for example by an import or by FTP, and makes the copies of the new ones while this page stays open.
Converts every waiting image, a few at a time, while this page stays open; Pause stops it. Leaving the page stops it too, and the copies made so far stay. The first run also lists the images of your shop.
Pause stops this page and the automatic conversion (in the back office and by the cron task) until Resume, Start or Convert all. New uploads are still converted at once.
Lets the automatic conversion (in the back office and by the cron task) convert the waiting images again. New uploads were converted all along.
| Images | Progress | WebP ready | Original kept | Failed | Start or pause |
|---|---|---|---|---|---|
| Products | 3,228 of 3,228 done | 3,228 | 0 | 0 | Done |
| Categories | 473 of 473 done | 473 | 0 | 0 | Done |
| Brands | 240 of 240 done | 240 | 0 | 0 | Done |
| Suppliers | 230 of 230 done | 230 | 0 | 0 | Done |
| Stores | 51 of 51 done | 51 | 0 | 0 | Done |
| CMS images | 1 of 1 done | 1 | 0 | 0 | Done |
| Theme images | 5 of 5 done | 5 | 0 | 0 | Done |
| Module images | 954 of 1,887 waiting | 954 | 0 | 0 | Done |
| Shop logo | 2 of 2 done | 2 | 0 | 0 | Done |
No image is listed yet: the first run of Convert all lists the images of your shop.
Progress How many image files of this kind have their copies, out of all of them. PrestaShop keeps each product, category or brand image in several sizes, and each size counts. The waiting ones are converted by Start, Convert all or the automatic conversion; originals kept and failed copies count as handled.
WebP ready Image files that have a WebP copy, made by the module or by PrestaShop itself.
Original kept Copies that were not smaller than the original, so visitors get the original file. Each format counts on its own.
Failed Copies that could not be created after three tries. Each format counts on its own; the list below says why.
Start converts the waiting images of this kind only, while this page stays open; Start on another row takes over after the current step. Pause stops this page and the automatic conversion until you resume.
Automatic conversion
New images and images without copies are converted without you opening this page.
Last runs
| When | Started by | Converted | Original kept | Failed | Duration |
|---|---|---|---|---|---|
| 10/30/2026 16:53:25 | Back-office conversion | 9 | 0 | 0 | 4 s |
| 10/30/2026 15:01:31 | Back-office conversion | 9 | 0 | 0 | 4 s |
| 10/30/2026 14:57:03 | Back-office conversion | 9 | 0 | 0 | 4 s |
| 10/30/2026 14:52:38 | Back-office conversion | 9 | 0 | 0 | 4 s |
| 10/30/2026 13:51:22 | Back-office conversion · Runs: 6 | 106 | 0 | 0 | 24 s |
| 10/30/2026 13:19:17 | Back-office conversion | 20 | 0 | 0 | 4 s |
| 10/30/2026 13:12:09 | Back-office conversion | 22 | 0 | 0 | 4 s |
| 10/30/2026 12:51:35 | Back-office conversion · Runs: 2 | 33 | 0 | 0 | 8 s |
| 10/30/2026 12:47:31 | Back-office conversion · Runs: 2 | 31 | 0 | 0 | 8 s |
| 10/30/2026 12:19:35 | Back-office conversion | 18 | 0 | 0 | 4 s |
Cron task
Your hosting can call this address on a schedule, and each call converts images for up to 50 seconds. It works even when nobody has the back office open, so it is the most reliable way.
Add this address to your hosting’s cron jobs, to be called every 15 minutes.
https://demo9.prestachamps.com/module/webpgenerator/cron?token=c2b2d28f6a271f6ce979649992e4886160a5287728117b419be61feab18519b2
On a server of your own, add one of these lines to its crontab instead.
*/15 * * * * wget -q -O /dev/null --tries=1 --timeout=120 "https://demo9.prestachamps.com/module/webpgenerator/cron?token=c2b2d28f6a271f6ce979649992e4886160a5287728117b419be61feab18519b2"
*/15 * * * * curl -fsSL --max-time 120 -o /dev/null "https://demo9.prestachamps.com/module/webpgenerator/cron?token=c2b2d28f6a271f6ce979649992e4886160a5287728117b419be61feab18519b2"
Make a new address if the old one has become known outside your team; the old one stops working at once.
Folder checks
The folders are checked for new images every hour, and the whole catalogue every week. Folders last checked: 10/30/2026 16:53:25. Last full check: 10/26/2026 19:55:31.
Checks every image folder and the whole catalogue again, for images added, replaced or removed without an upload.
Statistics
This part is loaded when you open it, so the other settings open quickly.
Compare
This part is loaded when you open it, so the other settings open quickly.
Clean up
This part is loaded when you open it, so the other settings open quickly.
Originals
This part is loaded when you open it, so the other settings open quickly.
Help
Guides, support and version.
User guide
The user guide (PDF) is on the module’s page on PrestaShop Addons, under Documentation.
Open the user guide on PrestaShop Addons (opens in a new tab)
Other languages:
Questions
How do I check that my visitors get WebP images?
Run the test of the Delivery section: it asks your shop for its images as a visitor’s browser does. You can also open the developer tools of your browser on a page of your shop: in the Network tab, the images show the type webp.
Why are some images still JPG?
An image stays JPG while its copy waits, when its copy was not smaller than the original, or when its kind is not chosen in Images to convert. Convert images shows the images still waiting for a copy, and Compare shows each copy.
Do I need a cron task?
Not for most shops: the images you upload are converted at once, and the back office converts the others while it is open. A cron task helps a large shop, or one whose back office is rarely open: see Automatic conversion.
Support
Questions? Write to us through the Messages of your order on PrestaShop Addons.
Version
Installed version: 3.2.0
Our modules
Other modules made by the team behind this one. Each card shows whether your shop already has the module.
More modules from PrestaChamps
-
EU Legal Guarantee Notice and GARAN Label
Show the EU legal guarantee notice and the official GARAN label across your store, cart, checkout and order confirmation emails, in the 24 EU languages, with brand rules, bulk assignment and a live compliance checklist.
PrestaShop 1.7.6 – 9.2 Installed Not enabled in this shop -
GDPR Compliance Pro + Google and Microsoft Consent Mode
Cookie scanner and blocker: find the cookies on your shop and hold them back until visitors consent, with a clear consent pop-up, Google Consent Mode V2 and Microsoft Ads Consent Mode, consent in your forms and customer data requests.
PrestaShop 1.7.6 – 9.2 Installed Not enabled in this shop -
OpenAI / ChatGPT Ads — Product Feed & Conversion Tracking Pixel + CAPI
Get your catalog into OpenAI Ads and measure every sale it drives
PrestaShop 1.7 – 9.2 Installed Not enabled in this shop -
Order Source Pro - UTM and Campaign Attribution
Know which campaign, ad, search engine or site your orders come from: UTM and ad-click tracking, first and last touch on each tracked order, a Source column with a filter in your Orders list, a card…
PrestaShop 8 – 9.2 Installed Not enabled in this shop -
ChatGPT Merchant Feed Generator
Generate OpenAI-compliant product feeds (CSV/TSV/JSON/XML) so your PrestaShop products can be discovered and purchased directly in ChatGPT
PrestaShop 1.7 – 9.2 Installed Not enabled in this shop -
LLMS.txt Generator PRO
Publishes an llms.txt for your shop in every active language, so ChatGPT, Claude, Gemini and Perplexity read your own description of the store, your categories, products, brands and pages
PrestaShop 1.7 – 9.2 Installed Not enabled in this shop -
PPWR Packaging Compliance – EPR Reports, Right-Sizing & QR Labels
Get your shop ready for the EU packaging law (PPWR): track packaging, store conformity documents, right-size parcels, file EPR reports and print recycling QR labels
PrestaShop 8 – 9.2 Installed Not enabled in this shop -
MailCharm - Personalized Customer Emails
Give every PrestaShop transactional email one polished, on-brand look — plus a next-order coupon, automatic multi-language and live preview. No HTML, no developer
PrestaShop 1.7.6 – 9.2 Installed Not enabled in this shop -
Saved Basket
The Saved Basket module lets customers save their cart with a unique code, retrieve it later, or share it via email for easy checkout
PrestaShop 1.7.8 – 9.1.5 Installed Not enabled in this shop -
AI Product Recommender: Cross-Selling and Related Products
Show each visitor the products they are most likely to add next, learned from your orders and visits: bought together, similar, trending and personal picks in 13 places of your shop, with your own rules, A/B tests and the revenue they bring.
PrestaShop 8 – 9.2 Installed Not enabled in this shop
Made with love by PrestaChamps
Thank you for trusting us with your shop. Every part of this module was written, tested and polished by people who care about the small details, because we know how much of yourself you put into your store. If anything doesn’t feel right, write to us on Addons: a real person reads every message, and we’d love to hear from you.
With love,
the PrestaChamps team
The links open PrestaShop Addons. This page loads nothing from the internet and sends nothing to PrestaChamps.