Wash: Blog Manager handles automatic image and file synchronization from WordPress to Shopify, including optimization, CDN delivery, and proper URL replacement.
How Image Sync Works
Sync Process
WordPress Media Library
│
▼
┌─────────────────────┐
│ Image Detection │
│ - Featured image │
│ - In-content images │
│ - Gallery images │
│ - ACF image fields │
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ Processing │
│ - Resize (optional) │
│ - Optimize │
│ - Format conversion │
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ Upload to Shopify │
│ - Files API │
│ - CDN storage │
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ URL Replacement │
│ - Update content │
│ - Update metafields │
└─────────────────────┘
What Gets Synced
| Image Type | Auto-Synced | Notes |
|---|---|---|
| Featured image | Yes | Becomes article image |
| Content images | Yes | URLs replaced with Shopify CDN |
| Galleries | Yes | Each image uploaded |
| ACF images | Yes | If mapping configured |
| Background images (CSS) | No | Must be manual |
| External URLs | No | Already hosted elsewhere |
Configuration
Enable Image Sync
- Go to Wash: Blog Manager > Settings
- Find Images & Files section
- Toggle Enable Image Sync to On
Image Settings
| Setting | Description | Default |
|---|---|---|
| Sync featured images | Include post featured image | On |
| Sync content images | Upload images from post content | On |
| Sync galleries | Upload gallery images | On |
| Max width | Resize images wider than this | 2048px |
| Max height | Resize images taller than this | 2048px |
| Quality | JPEG compression (60-100) | 85 |
| Convert to WebP | Use modern format | On |
| Preserve original | Keep original in Shopify | Off |
File Settings
| Setting | Description | Default |
|---|---|---|
| Sync attachments | Include PDF, docs, etc. | Off |
| Max file size | Skip files larger than | 20MB |
| Allowed types | File extensions to sync | pdf, doc, docx |
Image Processing
Automatic Optimization
Wash: Blog Manager optimizes images during sync:
Original Image (5MB, 4000x3000)
│
▼
Resized (max 2048px wide)
│
▼
Compressed (quality 85)
│
▼
Converted to WebP (if enabled)
│
▼
Uploaded to Shopify (500KB)
Size Limits
| Constraint | Limit |
|---|---|
| Max file size | 20 MB |
| Max dimensions | 4472 x 4472 px |
| Min dimensions | No limit |
| Recommended | 2048px max width |
Supported Formats
Input (WordPress):- JPEG / JPG
- PNG
- GIF (static and animated)
- WebP
- BMP
- SVG (limited support)
- JPEG (converted from most formats)
- WebP (if enabled)
- PNG (if transparency needed)
- GIF (animated preserved)
URL Handling
Automatic URL Replacement
Content image URLs are automatically updated:
Before (WordPress):<img src="https://yourblog.com/wp-content/uploads/2024/01/hero-image.jpg" />
After (Shopify):
<img src="https://cdn.shopify.com/s/files/1/0123/4567/8901/files/hero-image.jpg" />
Featured Image
WordPress featured image becomes Shopify article image:
{{ article.image | image_url: width: 800 }}
Responsive Images
Wash: Blog Manager preserves responsive image markup:
WordPress srcset:<img
src="image-800.jpg"
srcset="image-400.jpg 400w, image-800.jpg 800w, image-1200.jpg 1200w"
/>
Shopify (using image_url filter):
<img
src="{{ image | image_url: width: 800 }}"
srcset="
{{ image | image_url: width: 400 }} 400w,
{{ image | image_url: width: 800 }} 800w,
{{ image | image_url: width: 1200 }} 1200w
"
/>
Managing Images
Image Dashboard
View synced images:
- Go to Wash: Blog Manager > Media
- See list of synced images
┌──────────────────────────────────────────────────────────────────┐
│ Synced Media │
├────────────────┬──────────┬───────────┬───────────┬─────────────┤
│ Image │ Original │ Optimized │ Status │ Article │
├────────────────┼──────────┼───────────┼───────────┼─────────────┤
│ hero-image.jpg │ 2.5 MB │ 450 KB │ ✓ Synced │ Post Title │
│ product-1.png │ 1.8 MB │ 320 KB │ ✓ Synced │ Post Title │
│ infographic... │ 5.2 MB │ Error │ ⚠ Failed │ Post Title │
└────────────────┴──────────┴───────────┴───────────┴─────────────┘
Re-sync Images
To re-upload images:
- Select article(s) in Wash: Blog Manager > Posts
- Click Re-sync Images
- Wait for processing
Clear Image Cache
Remove cached image data:
- Go to Wash: Blog Manager > Settings > Advanced
- Click Clear Image Cache
- Next sync will re-process all images
Advanced Features
Lazy Loading
Wash: Blog Manager preserves lazy loading attributes:
<img src="image.jpg" loading="lazy" />
Alt Text Sync
Image alt text is preserved:
<!-- WordPress -->
<img src="image.jpg" alt="Product description" />
<!-- Shopify -->
<img src="cdn-image.jpg" alt="Product description" />
Configure alt text handling:
| Option | Behavior |
|---|---|
| Preserve | Keep WordPress alt text |
| Generate | Use filename if empty |
| Override | Use post title |
Caption Sync
Figure captions are converted:
WordPress:<figure>
<img src="image.jpg" alt="Description" />
<figcaption>Image caption text</figcaption>
</figure>
Shopify (preserved):
<figure>
<img src="cdn-image.jpg" alt="Description" />
<figcaption>Image caption text</figcaption>
</figure>
External Images
By default, external images are not synced:
<!-- Not synced - already on external CDN -->
<img src="https://images.unsplash.com/photo-123456.jpg" />
Option: Enable Internalize External Images to download and re-upload external images.
File Attachments
Supported File Types
| Type | Extensions | Sync Support |
|---|---|---|
| Documents | pdf, doc, docx | Yes |
| Spreadsheets | xls, xlsx, csv | Yes |
| Presentations | ppt, pptx | Yes |
| Archives | zip | Yes |
| Audio | mp3, wav | Yes (limited) |
| Video | mp4 | No (size limits) |
File Sync Configuration
- Go to Wash: Blog Manager > Settings > Files
- Enable Sync Attachments
- Select allowed file types
- Set size limits
Linking to Files
Files are uploaded to Shopify's Files section:
<a href="{{ 'document.pdf' | file_url }}">Download PDF</a>
Performance Optimization
Batch Processing
Large image sets are processed in batches:
100 images to sync
├── Batch 1: images 1-20 (processing...)
├── Batch 2: images 21-40 (queued)
├── Batch 3: images 41-60 (queued)
├── Batch 4: images 61-80 (queued)
└── Batch 5: images 81-100 (queued)
CDN Benefits
Shopify's CDN provides:
- Global edge locations
- Automatic WebP serving
- Responsive image transforms
- Fast delivery
Image Transform Parameters
In your theme, use Shopify's image_url filter:
{{ image | image_url: width: 400 }}
{{ image | image_url: height: 300 }}
{{ image | image_url: width: 400, crop: 'center' }}
Troubleshooting
Image Not Uploading
Check:- Image file size under 20MB
- Supported format
- WordPress media library accessible
- Shopify API not rate limited
Image Quality Issues
If images look worse:- Increase quality setting (85-95)
- Disable WebP conversion
- Increase max dimensions
- Check original image quality
Broken Images After Sync
Check:- URL replacement completed
- Article content saved
- No caching issues (clear cache)
Sync Taking Too Long
Solutions:- Reduce max image dimensions
- Enable batch processing
- Sync during low-traffic times
- Reduce number of images per post
File Size Exceeded
Error: "File exceeds 20MB limit" Fix:- Optimize image before upload to WordPress
- Enable compression in settings
- Reduce max dimensions
Best Practices
- Optimize before upload - Use optimized images in WordPress
- Use descriptive filenames - Better SEO and organization
- Add alt text - Accessibility and SEO
- Set appropriate dimensions - Don't upload 6000px images for 800px display
- Use WebP - Modern format, better compression
- Monitor sync status - Check for failed uploads
- Clean up unused images - Reduce storage costs