Etsy's image requirements look simple on the surface, but there are several hidden gotchas that cause photos to look washed out, cropped awkwardly, or load slowly in listings. The platform applies its own compression and color management, so the format you upload directly affects how your product looks to buyers — especially on mobile, where most Etsy shopping happens. Getting this right once, then automating it for every product shoot, is worth the setup time.
Etsy listing photo specifications
Per Etsy's seller help documentation:
- Recommended dimensions: 2000 × 2000 px (1:1 square). Etsy displays a square crop in search results regardless of uploaded aspect ratio.
- Minimum dimensions: 570 px on the shortest side. Images below this look blurry in listings.
- Maximum file size: 10 MB per image. Practically, keep JPEG under 1–2 MB to avoid slow loads on mobile.
- Accepted formats: JPEG and PNG. PNG is lossless but produces larger files; JPEG at 85–90% quality is recommended for product photos.
- Color profile: sRGB required. CMYK or wide-gamut (Adobe RGB, Display P3) images will have colors shifted when Etsy converts them to sRGB. Convert explicitly before upload.
- Number of photos: Up to 10 photos per listing. First photo is the primary thumbnail shown in search.
- Video: Up to 15 seconds, auto-plays muted in listing (not covered here — see related guides).
- Watermarks: Etsy's guidelines discourage visible watermarks on photos; they can reduce conversion rates.
Practical target: 2000×2000 px JPEG, sRGB, ~85% quality, under 800 KB. This is the sweet spot for fast loads and high display quality across all Etsy surfaces.
Recommended source-to-target pairs
| Source | Situation | Target | Notes |
|---|---|---|---|
| RAW (CR2, NEF, ARW) | DSLR product photography | JPEG | Convert via Lightroom or FFmpeg; strip to sRGB at export; 85% quality is plenty |
| TIFF (Adobe RGB) | Professional photo retouching output | JPEG (sRGB) | Must reassign color profile from AdobeRGB to sRGB or colors shift on Etsy |
| PNG (transparent background) | Digital products, stickers, clip art | PNG or JPEG | Keep PNG if transparency matters; convert to JPEG with white background for physical products |
| HEIC (iPhone) | iPhone product shots | JPEG | Etsy does not accept HEIC; convert before upload; strip EXIF GPS data for privacy |
| WebP | Browser-saved images | JPEG | WebP not accepted by Etsy uploader; convert to JPEG first |
| JPEG (landscape/portrait) | Non-square existing photos | JPEG (square crop) | Center-crop to 1:1 before upload to control what buyers see in search thumbnails |
Conversion commands (curl + Python)
# curl — convert HEIC to JPEG for Etsy
curl -X POST https://changethisfile.com/v1/convert \
-H "Authorization: Bearer ctf_sk_your_key_here" \
-F "file=@product-shot.heic" \
-F "target=jpg" \
-o etsy-ready.jpg
import requests
from pathlib import Path
API_KEY = "ctf_sk_your_key_here"
def convert_for_etsy(in_path: str, out_path: str) -> None:
"""Convert image to Etsy-compatible JPEG."""
with open(in_path, "rb") as f:
resp = requests.post(
"https://changethisfile.com/v1/convert",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"target": "jpg"},
timeout=60,
)
resp.raise_for_status()
out = Path(out_path)
out.write_bytes(resp.content)
kb = len(resp.content) / 1024
print(f"{out.name}: {kb:.0f} KB")
convert_for_etsy("product-shot.heic", "etsy-ready.jpg")
For precise control over dimensions, color profile, and quality (recommended for professional product photography):
# FFmpeg: resize to 2000x2000 square, force sRGB, set JPEG quality 90
ffmpeg -i input.tiff \
-vf "scale=2000:2000:force_original_aspect_ratio=decrease,pad=2000:2000:(ow-iw)/2:(oh-ih)/2:white" \
-vframes 1 \
-q:v 3 \
-color_primaries bt709 -color_trc bt709 -colorspace bt709 \
output-etsy.jpg
# ImageMagick: convert TIFF (AdobeRGB) → JPEG (sRGB) 2000x2000
convert input.tiff \
-profile /usr/share/color/icc/colord/AdobeRGB1998.icc \
-profile /usr/share/color/icc/colord/sRGB.icc \
-resize 2000x2000 \
-gravity center -extent 2000x2000 \
-quality 88 \
output-etsy.jpg
Batch script: prep a full product shoot for Etsy
#!/usr/bin/env bash
# Usage: ./convert_etsy_batch.sh ./raw-shots ./etsy-ready
# Converts HEIC, TIFF, PNG, WebP, RAW-JPEG → Etsy-ready 2000x2000 JPEG
API_KEY="ctf_sk_your_key_here"
INPUT_DIR="${1:-.}"
OUTPUT_DIR="${2:-./etsy-ready}"
mkdir -p "$OUTPUT_DIR"
success=0; failed=0; skipped=0
for img in "$INPUT_DIR"/*.{heic,HEIC,webp,tiff,tif,png,PNG,jpeg,jpg,JPG}; do
[ -f "$img" ] || continue
base=$(basename "$img" | sed 's/\.[^.]*$//')
out="$OUTPUT_DIR/${base}.jpg"
# Skip if already converted
if [ -f "$out" ]; then
echo "SKIP: $(basename $img) (already exists)"
((skipped++))
continue
fi
printf "%-50s" "Converting $(basename $img)..."
code=$(curl -s -o "$out" -w "%{http_code}" \
-X POST https://changethisfile.com/v1/convert \
-H "Authorization: Bearer $API_KEY" \
-F "file=@$img" \
-F "target=jpg")
if [ "$code" = "200" ]; then
kb=$(du -k "$out" | cut -f1)
echo "OK (${kb} KB)"
((success++))
else
echo "FAILED (HTTP $code)"
rm -f "$out"
((failed++))
fi
done
echo ""
echo "Results: $success converted, $failed failed, $skipped skipped"
echo "Output: $OUTPUT_DIR"
Etsy-specific gotchas
- CMYK kills your colors. If your photographer delivered TIFF or JPEG in CMYK (common from print-focused retouchers), the colors will shift visibly when Etsy converts to sRGB. Warm reds become dull, bright greens go muddy. Always convert to sRGB explicitly before upload using ImageMagick or Lightroom's export settings.
- Etsy crops to square in search — plan your composition. Even if you upload a 2:3 portrait photo, Etsy shows a square crop in search results and category pages. The crop is center-weighted by default. If your product is off-center or has important details in the top/bottom corners, those will be cut. Shoot or crop to square before uploading.
- First photo is everything. Etsy's algorithm and buyers both judge on the first image. It needs to be square, well-lit, on a clean background or styled scene. The remaining 9 slots can show detail, scale, and lifestyle shots.
- HEIC is not accepted. iPhone files in HEIC format will be rejected by Etsy's uploader with a generic error. Convert to JPEG before attempting to upload — this is the most common new-seller frustration.
- File size vs. quality tradeoff. Etsy's own compression kicks in aggressively on files over 2MB. You'll get better final quality by controlling compression yourself (JPEG 85–90%, ~800 KB) than by uploading a 5MB file and letting Etsy compress it. Test by downloading your uploaded photo from the listing — compare to your source.
- PNG transparency shows as black on some devices. Etsy doesn't always convert PNG alpha channels cleanly. If you're uploading a product photo with a transparent background, flatten against white before converting to JPEG, or verify the PNG renders correctly across device types.
Digital product listing images
Digital products (printables, clip art, SVG files, templates) have slightly different needs:
- Show the product, not just a mockup. Etsy allows mockup images but buyers convert better when they can see what they're actually getting — a preview of the printable, the SVG rendered as a design, etc.
- Infographic-style first photos work well for digital products. A clean 2000×2000 px image with the product name, key features, and a preview renders well in search and sets expectations.
- PNG at 2000×2000 px is fine for digital products with text. JPEG compression introduces artifacts around sharp text edges. For text-heavy listing images, PNG preserves clarity better — just keep the file under 2MB.
- Include a size/scale reference image for printables. A photo of the printed piece next to a familiar object (ruler, mug, hand) dramatically reduces buyer confusion about dimensions.
Consistent, properly formatted listing photos are one of the highest-leverage improvements a seller can make. The specs are stable — set up a one-time batch conversion workflow and every future product shoot goes straight from camera to Etsy-ready. Free tier covers 1,000 conversions/month.