Last spring I delivered 847 retouched product images to an e-commerce client in a single business day. Not because I’m particularly fast, or because I have a team. Because every export decision, every file naming convention, every color profile handoff had been decided weeks earlier and baked into a single action sequence. The client asked how I turned the job around so quickly. I told them I’d done the hard work on a Tuesday afternoon six months prior when no one was paying me for it.

That’s the real secret to export workflows. The time savings don’t happen during the job. They happen before it.

The Hidden Cost of “Just Exporting” Without a System

Most photographers and retouchers treat export as an afterthought. You finish your retouch, you hit Save As, you pick a quality setting somewhere between 8 and 12, and you move on. The problem is that “somewhere between 8 and 12” in JPEG quality is not a neutral choice. Quality 10 in Photoshop produces a file roughly 2.5 to 3 times larger than Quality 8, with a visual difference that is, in most web delivery contexts, completely invisible. For a 500-image job, that’s the difference between a 4 GB delivery folder and an 11 GB one. That matters to your client’s development team. It matters to their CDN costs. It starts to matter to you when you’re sitting at 97% on a ZIP archive with five minutes before a deadline.

The deeper issue is consistency. When your export settings live in your head rather than in a defined action or droplet, they drift. Different days, different moods, different quality settings. Clients notice when image 312 is noticeably softer than image 311.

What’s Actually Happening When You Export

Photoshop’s Save for Web (still accessible via Alt+Shift+Ctrl+S, and still better than Export As for most production work) gives you explicit control over three things that matter most: compression algorithm, color profile handling, and metadata stripping.

JPEG compression in Photoshop uses a 0-100 scale internally, but the quality dropdown maps to preset ranges. Quality 60 in the 0-100 scale is a reasonable floor for most e-commerce product shots at 1500px on the long edge. Below that, you start seeing macroblocking artifacts in gradients, particularly on backgrounds that have been cleaned up in post. Above 80, you’re paying file size penalties without meaningful quality returns for screen delivery.

Color profile handling is where I see the most errors in files coming from other retouchers. If you’re delivering for web and you embed an AdobeRGB or ProPhoto profile in a JPEG, browsers that don’t honor color management will render those images with a color shift, usually a subtle desaturation and a slight warm cast. Convert to sRGB on export. Always. The only exception is if your client has specifically confirmed their platform is color-managed end to end, and in my experience with e-commerce brands, it almost never is.

Metadata stripping is both a file size and a legal consideration. A full EXIF block can add 50-80KB to a file. Across a 500-image delivery, that’s real data. More importantly, embedded GPS coordinates, camera serial numbers, and copyright fields belong to you, not your client, and you get to decide what leaves your studio.

Building the Action That Does the Work

Here’s the structure I use for a standard e-commerce export action. This runs inside a Batch process pointed at a folder of flattened, color-corrected TIFFs:

Step one is a canvas size check using a conditional action to flag anything that doesn’t match the agreed-upon pixel dimensions, typically 2000x2000px for square product shots. Step two is a Convert to Profile command targeting sRGB IEC61966-2.1. Step three is a Save for Web command locked to JPEG, Quality 62, Optimized checked, metadata set to Copyright Only. Step four is a Close and Don’t Save on the original, leaving the TIFF untouched in the source folder.

The output folder uses a droplet-level naming convention built in the Batch dialog: client code, date in YYYYMMDD format, and a four-digit sequence number. That naming structure means files sort correctly in any operating system without renaming after the fact.

The whole sequence, once built, runs without a single keystroke from me. I set it going and make coffee.

The Job That Made Me Build This Properly

I learned scripting after spending an entire day manually cropping and resizing 200 images to three different output sizes for a catalog client. Eight hours. By hand. The files were all slightly different dimensions coming out of the tether, the client needed 800px, 400px, and 200px versions of each image, and I hadn’t built a system for it. I just sat there and did it, like a person who hadn’t yet figured out that computers are good at repetitive tasks.

The following weekend I built a three-output batch action that hit all three sizes in a single pass, using Fit Image rather than fixed resize to handle the dimension variance, and writing each size to a subfolder named for its pixel width. That job took me eight hours manually. The action runs it in about 22 minutes. I know because I tracked it. I track everything.

When to Override the Action (And When Not To)

There is one situation where I break from the automated export: when a client’s creative director is going to be reviewing hero images at 100% zoom on a calibrated display before approving them for print or large-format use. In that case I export TIFFs with no compression and the full working color profile intact, and I send them a separate sRGB JPEG set for the web preview. The action handles the JPEG set. The TIFFs I export manually and double-check individually. That’s not inefficiency, that’s knowing which part of the job actually requires human judgment.

Everything else runs through the system.

The single most important thing you can do for your export workflow is make one good decision once, build it into an action, and stop making that decision again. Your future self is not going to make better choices at 11pm on a deadline than your present self made on a calm Tuesday afternoon. Trust the system you built when you had time to think.