Product photography & image migration from WooCommerce to Shopify (2026)
How to migrate, optimize, and improve product photography when moving from WooCommerce to Shopify — image formats, alt text, re-upload strategy, CDN benefits, variant images, and photography best practices.
Product images are the most critical visual element in ecommerce — they drive purchase decisions more than any other factor for physical products. A WooCommerce to Shopify migration is both a risk (breaking image URLs, losing variant image associations) and an opportunity (upgrade to Shopify's superior CDN, fix alt text, improve image quality). Here's how to handle images professionally throughout your migration.
How WooCommerce stores product images
Understanding WooCommerce's image storage helps you plan the migration correctly:
- Images stored in:
/wp-content/uploads/YEAR/MONTH/filename.jpg - Multiple sizes generated on upload: WooCommerce creates thumbnail, medium, large, and product-specific sizes from each original image
- Product main image:
post_thumbnailvia postmeta (_thumbnail_id) - Product gallery images: stored as post attachment IDs in product meta (
_product_image_gallery) - Variation images: each variation can have its own image (stored separately)
- Export CSV: images are exported as URLs to the WooCommerce-generated sizes (usually -300x300 or -600x600), not the original
Image URL strategy during migration
Option A: Reference original WooCommerce URLs (quick but fragile)
- Keep WooCommerce hosting active
- Import products to Shopify with original WooCommerce image URLs pointing to
youroldsite.com/wp-content/uploads/... - Shopify fetches images from the WooCommerce server during product creation
- Risk: if WooCommerce hosting is cancelled, all images break permanently
- Use only as a temporary approach — plan to re-upload originals within 60 days
Option B: Download and re-upload to Shopify (recommended)
- Download all original images from WooCommerce server (via FTP, SFTP, or wp-content download)
- Upload originals to Shopify during product import (via API or CSV with local file URLs)
- Shopify then serves all images from its own CDN — no dependency on WooCommerce hosting
- Best practice: upload at original full resolution. Shopify CDN handles all resizing.
Option C: Shopify fetches from URL during CSV import
- Include image URLs in Shopify CSV import
- Shopify fetches and imports images during the import process
- Requirement: WooCommerce image URLs must be publicly accessible during import
- Limitation: if URL returns 404 or is blocked, image is skipped silently
Shopify's CDN and image handling
How Shopify serves images
- All uploaded product images are served from Shopify's CDN (Fastly)
- Shopify stores one master copy and generates size variants on demand via URL parameters
- URL format:
https://cdn.shopify.com/s/files/1/xxxx/xxxx/products/filename.jpg?v=TIMESTAMP&width=800 - WebP conversion: Shopify automatically serves WebP to browsers that support it (all modern browsers)
- Lazy loading: Shopify themes use native browser lazy loading for below-fold images
Image size best practices for Shopify upload
- Product images: Upload at 2048×2048px minimum (for zoom functionality). File size: 500KB–2MB acceptable; Shopify handles compression.
- Background images / hero images: 2000–2560px wide. Pre-compress to under 300KB using TinyPNG or Squoosh before upload.
- Collection images: 1200×600px minimum. Square or landscape. Shopify crops to theme's configured aspect ratio.
- Avoid: Files over 20MB (Shopify limit), CMYK color space (use sRGB), very low resolution (<600px)
- Format: JPG for photographs (smallest file size), PNG for logos/graphics with transparency, WebP (Shopify converts from JPG/PNG automatically)
Alt text migration
WooCommerce product images have alt text stored in WordPress. This alt text is critical for SEO and accessibility — Google uses image alt text as a ranking signal for image search and product discovery. Alt text is often lost in migrations.
Extracting alt text from WooCommerce
-- SQL to export product image alt text
SELECT
p.post_title as product_title,
a.post_title as image_title,
a.post_excerpt as image_caption,
am.meta_value as alt_text
FROM wp_posts p
JOIN wp_postmeta pm ON p.ID = pm.post_id AND pm.meta_key = '_thumbnail_id'
JOIN wp_posts a ON a.ID = pm.meta_value
JOIN wp_postmeta am ON a.ID = am.post_id AND am.meta_key = '_wp_attachment_image_alt'
WHERE p.post_type = 'product';
Alt text best practices for Shopify
- Set alt text when uploading images to Shopify via API:
imageCreate(productId, src, alt) - For bulk update after import: use Matrixify or Shopify Bulk Operations API to update image alt text
- Good alt text: "Blue leather Moleskine A5 notebook with elastic closure" (descriptive, not keyword-stuffed)
- Bad alt text: "notebook", "product image", or "IMG_1234"
- Include: product name, key features visible in the image, colour, material
Variant images
WooCommerce variable products assign images to specific variations. This must be preserved in Shopify:
How variant images work in Shopify
- Each product has a pool of images (up to 250)
- Each variant can be assigned one image from that pool
- When customer selects a variant (e.g., "Blue"), the product images switch to the image assigned to the Blue variant
- Images not assigned to a variant are shared across all variants (shown in gallery)
Migrating variant images from WooCommerce
- Export variant images from WooCommerce: each variation has
_thumbnail_idin wp_postmeta - Collect: variation ID → image URL mapping
- During Shopify product creation via API: upload all images first, then assign image IDs to variant IDs
- Via CSV: Shopify CSV doesn't support variant-image assignments directly — use Matrixify or API for this
- Post-import: manually assign variant images via Admin → Products → Edit product → Variants section (acceptable for small catalogs)
Image SEO improvements during migration
Migration is the ideal time to improve image SEO:
- File names: Rename image files before upload to include keywords:
blue-a5-notebook-dotted.jpginstead ofDSC_1234.jpg. Shopify stores the original filename and it appears in the CDN URL. - Structured data: Shopify's product pages include image URLs in Product schema JSON-LD automatically — ensure images are accessible (no access restrictions, no 404s).
- Google Image Search: Quality product images on a fast CDN improve ranking in Google Images, which drives purchase-intent traffic.
WooCommerce images that need attention
Images with watermarks from old service
- Some WooCommerce stores have supplier stock photos with supplier watermarks — migration is the prompt to source clean original images
- Remove watermarked images before migration; replace with clean versions
Very small or compressed images
- WooCommerce's multiple size generation often served 300×300px thumbnails; the original may be only 600×600px — insufficient for Shopify zoom
- Identify products where original images are too small: re-photograph or source new product photos
- Priority: top-selling products and homepage/collection featured products first
Image migration checklist
- Download all original product images from WooCommerce server (FTP/SFTP download of wp-content/uploads)
- Export alt text from WooCommerce database (SQL query above) before migration
- Audit image quality: identify products with small (<1000px), blurry, or watermarked images for re-photography
- Rename image files to SEO-friendly names before upload (lowercase, hyphens, descriptive)
- Compress hero/banner images before upload (TinyPNG or Squoosh)
- Upload at original/maximum resolution for all product images
- Set alt text during upload or batch-update after import
- Assign variant images correctly: colour/material variants need the correct image assigned
- Test zoom functionality post-migration: verify images are high enough resolution for Shopify zoom
- Verify all images load on CDN: spot-check 10% of products for broken image URLs
- Check Google Search Console: Image Coverage report for any indexing issues post-launch
The migration is the right time to invest in better product photography. Stores that re-photograph their top 20 products during migration consistently see conversion rate improvements beyond what the platform change alone would deliver. Shopify's CDN will serve even modest product photos better than a typical shared WordPress host, but the starting quality matters. A 2000×2000px photo on Shopify's Fastly CDN will perform better than the same 800×800px photo on WooCommerce's shared hosting — but a newly shot, well-lit 2000px photo will perform best of all.
Migrate your store with k-sync
Connect your WooCommerce store, validate your products, and push to Shopify in minutes. Free for up to 50 products.
Get started freeRelated reading
Migrating a luggage and travel accessories store from WooCommerce to Shopify (2026)
How to migrate a luggage, travel bags, or travel accessories WooCommerce store to Shopify — luggage specifications, airline compliance, TSA lock, warranty and durability claims, and luggage retail Shopify setup.
Migrating a motorcycle accessories store from WooCommerce to Shopify (2026)
How to migrate a motorcycle accessories, biker gear, or motorbike parts WooCommerce store to Shopify — helmet safety standards, CE-rated protective clothing, type approval for parts, fitment compatibility, and motorcycle retail Shopify setup.