The first time I lost a client file to a bad export, it wasn’t because I made a careless mistake. It was because I trusted a manual process I’d done a hundred times before. A 47-image e-commerce shoot, resized and sharpened by hand, delivered at the wrong color profile because I’d forgotten to convert one batch from Adobe RGB to sRGB. The client’s web team caught it. I didn’t. That was thirteen years ago, and I’ve been building automated export workflows ever since.

If you’re still exporting files manually, folder by folder, checking settings each time, you’re not being thorough. You’re accumulating risk.

What Actually Happens When You Export Without a Defined Action Stack

Most photographers understand export settings as a checklist: file format, resolution, color profile, sharpening. What they underestimate is how many points of failure exist between finishing a retouch and delivering a final file. Photoshop’s Export As dialog, for example, doesn’t remember your last-used sharpening level. Save for Web (Legacy) uses a different color rendering path than Export As. If you’re working across both, which a lot of people do without realizing it, you can end up with inconsistent output even from the same source file.

The bigger issue is color profile handling. When you export a 16-bit ProPhoto RGB file to JPEG without converting to sRGB, the embedded profile either gets stripped or misread by most browsers and e-commerce platforms. The colors shift, often subtly enough that you won’t catch it on a calibrated monitor but obviously enough that it looks wrong on a client’s laptop screen. That’s not a color science problem. That’s an automation problem. A properly built action removes the decision from your hands entirely.

Building the Export Action Stack: Format, Profile, and Sharpening in That Order

I run a three-stage export action for almost every client deliverable. The order matters.

First, flatten and convert. The action starts with Image > Flatten Image, then Edit > Convert to Profile, targeting sRGB IEC61966-2.1 with Relative Colorimetric intent and black point compensation checked. Perceptual intent is fine for print, but for screen deliverables, Relative Colorimetric preserves your highlight detail more faithfully.

Second, resize conditionally. For e-commerce clients, I work to a 2000px long-edge standard at 72 PPI. The action uses Image > Image Size with Resample set to Preserve Details 2.0 for downscaling from high-res captures. If you’re downsampling from a 50-megapixel file, Preserve Details 2.0 handles edge retention better than Bicubic Sharper in most real-world tests I’ve run, particularly on product texture and fabric.

Third, apply output sharpening. I use a separate sharpening action layered underneath, built around an Unsharp Mask pass: Amount 65, Radius 0.8, Threshold 3. That’s a conservative setting tuned for 2000px JPEG output at standard web viewing distances. If you’re outputting for print at 300 PPI, those numbers change significantly, and you should have a separate action for that rather than trying to build a one-size-fits-all solution.

The whole stack runs in under four seconds per image.

Batch Processing: Where the Action Stack Becomes a System

An action running on a single file is useful. The same action running on 400 files while you’re on a client call is a business model.

File > Automate > Batch is where the action stack becomes a workflow. The settings that matter most: set Source to Folder, point it at your retouched PSD directory, check Suppress File Open Options Dialogs and Suppress Color Profile Warnings. Without those two boxes checked, Photoshop will stop and prompt you every time it encounters a file with a non-matching profile, which defeats the entire purpose.

For destination, I use Save and Close only when I’ve already duplicated the source folder, never on originals. I learned that discipline the hard way. My backup system now runs on a mirrored NAS with an offsite copy on Backblaze B2, which costs me about $7 a month for the cloud tier I need. The redundancy is cheap compared to the alternative.

Name the output files consistently. I use a token string in the Batch dialog: [document name] + underscore + two-digit serial number + underscore + “WEB” + extension. That naming convention makes it immediately clear what stage of processing a file is at without opening it.

The Weekend I Built a System That Processed 500 Shots in One Afternoon

A few years into running my own consultancy, I landed a seasonal catalog job: 500 product shots, all needing resize, color correction, background cleanup, and final export for both web and print. I had four days. I spent the first weekend building the action stack and batch workflow rather than starting the retouching. My business partner at the time thought I was stalling.

By day three, I ran the full web export batch while eating lunch. 500 files, consistent color profiles, correct dimensions, output sharpening applied, named and sorted by product category. Forty-seven minutes of processing time. I used the rest of that afternoon to do final QC, which is the one step I don’t automate.

That job took me 22 hours of actual working time. Without the batch system, based on my per-image average from manual workflows, it would have been closer to 38. I track this stuff obsessively, and the numbers don’t lie.

QC as the Final Non-Negotiable Step

The only thing I won’t automate is the final check. After every batch export, I open a random 10 percent sample in Preview, check color rendering against a reference image, verify file sizes are landing in the expected range (a properly optimized 2000px JPEG should sit between 800KB and 1.4MB depending on content complexity), and confirm filenames match the delivery manifest.

If something is off, it’s almost always a source file issue, not an action issue. A well-built action is deterministic. It does exactly what you programmed it to do, every time. The failure modes in post-production workflows are almost always upstream: wrong source profile, wrong source resolution, inconsistent naming at the capture stage.

Build the action once, build it carefully, and let it protect you from yourself.