WebP Image Won't Upload? Why and How to Fix
A site rejects your WebP with 'file type not supported' or 'convert it to JPEG or PNG'. Find out why, how to check the real format, and how to fix it.
Why the upload is rejected
The site's upload form only accepts a short list of formats, and WebP is not on it. That is the whole problem in most cases. You will see it as a file picker that greys out your image, a hint such as "Allowed types: .jpg, .png, .gif", a message like "file type not supported", or, on WordPress, "The uploaded file could not be processed by the web server. Convert it to JPEG or PNG". The image itself is fine. The site, plugin or server library behind the form simply has no WebP support, or has it switched off.
The fix is to hand the form a format it lists. For a photo, that is JPG. If the form lists PNG and your image has a transparent background, PNG is the safer pick (see the transparency section below). Skip any advice to just rename the file; the next section shows why that does not work.
Renaming .webp to .jpg does not change the format
Renaming only changes the label, not the contents. A file's real format is stored in its first bytes, and an upload check that looks at those bytes will still see WebP. To confirm, I created a WebP file, copied it to a name ending in .jpg, and ran the `file` command on both. Each one reported `RIFF (little-endian) data, Web/P image`, and the first twelve bytes of the renamed copy were `RIFF`, four size bytes, then `WEBP`. A real JPG starts with different bytes entirely.
So a renamed file passes a check that only reads the extension and fails one that reads the content. WordPress, for example, can reject it after upload, because the server then tries to process the image and cannot. If a rename seems to work on one site and not another, that is the difference. A genuine conversion rewrites the bytes, which is what a converter does.
When a .jpg file is secretly WebP
The reverse case is common too: the filename says .jpg, but the content is WebP. This happens when you save an image from a web page and a site or CDN serves WebP under a JPG-looking address, or when a tool or browser renames the download without re-encoding it. Marketplace sellers see it as an error that reads a JPG as WEBP, even though the file was never converted.
To check, run `file yourimage.jpg` on Mac or Linux. A real JPEG reports `JPEG image data`; a disguised one reports `Web/P image`. Without a terminal, drag the file into a browser tab and look at the tab or the Save As dialog, or open the file's properties and compare the type with the extension. If it turns out to be WebP, treat it exactly like any other WebP and convert it. Converting the file rewrites the contents and gives you a true JPG that the form will accept.
Convert it to a real JPG and upload again
Run the file through the [WebP to JPG converter](/convert/webp-to-jpg), download the result, and upload that file instead. It runs in your browser, so the image is not sent to a server just to be converted, and you can drop several files in at once and download them as a ZIP.
Two details from the converter's code are worth knowing. In converter mode the quality slider starts at 92%, which keeps the re-encode close to the original for most photos; you can lower it if the form also has a file size limit. And since JPG cannot store transparency, any transparent area is filled with solid white before encoding. I did not test how animated WebP files are handled, so if yours is an animation, check the output before relying on it.
For the step-by-step on the converter itself, see [how to convert WebP to JPG](/blog/convert-webp-to-jpg). This guide is about getting past the rejection.
Choose JPG or PNG based on transparency
Pick JPG for photos and PNG for anything with a transparent background. JPG is smaller for photographs but has no transparency, so a logo or cut-out product shot gets a flat white background when it becomes a JPG. That is fine on a white page and ugly on a coloured one. PNG keeps the transparent areas, at the cost of a larger file for photographic content.
If the upload form lists both, use [WebP to PNG](/convert/webp-to-png) for logos, icons and stickers, and WebP to JPG for ordinary photos. If you are unsure whether your image is transparent, open it on a coloured background or in an image viewer that shows a checkerboard. For more on the trade-off, read [PNG vs JPG](/blog/png-vs-jpg), and if a transparent image ever turns black after conversion, see [why PNG backgrounds go black](/blog/png-background-black-instead-of-transparent).
If the converted file still gets rejected
If a true JPG is still refused, the cause is something other than the format. Check the form's size limit first, since a converted photo can come out larger than the original WebP, and a smaller JPG quality or a resize will usually fix that. Then check the pixel dimensions and whether the site wants a specific type, such as PNG only.
If the file may actually be AVIF rather than WebP, the same symptom applies and the same fix works: see [AVIF to JPG](/blog/avif-to-jpg) and [AVIF vs WebP](/blog/avif-vs-webp) for how to tell them apart. On your own WordPress site, the "could not be processed by the web server" message points at the server's image library, so you can also ask your host to enable WebP support. For a one-off upload, converting the file is much faster than changing server settings.
Frequently asked questions
Try it on PixelTools — free, no upload needed