Tutorials

How to Convert Images to WebP: A Step-by-Step Guide

SharpWebP Team February 8, 2026 8 min read

Why Convert to WebP?

If you have read the performance reports, you know the numbers: WebP produces files 25-34% smaller than JPEG and 26% smaller than PNG at equivalent quality. With 97%+ browser support in 2026, there is no technical reason to keep serving legacy formats for web content.

But knowing why is the easy part. The question is how -- especially when you have hundreds or thousands of existing images. This guide covers five methods for converting images to WebP, from the simplest drag-and-drop approach to fully automated pipelines.

Method 1: Online Converter (Fastest for Small Batches)

The simplest approach: upload your image to a web-based tool and download the WebP version. No software installation, no command line, no configuration.

Using SharpWebP's Online Converter

  1. Go to sharpwebp.com/tools/convert-to-webp
  2. Drag and drop your image (JPEG, PNG, GIF, BMP, TIFF, or HEIC)
  3. Choose your quality setting (default: 85, which balances size and quality)
  4. Click Convert
  5. Download your WebP file

SharpWebP runs every conversion through quality analysis, guaranteeing a minimum PSNR of 45 dB and SSIM of 0.98. Translation: the converted image is visually indistinguishable from the original. You will never get a pixelated or blurry result.

Free tier: 5 conversions per day, no account required. Paid plans start at $9/month for unlimited conversions.

When to Use This Method

  • Converting a handful of images for a blog post or landing page
  • Quick one-off conversions when you do not want to install software
  • Testing WebP quality before committing to a bulk migration

Method 2: Command Line with cwebp (Best for Developers)

Google provides the cwebp command-line encoder as part of the libwebp package. It gives you granular control over every compression parameter.

Installation

# macOS
brew install webp

# Ubuntu / Debian
sudo apt install webp

# Windows (via Chocolatey)
choco install webp

Basic Conversion

# Convert JPEG to WebP at quality 85
cwebp -q 85 input.jpg -o output.webp

# Convert PNG to lossless WebP
cwebp -lossless input.png -o output.webp

# Convert with specific target file size (in bytes)
cwebp -size 100000 input.jpg -o output.webp

Key Parameters

ParameterDescriptionRecommended Value
-qLossy quality (0-100)80-85 for photos
-losslessEnable lossless compressionUse for screenshots/diagrams
-mCompression method (0-6, higher = slower + smaller)4-6 for production
-resize W HResize during conversionMatch your display size
-metadata noneStrip EXIF metadataAlways for web
-afAuto-filter (optimizes loop filtering)Recommended

Batch Conversion with a Shell Script

#!/bin/bash
# Convert all JPEGs in a directory to WebP
for file in *.jpg *.jpeg *.png; do
  [ -f "$file" ] || continue
  output="${file%.*}.webp"
  cwebp -q 85 -m 6 -metadata none -af "$file" -o "$output"
  echo "Converted: $file -> $output"
done

When to Use This Method

  • You are comfortable with the command line
  • You need to integrate conversion into a build script or CI/CD pipeline
  • You want precise control over compression parameters
  • Converting large batches locally without uploading to a third-party service

Method 3: API Integration (Best for Automated Workflows)

For applications that process images dynamically -- CMS platforms, e-commerce backends, user-generated content -- an API is the right approach. Convert images programmatically as they are uploaded or requested.

SharpWebP API Example

# Convert an image to WebP via API
curl -X POST https://app.sharpwebp.com/api/v1/convert 
  -H "X-API-Key: your_api_key_here" 
  -F "image=@product-photo.jpg" 
  -F "format=webp" 
  -F "quality=85"

# Response includes a download URL for the converted image

Node.js Integration

const FormData = require('form-data');
const fs = require('fs');
const fetch = require('node-fetch');

async function convertToWebP(imagePath) {
  const form = new FormData();
  form.append('image', fs.createReadStream(imagePath));
  form.append('format', 'webp');
  form.append('quality', '85');

  const response = await fetch('https://app.sharpwebp.com/api/v1/convert', {
    method: 'POST',
    headers: { 'X-API-Key': process.env.SHARPWEBP_API_KEY },
    body: form
  });

  return response.json();
}

Python Integration

import requests

def convert_to_webp(image_path, api_key):
    with open(image_path, 'rb') as f:
        response = requests.post(
            'https://app.sharpwebp.com/api/v1/convert',
            headers={'X-API-Key': api_key},
            files={'image': f},
            data={'format': 'webp', 'quality': '85'}
        )
    return response.json()

SharpWebP includes API access with every paid plan. No separate API pricing, no per-request fees beyond your plan's credit allocation. Get your API key from the dashboard settings.

When to Use This Method

  • Your CMS or app accepts user-uploaded images that need conversion
  • You are building an image processing pipeline
  • You need server-side conversion without installing local tools

Method 4: WordPress Plugin (Best for WordPress Sites)

WordPress sites have a unique advantage: plugins can intercept image uploads and convert them automatically. No manual intervention needed.

SharpWebP WordPress Plugin

The SharpWebP WordPress plugin converts every image you upload to WebP automatically. It also provides:

  • Bulk optimizer: Convert your entire existing media library in one click
  • Media library stats: See total savings and per-image compression ratios
  • WP-CLI support: Automate from the command line with wp sharpwebp optimize --all
  • Automatic fallback: Serves original format to the ~3% of browsers without WebP support

Installation

  1. Download the plugin from the SharpWebP dashboard
  2. Upload to wp-content/plugins/ and activate
  3. Enter your API key in Settings > SharpWebP
  4. Set your preferred quality level
  5. All new uploads are automatically converted

Bulk Converting Existing Images

Navigate to Media > SharpWebP Optimizer and click "Optimize All." The plugin processes images in the background, so you can continue working while it converts your library. For large libraries (10,000+ images), use WP-CLI:

wp sharpwebp optimize --all --batch-size=50

When to Use This Method

  • You run a WordPress site (obviously)
  • You want conversion to happen transparently on upload
  • You have a large existing media library that needs bulk conversion

Method 5: Build Tool Integration (Best for Static Sites and SPAs)

If you use a build tool like Webpack, Vite, or a static site generator (Next.js, Gatsby, Hugo), you can integrate WebP conversion into your build pipeline.

Webpack with imagemin-webp

// webpack.config.js
const ImageMinimizerPlugin = require('image-minimizer-webpack-plugin');

module.exports = {
  optimization: {
    minimizer: [
      new ImageMinimizerPlugin({
        generator: [{
          preset: 'webp',
          implementation: ImageMinimizerPlugin.sharpGenerate,
          options: {
            encodeOptions: {
              webp: { quality: 85 }
            }
          }
        }]
      })
    ]
  }
};

Next.js Built-in Optimization

Next.js automatically converts and optimizes images when you use the <Image> component:

import Image from 'next/image';

export default function ProductPage() {
  return (
    <Image
      src="/images/product.jpg"
      alt="Product photo"
      width={800}
      height={600}
      quality={85}
    />
  );
}

Next.js serves WebP or AVIF automatically based on the browser's Accept header.

When to Use This Method

  • You already use a build tool or framework with image optimization support
  • You want conversion to happen at build time, not runtime
  • Your images are part of the source code, not user-uploaded

Converting from Specific Formats

HEIC to WebP (iPhone Photos)

iPhones capture photos in HEIC format by default. HEIC is efficient for storage but is not supported by web browsers. To use iPhone photos on the web, you need to convert them to WebP.

SharpWebP accepts HEIC uploads directly -- just drag and drop your iPhone photos. The converter handles the HEIC decoding and WebP encoding in one step.

TIFF to WebP

TIFF files from scanners and professional cameras can be enormous (50-200 MB). Converting to WebP reduces them to manageable web sizes. Use the SharpWebP converter or cwebp: cwebp -q 85 scan.tiff -o scan.webp.

GIF to WebP

Animated GIFs are notoriously large. WebP animation provides the same visual result at roughly 64% smaller file size. Google provides the gif2webp tool specifically for this conversion.

Quality Verification: How to Confirm Your Conversions Are Good

After converting, you should verify that quality is acceptable. Here are two approaches:

Visual Inspection

Open the original and converted images side by side at 100% zoom. Check areas with fine detail (text, edges, gradients) for artifacts. If you cannot tell them apart, the conversion is good.

Objective Metrics

For automated quality verification, use PSNR and SSIM metrics:

  • PSNR > 45 dB: Visually lossless. No human can distinguish the images.
  • SSIM > 0.98: Structural similarity is near-perfect.
  • PSNR 38-45 dB: Minor differences visible under close inspection.
  • PSNR < 35 dB: Visible quality loss. Re-convert at a higher quality setting.

SharpWebP runs both PSNR and SSIM analysis on every conversion and guarantees the output exceeds 45 dB / 0.98. If a conversion cannot meet those thresholds, it returns an error rather than delivering a degraded image.

Summary: Choosing Your Method

MethodBest ForEffortAutomation
Online converterQuick, small batchesLowManual
cwebp command lineDeveloper workflowsMediumScriptable
SharpWebP APIApp integrationsMediumFully automated
WordPress pluginWordPress sitesLowFully automated
Build tool integrationStatic sites, SPAsMediumBuild-time automated

Start with the method that matches your workflow. If you just need a few images converted right now, the online tool is the fastest path. If you are building a system that needs to handle images at scale, invest in the API or plugin approach.

Try SharpWebP free -- convert your first 5 images today with zero quality loss.

Try SharpWebP Free

Convert your images to ultra-quality WebP with zero pixelation. Start with 5 free images per day.

Get Started Free →