Skip to content
HotelSEO Lab
← The Lab
Local Experiences & Partnerships

The Staycation Campaign That Filled My Weeknights With Guests Who Live 20 Minutes Away

How I built a local-resident staycation campaign with geo-fenced ads, resident rates, and amenity-led offers that turn nearby people into off-peak, direct weeknight bookings.

HotelSEO LabOctober 24, 2026 9 min read

I want to tell you about the booking channel almost every independent hotelier I meet is sitting on top of and ignoring: the people who live twenty minutes away.

Not the family flying in from three states over. Not the convention block. The person who drives past your porte-cochere on their commute, has never once considered staying with you, and would absolutely book a Tuesday night if you gave them a reason. That’s the staycation guest, and a few years back I got mildly obsessed with turning them into off-peak revenue. This post is the playbook I wish someone had handed me before I wasted a month spraying ads at the entire metro.

Fair warning up front: I’m going to get into the weeds. Radius rings, offer construction, the exact creative angles that converted, and the ones that flopped. If you want a one-paragraph “run a local promo” tip, this isn’t it.

Why locals are the most underrated demand you have

Here’s the math that made me a believer. A local guest costs you almost nothing to reach. No flights to compete with, no OTA standing between you and them, no “best price guarantee” arms race. They already know your city. Half the time they already know your restaurant or your rooftop bar. You’re not selling a destination, you’re selling a night off from their own house.

And critically, locals book direct more than anyone. They found you because they live here, not because they sorted Booking.com by price. That matters, because the OTAs take roughly 15-25% of every reservation they touch. When a local books straight through your site because they saw your geo-fenced ad and clicked your number, that’s margin you keep. I dig into the full cost of that channel mix in the book-direct math post, but the short version: every local you convert direct is one of the healthiest reservations on your books.

The independent hotelier’s biggest blind spot is treating “guests” as people who travel TO the city. Your softest weeknights get filled fastest by people who already live IN it.

This won’t make you OTA-free, and I’d be lying if I said any campaign does. What it does is shift your mix. More direct, off-peak revenue from locals means you lean on the OTAs a little less for the nights that actually hurt to leave empty.

Step one: stop targeting the whole metro

The first staycation campaign I ever ran, I targeted the entire designated market area. Twenty-something miles in every direction, one rate, one ad. It was a polite disappointment. The cost per booking was ugly and I couldn’t tell what was working.

The fix was treating geography like a real variable. I now run two radius rings, and they behave like totally different audiences:

Why two rings instead of one big blob? Because the message that lands on a 12-mile neighbor falls flat on a 35-mile weekender, and vice versa. Splitting them lets you write to each and, more importantly, see which ring actually books so you can move budget there.

Here’s how I think about the structure:

RingApprox. radiusWho they areLead angleBest nights to push
Inner10-15 miTrue locals, impulseAmenity + convenienceTue-Thu, shoulder season
Outer25-40 miMini-escape couples/familiesWeekend reset, treatThu-Sat, slow weekends
ExcludeYour own zip clusterExisting guests, staff, you

That exclusion row matters more than people expect. Geo-fence OUT your immediate block so you’re not burning impressions on your own neighborhood foot traffic, your staff, and the office park that’s never going to book a room.

Step two: build a resident rate that fills holes instead of digging them

The fear I hear constantly: “If I give locals a discount, I’m just training my own market to pay less.” Valid. A sloppy resident rate absolutely cannibalizes full-price demand. A disciplined one doesn’t, because you fence it to nights you were going to lose anyway.

My rules for a resident rate:

  1. Weeknights and shoulder season only. Never your peak Saturdays, never your festival weekend. The resident rate exists to convert empty Tuesdays, full stop.
  2. Require a believable local proof. A local ID or a utility bill at check-in, or a code distributed through a partner. Light friction, not a checkpoint. The fence just has to be real enough that it doesn’t leak.
  3. Keep it off the OTAs entirely. This is a direct-only rate. If it shows up on Booking.com you’ve defeated the entire point and handed away the commission you were trying to protect. Your direct booking engine is the only place it lives, which is exactly why your book-direct conversion path has to be clean and fast.
  4. Frame the value, don’t just slash the number. “Locals stay from $X” reads cheap. “Resident rate: your night off, [your town] price” reads like a perk. Same number, different psychology.

A resident rate isn’t a discount you advertise to your whole city. It’s a quiet key you hand to people who live close enough to use it on a night you’d otherwise eat.

Step three: lead with the amenity, not the room

Nobody local is dreaming about your standard king room. They have a perfectly good bed at home. What gets a local to drive over and pay you is the thing they don’t have at home.

So the offer should lead with the amenity, not the room category. The room is the delivery mechanism. The amenity is the reason. A few angles that have pulled well for properties I’ve worked with:

Notice these are all experiences, not discounts. That’s the whole game. You’re not the cheap option, you’re the easy escape that happens to be ten minutes away. If you want to go deeper on packaging experiences and partnerships, that’s the heart of what I cover in content and reputation work, because the story around the offer matters as much as the offer.

Step four: wire it so the campaign actually feeds search, not just ads

Here’s where most staycation pushes leave money on the table. They build a paid campaign and call it done. But a local who sees your pool cabana ad doesn’t always book on the spot, they Google you. They search “[your hotel] staycation,” “hotel with pool day pass near me,” “spa hotel [your town].” If you don’t show up cleanly for those, your own ad just sent business to whoever does.

So I treat the staycation campaign as half paid, half organic:

When the paid ads and the organic visibility point at the same landing page and the same offer, the campaign compounds. The ad creates demand, search captures the people who didn’t click immediately, and both feed your direct booking engine instead of an OTA.

What I’d actually launch first (if I were you, this month)

If you’re sitting on soft weeknights right now, here’s the minimum viable version I’d stand up:

  1. Pick ONE amenity-led angle that fits your property. Pool, spa, dinner, parents’ night, whatever’s strongest.
  2. Build one clean landing page with a resident rate fenced to Tue-Thu and shoulder season.
  3. Set up the two geo rings, exclude your own block, and split a small budget between them.
  4. Make sure your GBP, your landing page, and your booking widget all tell the same story and load fast.
  5. Run it two weeks, look at which ring books, kill the loser, double the winner.

Keep your claims honest while you do it. I can’t promise you a sold-out Tuesday, and anyone who guarantees you a number is selling you a fairy tale. What I can tell you is that locals are the cheapest audience you’ll ever reach, they book direct at unusually high rates, and they come back, which stacks the odds in your favor in a way almost nothing else off-peak does. The goal isn’t to escape the OTAs, it’s to need them a little less on the nights that hurt most.

If you want a hand mapping your rings, building the offer, and wiring it into search so it keeps paying after the ad budget stops, that’s exactly the kind of off-peak, direct-booking work I do. Book a call and let’s look at your softest nights together, or start with the book-direct CRO service if your booking path is where the leak is.

FAQ

Quick answers

What radius should I target for a local staycation campaign?

I usually run two rings: a tight 10-15 mile ring for true locals who can come on a whim, and a 25-40 mile ring for the weekend-escape crowd. Test both, then put budget behind whichever ring actually books.

Won't a resident rate just cannibalize my full-price bookings?

Only if you let it. I gate resident rates to weeknights and shoulder season, require proof of local zip at check-in, and never let the offer leak onto the OTAs. It fills nights that were going to sit empty anyway.

How do I prove someone is actually a local to get the rate?

Keep it light. A local ID or a utility bill at check-in is plenty, or just a booking code shared through a local partner. The goal is a believable fence, not a TSA checkpoint that scares people off.

Is a staycation campaign worth it for a small independent hotel?

If you have soft weeknights and any amenity worth driving for, yes. Locals are the cheapest audience you will ever reach, they book direct more often, and they come back. It is one of the highest-leverage off-peak plays I know.

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