Last updated: Aug 29, 2025
Show outcomes, not noise. Use clean 4:3 visuals, avoid cluttered collages, and keep brand type/colors consistent. Pick thumbnails with clear hierarchy and minimal text; export sharp JPG/PNG and front-load your strongest work.
Best Practices Highlight results/outcomes; avoid cluttered collages. Use 4:3 high-resolution screenshots/mockups. Keep brand type/colors consistent across samples. Export crisp JPEG/PNG; avoid tiny text. Lead video case studies with the result; add captions. Pro Tips Include measurable impact (CTR, sales, speed gains). Add 1–2 annotated frames to explain decisions. Use whitespace to signal polish/seniority. Front-load your strongest work in the grid. Create repeatable covers for a cohesive profile. Visual Previews Portfolio Image (Recommended) 4:3 · JPG/PNG (Max 10 MB)
{ copied = true; $dispatch('copied', `Copied: ${$el.dataset.copy}`); setTimeout(()=>copied=false,1100) })
" data-copy="1000 x 750 px" type="button" class="inline-flex items-center gap-1 text-xs hover:text-primary dark:hover:text-white transition cursor-pointer" title="Copy dimensions" aria-label="Copy dimensions"> Copy Copied Preview shows relative aspect only. Export at the listed resolution for best quality.
Portfolio Image (Minimum) 4:3 · JPG/PNG (Max 10 MB)
{ copied = true; $dispatch('copied', `Copied: ${$el.dataset.copy}`); setTimeout(()=>copied=false,1100) })
" data-copy="400 x 300 px" type="button" class="inline-flex items-center gap-1 text-xs hover:text-primary dark:hover:text-white transition cursor-pointer" title="Copy dimensions" aria-label="Copy dimensions"> Copy Copied Preview shows relative aspect only. Export at the listed resolution for best quality.
Portfolio Image (Maximum) 4:3 · JPG/PNG (Max 10 MB)
{ copied = true; $dispatch('copied', `Copied: ${$el.dataset.copy}`); setTimeout(()=>copied=false,1100) })
" data-copy="4000 x 4000 px" type="button" class="inline-flex items-center gap-1 text-xs hover:text-primary dark:hover:text-white transition cursor-pointer" title="Copy dimensions" aria-label="Copy dimensions"> Copy Copied Preview shows relative aspect only. Export at the listed resolution for best quality.
Portfolio Thumbnails 5:4 · JPG/PNG
{ copied = true; $dispatch('copied', `Copied: ${$el.dataset.copy}`); setTimeout(()=>copied=false,1100) })
" data-copy="936 x 750 px" type="button" class="inline-flex items-center gap-1 text-xs hover:text-primary dark:hover:text-white transition cursor-pointer" title="Copy dimensions" aria-label="Copy dimensions"> Copy Copied Preview shows relative aspect only. Export at the listed resolution for best quality.
Agency Profile Images 10:1 · JPG/PNG
{ copied = true; $dispatch('copied', `Copied: ${$el.dataset.copy}`); setTimeout(()=>copied=false,1100) })
" data-copy="3200 x 320 px" type="button" class="inline-flex items-center gap-1 text-xs hover:text-primary dark:hover:text-white transition cursor-pointer" title="Copy dimensions" aria-label="Copy dimensions"> Copy Copied Preview shows relative aspect only. Export at the listed resolution for best quality.
Portfolio Video (Linked from YouTube) Aspect varies · MP4 (≤ 100 MB, ≤ 60 sec)
{ copied = true; $dispatch('copied', `Copied: ${$el.dataset.copy}`); setTimeout(()=>copied=false,1100) })
" data-copy="null x null px" type="button" class="inline-flex items-center gap-1 text-xs hover:text-primary dark:hover:text-white transition cursor-pointer" title="Copy dimensions" aria-label="Copy dimensions"> Copy Copied Preview shows relative aspect only. Export at the listed resolution for best quality.
Sizes Portfolio Image (Recommended) Dimensions: 1000 x 750 px {
copied = true;
$dispatch('copied', 'Copied: 1000 x 750 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-0 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj>
Aspect Ratio: 4:3
Format: JPG/PNG (Max 10 MB) Portfolio Image (Minimum) Dimensions: 400 x 300 px {
copied = true;
$dispatch('copied', 'Copied: 400 x 300 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-0 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj>
Aspect Ratio: 4:3
Format: JPG/PNG (Max 10 MB) Portfolio Image (Maximum) Dimensions: 4000 x 4000 px {
copied = true;
$dispatch('copied', 'Copied: 4000 x 4000 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-0 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj>
Aspect Ratio: 4:3
Format: JPG/PNG (Max 10 MB) Portfolio Thumbnails Dimensions: 936 x 750 px {
copied = true;
$dispatch('copied', 'Copied: 936 x 750 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-0 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj>
Aspect Ratio: 5:4
Format: JPG/PNG Agency Profile Images Dimensions: 3200 x 320 px {
copied = true;
$dispatch('copied', 'Copied: 3200 x 320 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-0 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj>
Aspect Ratio: 10:1
Format: JPG/PNG Portfolio Video (Linked from YouTube) Dimensions: null x null px {
copied = true;
$dispatch('copied', 'Copied: null x null px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-0 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj>
Aspect Ratio: Aspect varies
Format: MP4 (≤ 100 MB, ≤ 60 sec) Type Dimensions Aspect Ratio Format Portfolio Image (Recommended) 1000 x 750 px {
copied = true;
$dispatch('copied', 'Copied: 1000 x 750 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-4 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj> 4:3 JPG/PNG (Max 10 MB) Portfolio Image (Minimum) 400 x 300 px {
copied = true;
$dispatch('copied', 'Copied: 400 x 300 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-4 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj> 4:3 JPG/PNG (Max 10 MB) Portfolio Image (Maximum) 4000 x 4000 px {
copied = true;
$dispatch('copied', 'Copied: 4000 x 4000 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-4 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj> 4:3 JPG/PNG (Max 10 MB) Portfolio Thumbnails 936 x 750 px {
copied = true;
$dispatch('copied', 'Copied: 936 x 750 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-4 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj> 5:4 JPG/PNG Agency Profile Images 3200 x 320 px {
copied = true;
$dispatch('copied', 'Copied: 3200 x 320 px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-4 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj> 10:1 JPG/PNG Portfolio Video (Linked from YouTube) null x null px {
copied = true;
$dispatch('copied', 'Copied: null x null px');
setTimeout(()=>copied=false,1400)
})" type="button" class="absolute right-4 top-1/2 -translate-y-1/2 inline-flex items-center p-1 rounded text-gray-400 hover:text-primary transition cursor-pointer" aria-label="Copy dimensions" title="Copy dimensions" data-astro-cid-yvbahnfj> Aspect varies MP4 (≤ 100 MB, ≤ 60 sec)
FAQ What image size should I use for Upwork portfolios? 1000×750 (4:3) is recommended; Upwork supports 400×300 to 4000×4000.
How do I make thumbnails stand out? Use clear hierarchy, minimal text, high contrast, and avoid thin details that compress poorly.
Can I add video case studies? Yes. Keep them concise, lead with outcomes, and include captions for sound-off viewing.
show = false, 1400)
" x-show="show" x-cloak x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 translate-y-2" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-2" class="fixed inset-x-0 bottom-6 z-[60] flex justify-center px-4" role="status" aria-live="polite" data-astro-cid-yvbahnfj>
Upwork Media Dimensions | SocialSpec
Upwork
Portfolio Image (Recommended): 1000 x 750 px • Portfolio Image (Minimum): 400 x 300 px • Portfolio Image (Maximum): 4000 x 4000 px • Portfolio Thumbnails: 936 x 750 px • Agency Profile Images: 3200 x 320 px • Portfolio Video (Linked from YouTube): null x null px
Highlight results/outcomes; avoid cluttered collages. • Use 4:3 high-resolution screenshots/mockups. • Keep brand type/colors consistent across samples. • Export crisp JPEG/PNG; avoid tiny text. • Lead video case studies with the result; add captions.
Include measurable impact (CTR, sales, speed gains). • Add 1–2 annotated frames to explain decisions. • Use whitespace to signal polish/seniority. • Front-load your strongest work in the grid. • Create repeatable covers for a cohesive profile.
© 2025 SocialSpec. All rights reserved.
A product of Jay McBride Digital
· Home
· Contact