Skip to content
HotelSEO Lab
← The Lab
Photography & Video Distribution

A File-Naming and Versioning System That Keeps Your Hotel Photo Library Sane

The exact naming convention and version-control scheme I use so your current pool photo is the one that ends up on Expedia, your site, and Google, not a three-year-old stale asset.

HotelSEO LabJune 16, 2026 10 min read

If you have ever watched a guest screenshot your Expedia listing and ask why the pool looks nothing like the pool they are standing next to, this post is for you. I have seen it more times than I can count: a property finishes a six-figure renovation, updates the website, and then forgets that a 2019 photo of the old pool deck is still riding along on three OTA listings and the GBP. The guest booked the old pool. The new pool is gorgeous. Nobody is happy.

Almost every time, the root cause is not laziness or bad intent. It is that nobody on the team could confidently answer one question: which file is the current one? When the answer is unclear, people grab whatever is on the desktop, whatever is in the email thread, or whatever the photographer sent two years ago. Stale assets are a filing problem dressed up as a marketing problem.

So let me share the naming and version-control scheme I set up for hotels. It is unglamorous. It is also the single cheapest insurance policy you will ever buy against an embarrassing listing.

Why this is a distribution problem, not a photography problem

You can hire the best architectural photographer in Florida and still end up with the wrong image on Booking.com. The photos are not the issue. The issue is what happens after the shoot, when forty raw files become four hundred crops, exports, and resizes scattered across Dropbox, a Google Drive, somebody’s phone, the PMS, and the channel manager.

Every place your hotel shows up pulls images from a different bucket:

When those buckets drift apart, your brand looks inconsistent, and inconsistency quietly costs you. A guest comparing your direct site to your OTA listing and seeing two different pools has every reason to distrust the cheaper-looking option. That is exactly the kind of friction that pushes a booking back toward the OTA, which is the opposite of what we want when we are trying to win back more direct bookings.

The wrong photo on an OTA is rarely a creative failure. It is a version-control failure. Fix the filing system and 90 percent of stale-asset disasters disappear on their own.

The naming convention, piece by piece

Here is the pattern I use. It is deliberately flat, lowercase, and hyphenated, because that survives being uploaded to every system on earth without getting mangled.

property-space-descriptor-year-version.ext

A few real-shaped examples:

grandbayhotel-pool-evening-2026-v2.jpg
grandbayhotel-suite-king-balcony-2026-v1.jpg
grandbayhotel-lobby-checkin-2025-v3.jpg
grandbayhotel-rooftopbar-sunset-2026-v1.jpg

Let me break down each slot, because every one of them is earning its keep.

1. Property

A short, consistent property slug. If you run one hotel, this feels redundant, but the second you share files with a photographer, an agency like mine, or a sister property, that prefix stops two pool-evening files from colliding. Pick one slug and never change it.

2. Space

The physical area: pool, lobby, suite-king, rooftopbar, spa, gym, restaurant. Be specific enough that someone who has never visited can guess what they will see. room is useless. suite-king-cornerview is gold.

3. Descriptor

The thing that makes this shot different from the other twelve shots of the same space: evening, sunset, detail, aerial, winter, holiday, wide. This is also where light, honest image SEO sneaks in, because these descriptors are exactly the words a human would search.

4. Year

The four-digit year of the shoot or the major edit. This one slot does more work than any other. The instant you see 2021 in a filename, you know to be suspicious. It turns “is this current?” from a guess into a glance.

5. Version

v1, v2, v3. You increment this only on a real, approved change: a recrop, a color regrade, a reshoot of the same angle. The current version is the highest number that lives in the master folder. Everything below it gets retired (more on that in a second).

SlotExampleWhat it answers
propertygrandbayhotelWhose asset is this?
spacepoolWhere in the hotel?
descriptoreveningWhich shot of that space?
year2026How old is it?
versionv2Is it the latest approved cut?

The folder structure that makes the names work

A naming convention without a folder rule is half a system. People will still hoard duplicates. So I pair the names with one hard rule:

There is exactly one master folder, and it only ever contains current, approved, ready-to-distribute files.

I structure it like this:

/hotel-photos
  /00-master-current      <- the ONLY folder anyone distributes from
  /01-archive             <- every retired version, never deleted
  /02-raw-and-working     <- photographer raws, edits in progress
  /03-incoming            <- new files awaiting review

The workflow is simple enough to explain to a part-time front-desk hire:

  1. New photos land in 03-incoming.
  2. Someone with authority reviews and approves them.
  3. The approved file gets the proper name and moves to 00-master-current.
  4. The file it replaces moves to 01-archive. It is never deleted, but it is no longer in the room where distribution happens.

That fourth step is the whole game. The reason a 2019 pool photo ends up on Expedia is that the 2019 file and the 2026 file were sitting in the same folder, and the person uploading grabbed the wrong one. If retired versions physically leave the master folder, that mistake becomes almost impossible to make.

The master folder is a clean room. If a file is in there, it is safe to send anywhere. If it is not in there, it does not get distributed. No exceptions, no “just this once” off the desktop.

A tiny change log beats your memory every time

I keep a plain text or spreadsheet log next to the master folder. Nothing fancy. Five columns:

DateFileChangeApproved byPushed to
2026-05-02grandbayhotel-pool-evening-2026-v2.jpgReshoot after deck remodelGMSite, GBP, Expedia, Booking
2026-05-02grandbayhotel-pool-evening-2025-v1.jpgRetired to archiveGMRemoved from all channels

That last column, Pushed to, is the unsung hero. It is your checklist of every place an image lives. When you swap the pool photo, you do not have to remember where the old one was hiding. The log tells you: site, GBP, Expedia, Booking. You go remove and replace the old one in each, and you tick them off.

This is also the moment most stale-asset problems are actually born, because people update the website and stop. The website is the easy one. The OTA extranets and metasearch feeds are where old photos quietly survive for years. If you want the bigger picture on why OTA listings drift out of sync with your own site, I get into it in how OTAs steal search and in my piece on why your hotel ranks below the OTAs for your own name.

Why this also helps your SEO and your AI visibility

I am an SEO before anything else, so I would be lying if I pretended this was purely an organizational nicety. Clean, descriptive, dated file names give you small but real wins:

There is a real and growing search behavior here, too. The volume around AI-driven discovery (aeo at 27,100 monthly US searches, generative engine optimization at 5,400) tells you buyers and operators are increasingly thinking about how machines read their content. Photos are content. The machines read them, and they read the chaos when your library is a mess.

Rolling this out without a giant project

You do not need to re-catalog ten years of photos this week. Here is the realistic on-ramp I give hotels:

  1. Create the four folders today. Five minutes. Make the master folder the law.
  2. Name correctly going forward. Every new shoot uses the convention. Do not boil the ocean retroactively.
  3. Backfill only what is live. Identify the photos currently on your site, GBP, and OTA listings. Rename and version just those, and log where each one lives. That is your true exposure, and it is a much smaller pile than your whole archive.
  4. Audit the OTA extranets once a quarter. This is the step that prevents the Expedia surprise. Compare what is live on each channel against your master folder.

If even that feels like a lot, this is genuinely the kind of unglamorous backend work my team handles as part of content and reputation management, alongside the broader book-direct math of why direct guests are worth defending.

The payoff

A naming and versioning system will not get you a number-one ranking, and it is not a growth hack. What it does is quieter and more durable: it makes sure the best version of your hotel is the version every guest sees, on every surface, all the time. It closes the gap between the property you actually run and the property the internet thinks you run.

That gap is where direct bookings leak out and OTA dependence creeps in. Closing it is one of the highest-leverage, lowest-cost things you can do this quarter, and you can start with four empty folders.

If you would rather hand the whole mess to someone who does this for boutique hotels every day, that is exactly what I do. Book a call and we will audit where your stale assets are hiding and get your photo distribution under control, or take a look at how I approach conversion-focused direct booking so the clean library actually turns into reservations.

FAQ

Quick answers

What is the best file naming convention for hotel photos?

Use a flat, lowercase, hyphenated pattern that encodes property, space, descriptor, year, and version, like grandbayhotel-pool-evening-2026-v2.jpg. It sorts cleanly, tells you the date and version at a glance, and prevents the wrong asset from going out to OTAs and your site.

How do I stop old hotel photos from showing up on Expedia or Booking.com?

Most stale-asset disasters happen because nobody can tell which file is current. A dated, versioned naming convention plus one canonical master folder fixes the source problem, so whoever uploads to the OTA extranet is always grabbing the latest approved image.

Should hotel photo file names include keywords for SEO?

On your own website, yes, a descriptive file name like boutique-hotel-rooftop-bar-orlando.jpg gives Google a small but real signal. The naming system here doubles as light image SEO because the descriptors are already human-readable and keyword-aware.

How many versions of a hotel photo should I keep?

Keep every approved version in an archive but only ever expose one current version per space in your live master folder. Increment the version number on real edits, and retire the previous file to archive so nobody accidentally distributes it.

Keep reading

More from the Lab

Free intro call

Let's go find out why the OTAs are outranking you for your own name.

20 free minutes. We'll look at your hotel live, show you where you're invisible — on Google and in the AI answers — and tell you straight whether we can help.

No lock-in · No 12-month handcuffs · You talk to the strategist