How the Online Batch File Renamer Works

Rename a whole shoot in the browser: build a naming pattern, preview every new filename, fix clashes, and download the set. Nothing is uploaded.

3 min readUpdated 12 Sep 2026

Filenames are the labels on a contact sheet. DSC_4471.jpg under every frame tells a client nothing they can use; hartley-kitchen-04.jpg tells them exactly which photograph you mean. Renaming a set before you lay it out is the cheapest thing you can do to make a sheet more useful.

The batch file renamer does it in the browser. Files are read locally and written back out locally — nothing is uploaded, which is the point when the files belong to a client.

Building a recipe

A recipe is an ordered list of rules applied to every filename in turn. Order matters: each rule operates on the result of the one before it.

  • Find and replace — strip the camera prefix, swap underscores for hyphens, fix a misspelled client name.
  • Add a prefix or suffix — the shoot slug at the front, the variant at the back.
  • Sequence numbers — renumber from 1 in the current order, with the padding you choose.
  • Case — force lowercase. Worth doing as a matter of course: mixed case causes real problems moving between Windows, macOS and a Linux web server.

The preview updates as you type and shows every old name against its new one, so you see the whole result before anything is written. That is the part that makes batch renaming safe — the failure mode of a bad rule is not one wrong file, it is four hundred.

Sequence numbers and padding

Pad to at least two digits, and to three if the set could ever pass a hundred. Without padding, anything that sorts alphabetically — which is most things, including your operating system's file browser — puts 10 immediately after 1:

UnpaddedPadded to 3
shoot-1.jpgshoot-001.jpg
shoot-10.jpgshoot-002.jpg
shoot-11.jpgshoot-003.jpg
shoot-2.jpgshoot-010.jpg

The left column is what a client sees when they open the folder, and it is why frame 2 ends up at the bottom of the contact sheet.

Conflicts

If a recipe would give two files the same name, the conflict is flagged in the preview and nothing is written until it is resolved. The usual cause is stripping too much — removing the camera's sequence number leaves forty files all called wedding.jpg. Add a sequence rule at the end and the collision disappears.

Conventions worth stealing

JobPatternExample
Wedding{couple}-{part}-{nnn}shah-reception-014.jpg
Property{address}-{room}-{nn}12-hartley-rd-kitchen-04.jpg
Editorial{publication}-{slug}-{nnn}observer-hydrogen-007.jpg
Archive{yyyy-mm-dd}-{slug}-{nnn}2026-04-18-lisbon-031.jpg

Three rules behind all of them: lowercase, hyphens rather than spaces or underscores, and the most significant thing first so alphabetical order is also useful order. Dates go yyyy-mm-dd for the same reason — it is the only format that sorts correctly.

Where it fits in the workflow

  1. Cull the take down to what the client will see.
  2. Export at around 1,600px on the long edge.
  3. Rename the set so the filenames describe the photographs.
  4. Drop the renamed folder into the contact sheet maker.
  5. Turn on filenames, set the grid, export the PDF.

Step three is the one people skip, and it is the one that decides whether the client can tell you which frames they want in a single sentence. The full contact sheet walkthrough picks up from step four.

Common questions

Can I batch rename files without installing software?
Yes. The batch file renamer runs in the browser: files are read from your machine, renamed locally, and written back out as downloads. Nothing is uploaded, so it is safe to use on client files.
How should I number photo files?
Pad sequence numbers to at least two digits, three if the set might exceed a hundred. Unpadded numbers sort alphabetically, which puts file 10 directly after file 1 and scrambles the order of your contact sheet.
Will renaming break the link to my raw files?
The tool writes renamed copies and leaves your originals alone. Keep the camera's original filenames recorded somewhere though, because they are what ties a delivered JPEG back to its raw file in your archive.

Keep reading