📄

TasteBoulder SEO Audit, August 2026

Private deliverable. Enter the hub password to continue.

That's not right. Try again.

← Back to the hub

TasteBoulder SEO Audit, August 2026

August 3, 2026 · tasteboulder.com · First audit · No Search Console history yet


The short answer

The site is technically clean and Google has already found it. It ranks for nothing, which is exactly what a three-week-old site with no real links should look like.

The important finding isn't about your site. It's about the SERP you're walking into. The Boulder restaurant search results are not locked up by an unbeatable incumbent. The page sitting at #1 for "best restaurants in boulder" (9,900 searches a month) is a tag archive page on a solo travel blog with roughly 109 real followed referring domains. Not a newspaper. Not TripAdvisor. A blogger's tag page.

That tells you the door is open. What's standing between you and it is links, and four pages you haven't built yet.


Where you actually stand today

Signal Value Read
Keywords ranking 0 Normal at this age. Nothing is broken.
Indexed in Google Yes Homepage, dish pages and venue pages all showing.
Referring domains 12 All 12 are nofollow.
Real followed links 0 This is the bottleneck. Everything else is secondary.
Backlink spam score 46 The 12 domains are .party, .fyi, .eu scraper sites. Not links you built, not links that help.
Pages in sitemap 757 656 venues, 45 cuisines, 41 dishes, 7 neighborhoods, 8 editorial.
robots.txt / canonicals / schema Clean Restaurant, ItemList, CollectionPage, FAQPage all firing correctly.

One thing to note: Google indexed this site without you submitting it. That's the index,follow plus a crawlable sitemap doing its job. Per your standing rule I have not submitted anything to Google Search Console, Bing or IndexNow, and I won't until you say so.


Your competitors, and what they own

I ran fifteen Boulder restaurant keywords through live SERP data and pulled the real backlink profile for every domain that showed up. Here's the field.

Tier 1: the wall (don't attack head-on)

Domain What it is Referring domains What it owns
bouldercoloradousa.com Visit Boulder, the official tourism bureau 2,719 #1 for the whole "boulder restaurants" cluster (27,100/mo), #1 "pearl street restaurants", #1 "food in boulder", #1 "dinner boulder", #1 "restaurants in boulder"
reddit.com r/boulder threads n/a Best median position of anyone (#2). #1 "best pizza boulder", #1 "best mexican food boulder", #2 happy hour, #2 brunch, #2 romantic
tripadvisor.com Aggregator n/a #1 "boulder brunch", #1 "romantic restaurants boulder", #2 sushi, #2 pizza

A single page on the Visit Boulder site, /food-and-drink/restaurants/, ranks for enough keywords to pull an estimated 68,000 visits a month. That's the ceiling in this market, and it's held up by 2,719 referring domains you're not going to match.

But note who these are. Visit Boulder and Downtown Boulder are the same class of organization as a chamber of commerce: they're a place to get listed and linked from, not a rival to beat. Both accept business submissions. Those are two of the better local links available to you.

Tier 2: the actual targets

Domain What it is Referring domains Where it sits
blondeatlas.com A solo travel blog 506 (397 nofollow → ~109 real) #1 to #3 across the entire "best restaurants in boulder" cluster, off one tag archive URL
boulderdowntown.com Downtown Boulder Partnership 2,183 #1 "boulder happy hour", #2 "boulder restaurants". Directory-style, very thin pages
travelboulder.com Local travel content 1,160 Positions 15 to 48. Ranks, doesn't win
aboutboulder.com Local content site 883 Positions 21 to 49
yourboulder.com Local content site 686 Positions 17 to 53
geminiboulder.com Local site 76 Positions 17 to 43

The single most useful data point in this audit

blondeatlas.com/blog-1/tag/best+boulder+restaurants is a tag archive page. Not even a real article. Here's what that one URL ranks for:

Position Keyword Volume/mo
#1 places to eat in boulder 1,900
#1 places to eat in boulder colorado 1,900
#1 best places to eat in boulder 2,400
#2 best places to eat in boulder colorado 2,400
#3 best restaurants in boulder 12,100
#3 best restaurant in boulder 12,100
#3 good boulder restaurants 12,100
#5 top restaurants in boulder 12,100
#11 restaurant boulder 27,100

A travel blogger with ~109 real followed links is beating national aggregators on the highest intent term in your market, with an auto-generated tag page. You have 656 venue pages with real menu prices. The gap is not content quality. The gap is links.

The full demand map

Everything worth a page in this market, with real Colorado search volume:

Keyword Volume/mo Difficulty You have a page?
boulder restaurants (all variants) 27,100 KD24 Homepage ✅
best restaurants in boulder 9,900 KD15 Homepage ✅
pearl street restaurants 5,400 KD9 Two pages, competing ⚠️
places to eat in boulder 1,600 KD3 Homepage ✅
boulder happy hour 1,300 KD22 None
best breakfast in boulder 1,300 KD26 Thin category page only ⚠️
best pizza in boulder 1,000 KD28 /dish/pizza/
best burger boulder 880 KD25 /dish/burgers/
best brunch boulder 880 KD22 None
vegan restaurants boulder 880 KD21 None
ramen boulder 880 KD36 /dish/ramen/
best sushi boulder 720 KD22 /dish/sushi-rolls/
best mexican food boulder 720 KD24 /cuisines/mexican-restaurant/
dog friendly restaurants boulder 590 KD11 None
best thai food boulder 320 KD35 /cuisines/thai-restaurant/
gluten free restaurants boulder 320 KD20 None
cheap eats boulder 140 KD26 None

Roughly 4,400 searches a month sit behind pages that don't exist yet, and every one of them is low difficulty.


Priority actions

#1 · Stop your two Pearl Street pages from fighting each other

🔴 Critical · Impact: ~+250 clicks/mo · Effort: Low

What: Two pages target the same 5,400/mo term. /pearl-street-restaurants/ is a 15 KB editorial guide. /neighborhoods/downtown-pearl-street/ is a 134 KB listing of 140 venues. Both are aimed at "pearl street restaurants."

Why it matters: You have zero authority. Splitting it across two URLs means neither one accumulates enough to rank. Visit Boulder holds #1 here at KD9, which is the softest defense on any high-volume term in the market.

Fix: Make /pearl-street-restaurants/ the one that ranks. Point the neighborhood page's canonical at it, or retitle the neighborhood page to a genuinely different intent ("Downtown Boulder restaurant directory, all 140 places") and link it from the guide as the full list. Every internal link using "pearl street restaurants" as anchor text goes to the guide, not the directory.


#2 · Build the four missing money pages

🔴 Critical · Impact: ~4,400 searches/mo of open demand · Effort: Medium

What: There is no happy hour page, no brunch page, no vegan page and no dog-friendly page. All four are low difficulty. All four are things you already have the data to answer better than anyone.

Fix, in this order:

  1. Happy hour in Boulder (1,300/mo). boulderdowntown.com holds #1 with a plain list. You have actual menu prices. A page that says what the happy hour costs at each place beats a list of names, and nobody else in this market can build it.
  2. Best breakfast in Boulder (1,300/mo). You have /cuisines/breakfast-restaurant/, but it lists 8 places and is titled "Breakfast restaurants in Boulder (8 listed)". That title loses to every "best of" headline on the page. Searchers want a ranked pick, not a count.
  3. Best brunch in Boulder (880/mo). TripAdvisor holds #1. Genuinely open.
  4. Vegan restaurants in Boulder (880/mo) and dog friendly restaurants in Boulder (590/mo, KD11, the easiest term on the whole list). You already know 144 of your patios are dog friendly. That page writes itself.

Why it works: Your dish pages already prove the format ranks. In a site: check, your own burrito, steak and salad pages are among the first things Google surfaces from the domain, which means it likes the priced-list structure.


#3 · Fix the outdoor dining page

🟡 High · Impact: mobile rankings + crawl efficiency · Effort: Low

What: /outdoor-dining/ ships 443 KB of HTML with 463 internal links on a single page. For comparison, your homepage is 39 KB.

It also duplicates /best-patios/, which targets the same searchers with the same words in the title.

Why it matters: 443 KB before any images, CSS or JavaScript will hurt mobile load time, and Core Web Vitals are a ranking signal. Separately, 463 links from one page spreads whatever link equity you eventually earn very thin.

Fix: Paginate or filter the 257 venues instead of printing all of them. Then decide which of the two patio pages is the ranking page and canonical the other to it.


#4 · Add width and height to venue page images

🟡 High · Impact: CLS across 656 pages · Effort: Low

What: Venue pages like bartaco carry 6 images with zero width/height attributes. Your cuisine pages get this right (10 of 10 images have them), so it's a template inconsistency, not a site-wide habit.

Why it matters: Images without declared dimensions cause layout shift while they load. That's Cumulative Layout Shift, a direct Core Web Vitals ranking factor, and it's currently affecting your 656 highest-count page type.

Fix: Add the attributes in the venue page template. One template edit, 656 pages fixed.


🔴 Critical · Impact: unblocks everything above · Effort: High

What: You have zero followed referring domains. Nothing in actions #1 through #4 will produce rankings until this changes, because the sites you're competing with have 76 to 2,719.

The realistic floor: geminiboulder.com ranks in the 17 to 43 range on 76 referring domains. blondeatlas.com wins the money cluster on about 109 real ones. Call ~100 real followed referring domains the number to aim at, not thousands.

Where the first ten come from, easiest first:

  1. Get listed on the sites you were treating as competitors. Visit Boulder (bouldercoloradousa.com) and Downtown Boulder (boulderdowntown.com) both take business listings. Same logic as a chamber of commerce: a directory to join, not a rival to fight.
  2. Boulder Chamber of Commerce, and the Boulder County business directories.
  3. Local press. Boulder Reporting Lab (1,339 referring domains), Boulder Weekly (4,625), Daily Camera (19,746). You have a genuinely newsworthy dataset: every menu price in Boulder, plus 107 restaurants you can prove have closed. That's a story a local reporter will actually want, and none of them can get it anywhere else.
  4. r/boulder. You can't outrank Reddit on these terms, so be the link inside the thread instead. When someone asks where to find the cheapest burrito, your priced dish page is the real answer.

What I'm deliberately not worrying about yet

  • Ranking for "boulder restaurants" (27,100/mo). Visit Boulder owns it with 2,719 referring domains. Come back to it in a year.
  • Beating Reddit or TripAdvisor. Not a realistic target and not necessary. The Tier 2 sites are where your traffic comes from.
  • The 12 spammy nofollow backlinks. Scraper sites picked you up automatically. They pass nothing and they hurt nothing. No disavow needed.
  • Page speed on venue pages. They're 12 KB and fine. The weight problem is confined to the big listing pages.

What happens next, in order

  1. Fix the Pearl Street split (an afternoon).
  2. Ship happy hour, then breakfast, then brunch, then vegan and dog friendly.
  3. Trim the outdoor dining page and pick one patio page.
  4. One template edit for image dimensions.
  5. Start the link work, which is the long pole and should start now regardless.
  6. Then decide about Search Console and Bing submission. That's your call, not mine.

Re-run this audit in 60 days. By then there should be Search Console data to work with, and the recommendations get a lot sharper when I can see real impressions.

Published to Annette's hub. Rebuilt from the source markdown, so edit the source and rerun rather than editing this page.