How to rank for '[activity] in [city]': the local keyword playbook

“Rafting near Asheville.” “Kayak rentals Moab.” “Fly fishing guide Bozeman MT.”
These are the searches that matter most to your business. Not because they get the most traffic in absolute terms - they don’t. But the person typing them has already decided on the activity, already picked the destination, and is now looking for someone to take their money. A general search like “outdoor recreation” might come from anyone. “Whitewater rafting Chattanooga” comes from someone who is almost certainly about to book something.
Here is how to rank for these searches.
Start with keyword research, not assumptions
Most outdoor operators guess at what their customers search for. Don’t. Open a browser and spend an hour watching Google’s behavior.
Type your core activity and stop before you hit enter. The autocomplete dropdown is a live feed of what people actually search. “Kayaking in” returns a list of real, high-volume destinations. Work through every variation: “kayak rentals in [city],” “guided kayaking [city],” “kayaking near [city],” “kayaking [city] for beginners.” Write them all down.
Then open Google Keyword Planner - free with a Google Ads account - and paste your list in. You’re not looking for precise numbers; Google’s estimates are rough. You’re looking for relative volume and the keyword variations you missed. A term getting 1,000 searches a month in your area is worth a dedicated page. Fifty searches a month probably isn’t.
What you’re building is a keyword map: a spreadsheet with every [activity] + [location] combination you’ll eventually target, ranked roughly by volume and by how directly they match your actual trips.
One thing most operators skip: check the search results for your target terms before building anything. Who’s currently ranking? Other local operators? National directories like TripAdvisor? A city tourism page? That tells you how hard the climb is and what your page needs to beat what’s already there.
One page per keyword cluster
This is the structural decision that most outdoor businesses get wrong. They have a single “trips” page that mentions rafting, kayaking, and fishing in the same paragraph, then wonder why they don’t rank for any of them.
Google ranks pages, not websites. A page specifically about “whitewater rafting in the New River Gorge” competes against other pages about that exact thing. A generic trips page competes against nothing, because it matches nothing precisely.
Each primary keyword cluster needs its own permanent page. Not a blog post. A page that lives at a clean URL like /whitewater-rafting-new-river-gorge/ or /fly-fishing-guide-bozeman/, linked from your main navigation, treated as a core business page. This is your landing page that books trips. It has one job.
What counts as its own page? Any activity-and-geography combination with enough search volume to justify the work. A rafting company on two rivers might need separate pages for each river plus separate pages for specific trip types. A fishing guide working three drainages needs three location pages. The total ends up being more pages than feels comfortable. That’s fine. Each one targets a different search and serves a different customer.
What goes on a local keyword page
Your primary keyword goes in the title tag, the H1, and the first sentence of the body. Not buried in the third paragraph.
The part most pages get wrong is location depth. A page targeting “fly fishing in Bozeman” needs to talk about specific rivers near Bozeman - the Gallatin, the Madison, the Yellowstone - the species, the seasons, the access points. Generic activity descriptions could apply to any market. That local specificity is what Google uses to judge whether your page actually knows what it’s talking about. It’s also what signals to searchers that you’re a real local operator, not a directory entry.
Logistics matter. Where to meet, what to bring, what’s included, how long it takes, minimum age requirements, cancellation policy. Searchers want this. Pages that answer practical questions hold people longer, and time-on-page is a ranking signal.
Make the booking path obvious. A button, a form, a phone number. Someone who came from “kayak rentals in Moab” is not browsing. They want to book.
On photos: name image files with the location and activity (nantahala-river-rafting-family.jpg), write descriptive alt text, and use photos from your actual trips, not stock images. Names and alt text that include the location and activity get indexed. Generic file names don’t.
The technical pieces
Good content on a page with poor technical structure still won’t rank.
Put the keyword in the URL. /whitewater-rafting-new-river-gorge/ beats /trips/trip-1/ by a large margin. Lowercase, hyphen-separated, descriptive but short.
Write a meta description under 160 characters that includes the keyword and gives a reason to click. “Guided half-day and full-day rafting trips on the New River Gorge, WV. Book online.” That’s it.
Use H2 headers to structure the page and work in related phrases naturally. “What to expect on a New River rafting trip,” “When to go,” “Pricing and trip options” - each header answers a question a searcher might have.
Your business name, address, and phone number should appear on the page and match exactly what’s in your Google Business Profile. Consistent NAP across your site and your Google listing is a core local ranking signal. Schema markup lets you encode that information in a format Google reads directly. It takes about an hour and most competitors haven’t done it.
Page speed matters because most of your traffic is on phones. Someone searching “rafting near Asheville” on a Saturday morning is not on a laptop. If your page takes six seconds to load, they’ve already moved on to someone else.
What moves pages after they’re live
Publishing and waiting is not a strategy.
Internal links are the main lever. Every blog post, every trip report, every seasonal update should link back to the relevant local keyword page. Your “fall colors kayaking” post links to your kayaking location page. Your packing guide links to the rafting pages. Those links pass authority and tell Google which pages matter on your site.
Google Maps rankings are separate from organic rankings, but they reinforce each other. Filling out your GBP completely, posting updates, and collecting reviews all affect your visibility in the local pack, which appears above the organic listings for most local activity searches.
Reviews that mention the activity and location are worth more than generic ones. A review saying “best rafting trip on the Nantahala” does more work than “great experience.” You shouldn’t tell customers what to write, but asking at the right moment - on the drive back rather than in a blast email a week later - tends to produce more specific language.
Blog posts about the locations you operate in, seasonal conditions, trip reports - all of it builds topical authority for your area. Google rewards sites that demonstrate consistent knowledge of a specific region. If every piece you publish is about one area and set of activities, that authority builds faster than if you cover everything loosely.
Why this fails for most people
Operators build the pages, do the technical work, then stop. Six weeks later they check rankings, see they’re still on page three, and conclude SEO doesn’t work for them.
The issue is almost never the page. It’s that ranking takes time, typically three to six months for a new page in a competitive local market. That timeline is uncomfortable. But the pages you build this month start ranking in the fall, when people are searching for next summer’s trips. The businesses showing up today built those pages last year.
The other failure mode: build the pages once and never touch them again. A local keyword page improves over time if you treat it as a living document. Add local detail as you accumulate it. Update pricing and logistics when things change. Add photos each season. Pages that get maintained tend to hold above pages that don’t.
Start with your highest-revenue activity. Build that page, get it right, let it index. Then the next one. The operators who dominate local search in your market aren’t running a more sophisticated operation than you. They just started earlier and kept going.


