How to build a searchable race gallery in SmugMug

Tag your race photos with TagMyRun, upload them to SmugMug, and turn on one content block. Runners can then find themselves by bib number — no plugin, no custom code.

·6 min read

If you've run a batch of race photos through TagMyRun, every bib number it detected is already embedded in the photo — written into the standard IPTC keyword field that most photo platforms have indexed for the better part of two decades.

SmugMug is one of those platforms. Upload a folder of tagged photos and SmugMug parses the keywords automatically. The last piece — letting runners actually search the gallery by bib number — takes a single content block and one click to publish. This post walks through the whole flow end to end.

Prerequisite. This guide assumes you've already tagged your photos with TagMyRun (desktop or web app). If you haven't, do that first — bib numbers need to be in the file's IPTC keywords before SmugMug can index them.

1. Create a gallery

From the SmugMug dashboard, hit Create a Gallery. A gallery is the unit SmugMug indexes for search — you'll point runners at this gallery's URL once it's live.

The Getting Started panel on a fresh SmugMug account. Click Create a Gallery.

2. Open the new gallery

SmugMug drops you in the Organize view. The new gallery sits under your site homepage, marked Unlisted by default — meaning it's reachable by link but not surfaced in your public site navigation. Click into it.

Your new gallery, still empty. Click the thumbnail to open it.

3. Upload your tagged photos

An empty gallery shows a single Upload button in the middle of the page. Click it.

Empty galleries get a centered Upload prompt.

The upload dialog accepts drag-and-drop from your file manager, or you can use Browse Computer. Drop in the folder of photos you tagged with TagMyRun.

Drag a folder of TagMyRun-processed photos straight onto this panel.

Files upload in parallel. SmugMug parses metadata as each one arrives, so by the time the progress bar finishes, the bib keywords are already in their index.

Parallel upload. SmugMug reads the IPTC keywords as each file lands.

4. Confirm the gallery is populated

Once the upload finishes you'll see every photo as a thumbnail in the Organize view. This is the same grid runners will see when they land on the gallery — minus the editor chrome.

The gallery, populated. Bibs are visible to a human eye and to SmugMug's keyword index.

5. Verify the bib keywords are in place

This is the step worth pausing on, because everything downstream depends on it. Open any single photo in the gallery. On the left, SmugMug shows a Keywords panel — and the bib number TagMyRun detected sits right there, written into the file's IPTC metadata.

Bib 2066, visible on the runner, present as a SmugMug keyword. No manual entry — TagMyRun wrote it during tagging.

If you see the bib number here, the rest of the workflow is purely about exposing what SmugMug already knows. If you don't see it, the photos weren't tagged before upload — re-export them through TagMyRun and replace the files in the gallery.

6. Open the design customizer

Head back to the gallery and click View on Site to see the public-facing version. From there, click Customize Design in the top-right toolbar. SmugMug's gallery search isn't a setting — it's a content block you drop onto the page, so it lives inside the design customizer rather than the gallery settings.

From the public gallery view, open the design customizer.

First time in, SmugMug greets you with a welcome modal. Hit Get Started.

The customizer's first-run welcome.

7. Add the Search Box content block

In the right-hand panel, expand the Discovery section. You'll see three blocks: Search Box, Keyword Cloud, and Map. Drag Search Box onto the gallery page — anywhere above the photo grid works well.

The Discovery group in the content panel. Search Box is the one you want.

The block lands on the page immediately as a preview. You'll see a search input with a placeholder reading search for photos… — this is what runners will see and use.

Search box in place, in preview mode.

Why a content block, not a setting? SmugMug's design model is page-composable: you build the gallery page from blocks rather than toggling features on a settings screen. The upside is total control over where the search box appears — top of page, between sections, in a sidebar.

8. Publish the change

Click Done in the top-right. SmugMug asks whether to publish or save the draft — choose Publish Now to push the search box live to the gallery's public URL.

Publish Now goes live immediately. Save For Later keeps it as a draft only you can see.

9. Try it as a runner would

Open the gallery's public URL — or just exit the editor — and type a bib number into the search box. SmugMug returns only the photos whose IPTC keywords contain that number.

Search 325, get the runner wearing 325. The bib in the photo is the bib in the search box.

That's the whole loop. A runner who finished your event can land on the gallery, type their number, and see only their own photos — without you tagging anyone by hand, building a database, or installing a plugin.

What you're not doing — and why that matters

A few things this workflow deliberately doesn't require:

  • No face recognition. Runners are identified by the number they consented to wear, not by their face. No biometric data, no consent flow, no opt-out database to manage. We wrote up the full reasoning here.
  • No SmugMug plugin. Search is a built-in SmugMug feature on every paid plan. The only thing TagMyRun does is write the bib number into the standard metadata field SmugMug already reads.
  • No lock-in. The bib numbers live inside the photo files themselves. If you move the gallery to Pic-Time, PhotoShelter, Lightroom, or a self-hosted Immich instance later, every tag travels with the photo.

If you tag once with TagMyRun, the same keyword data drives search on every platform that respects IPTC — which is most of them. SmugMug is just the easiest place to demonstrate it end to end.