Local Discovery Guide SEO Case Study
5 months, 2,170% organic traffic growth for a Utah city guide.

The client
About Salt & Seek
Restaurant guides
Bar & nightlife
Coffee shops
Event calendar
Deals Club
Neighbourhood guides
Hidden gems
Weekend plans
Seasonal roundups
Utah lifestyle
Scope of work
6 problems between a new city guide and page one
57 organic visits a month
As a newly launched local guide, Salt & Seek had almost no search footprint. It was missing entirely from the discovery searches Utah locals run every week — the ones that decide where a Friday night actually happens.
Page four, behind the directories
High-intent terms like "best restaurants in Salt Lake City" sat buried on page 4 and beyond, behind national directories and legacy local press. Only two keywords held a top-three position across the entire site.
Shopify was generating its own duplicates
The Shopify build produced duplicate collection and tag URLs, and canonical tagging was inconsistent across blog and product pages. Combined with heavy, uncompressed imagery on every guide, crawl efficiency was working against the site.
Guides that didn't point anywhere
Blog content lacked consistent meta titles and header structure, and no internal links connected the neighbourhood guides to the event calendar or the Deals Club — so every guide was a dead end for readers and for authority alike.
The high-intent queries had no owning page
There was limited content targeting the local searches that matter: Salt Lake City restaurants, coffee shops, local events, hidden gems and Utah lifestyle experiences. The demand existed; nothing on the site was built to answer it.
A backlink profile too thin to compete
Few high-quality backlinks meant low domain authority — and against directories with fifteen-year link profiles, that ceiling capped how far on-page work alone could take the site.
Scope of work
The 6-phase build, in the order it had to happen
Keyword research & intent mapping
Mapped keyword opportunities by neighbourhood and by category — restaurants, bars, coffee shops, events — so every gap had one owning page rather than three pages half-covering it. Prioritised long-tail, intent-matched terms such as "best brunch spots Salt Lake City" over the broad head terms the directories already defended.
Technical SEO & index control
Resolved the duplicate URLs created by Shopify collections and tags, and fixed canonical tagging across blog and product pages. Compressed imagery and lazy-loaded the restaurant, bar and event photo galleries to lift page speed. Implemented product schema and XML sitemaps to improve indexing and rich result eligibility.
On-page optimisation across every guide
Rewrote meta titles and descriptions for every city and neighbourhood guide to match real search intent. Restructured headings and internal links so each guide pushed readers toward the event calendar, the Deals Club and related neighbourhood content. Added descriptive alt text and optimised image file names across every restaurant, bar and coffee shop feature.
Local SEO & citations
Built consistent local citations across Utah business directories and tourism listings, so the brand appeared wherever Utah locals and visitors were already looking for recommendations — and so the signals pointing back at the site were consistent.
Content, partnerships & digital PR
Published consistent, intent-matched guides against the keyword map, and refreshed older event and seasonal content on a rolling basis to keep time-sensitive pages ranking. Secured backlinks through partnerships with featured restaurants, bars and coffee shops in exchange for editorial mentions, and ran outreach to Utah lifestyle blogs and local press for guest features and "best of" roundup inclusions.
Measurement, tracking & iteration
Reviewed GA4 and Search Console monthly to track which guides produced engaged sessions rather than bounces, then shifted content effort toward the categories and neighbourhoods returning the strongest intent and cut the ones producing traffic alone.
Results — 5-month comparison
6 metrics, 5 months, every one up
Organic traffic
1,294
+2170.18%Ranking keywords
1,193
+1372.84%Total users
12,000
+183%Sessions
14,000
+158.2%×23
Twenty-three times the organic traffic and 1,193 keywords now ranking
| GOOGLE SEARCH CONSOLE | BEFORE | AFTER | CHANGE |
|---|---|---|---|
| Organic traffic | 57 | 1,294 | +2,170.18% |
| Ranking keywords | 81 | 1,193 | +1,372.84% |
| Top 3 positions | 2 | 54 | +2,600% |
| Total users | 4,240 | 12,000 | +183% |
| Sessions | 5,422 | 14,000 | +158.2% |
| Event count | 27,635 | 59,000 | +113.5% |

GA4 — organic traffic 57 → 1,294

Search Console — 1.39K clicks, 308K impressions

Keyword distribution — 81 → 1,193 ranking terms
Google rankings
1.2k Utah keywords ranking,10 of them at position #1
| KEYWORDS | VOLUME | BEFORE | AFTER |
|---|---|---|---|
| Things to do in Utah | 9,900 | NA | #1 |
| Things to do in Utah County | 880 | NA | #1 |
| Best restaurants in Utah County | 720 | NA | #1 |
| Utah Valley events | 390 | NA | #1 |
| Events in Utah County | 320 | NA | #1 |
| Utah County events | 320 | NA | #1 |
| Free events in Utah today | 260 | NA | #1 |
| Best restaurants Utah County | 210 | NA | #1 |
| Best bars in Utah | 210 | NA | #1 |
| Bars in Utah | 210 | NA | #1 |
Key Results
Successfully ranked #1 on Google
Rank #1





5 months, 10 #1 rankings, 1 state whereevery weekend plan starts with a search
Beat the directories on local depth We target the head discovery terms directories are told to defend, then support them with the neighbourhood and category-level guides no national aggregator can write.
Shopify handled properly Duplicate collection and tag URLs resolved, canonicals corrected and galleries lazy-loaded, so guides earn rankings instead of splitting authority across near-identical URLs.
Content that connects, not content that ends Every guide wired into the event calendar, the Deals Club and its neighbouring guides — turning individual rankings into a compounding internal structure.
Refreshed on a schedule Seasonal and event content updated on a rolling basis, because time-sensitive pages lose rankings the moment they go stale.