Skip to main content
Journal

We hit #1 for 'Greenville SEO' — and the conversion data made me change what we're chasing

· 8 min read · By Max Muncy

I checked Google Search Console on Friday morning. Three weeks after the eleven-piece content sprint, the homepage’s average position for “greenville seo” had moved from 6.7 to 1.5. Impressions jumped from 151 the prior week to 1,290. Of those 1,290 impressions, 982 were on the single phrase “greenville seo” — the hardest commercial keyword in Mainsail’s market and the one I’d been chasing since the studio launched.

I took a screenshot. I felt good for about thirty seconds.

Then I opened Google Business Profile to see what the conversion data showed for the same period. The picture was meaningfully smaller than the ranking improvement would predict. The GBP conversion numbers — calls, direction requests, website clicks from the local pack — were a fraction of what a position-1-local-pack listing should generate. Not zero. Just far smaller than the ranking screenshot felt like it deserved.

That gap is the most important data point I’ve collected since starting this Journal. It changed what we’re going after next.

The ranking data, in detail

What actually moved between 5/20–5/26 and 5/27–6/2, filtered to the homepage:

  • Average position: 6.7 → 1.5
  • Impressions: 151 → 1,290 (+8.5×)
  • Clicks (organic blue link): flat at 1
  • CTR: 0.7% → 0.1%

That 0.1% CTR was the number that got my attention first. Position 1.5 with 0.1% click-through is the kind of disparity that usually means something structural is going on — and in this case, three things were:

  1. GSC’s organic-clicks number doesn’t count clicks on the local pack. It only counts clicks on the regular blue-link results below it. So an organic-only CTR of 0.1% doesn’t tell you what’s happening with the local-pack listing that sits above organic.
  2. The local pack absorbs most clicks on local-intent queries. When someone types “greenville seo” on a phone in 2026, they see three named businesses with map cards, ratings, phone numbers, and a “Website” button before they see a single blue link. Most of them act inside the local pack and never scroll.
  3. GBP records local-pack actions separately, in its own Performance dashboard — Profile views, calls, direction requests, website clicks. None of those flow through GSC.

So the real question wasn’t “why is organic CTR so low?” It was “what’s the GBP doing?”

What the SERP actually looks like

I ran the verification I should have run a month ago. Opened Chrome incognito, set my location to Raleigh through DevTools (~100 miles from Greenville, far enough that personalization shouldn’t bias the result), searched “Greenville nc seo.”

Two findings.

On the Places tab: Mainsail at #1 — directly below the only sponsored result, which was Red Shark Digital. 5.0★ with 8 reviews vs Red Shark’s 4.7★ (29 reviews). Below us: Evolve (4.4★, 21 reviews), BestoSEO (no reviews), then more competitors.

On the All tab — the default landing tab for any search: Google localized the query to Greenville, NC despite the searcher being in Raleigh. The “Businesses” local pack triggered prominently above any organic blue links. Mainsail was #1 in that local pack, with a review snippet showing — “Got our site ranking on page one in three months.” — a real-customer testimonial occupying the most visible position on the entire SERP.

The first organic blue link below the local pack wasn’t us — it was a competitor’s services page. But the local pack was where any actual buyer’s eye would land first, and we owned that.

By every signal that should drive clicks, we were winning. Highest rating in the pack. Real review snippet displaying. Phone number visible. Website button right there.

And the conversion data was still small.

The diagnostic walk-through

Three possible explanations for the gap. I worked through them in order.

Explanation 1 — A CTR problem on the listing itself. Maybe the local pack triggers, but Mainsail’s listing isn’t presenting well enough to win the click. Photo quality, headline, the review snippet competing with louder competitors.

This didn’t hold up. The listing has the highest rating in the pack, the only positive review snippet currently displayed for the query, and a phone number from the local area. If anything, the listing should be over-performing relative to its ranking. Not under-performing.

Explanation 2 — The local pack isn’t actually triggering as often as the personalized search suggests. When I check rankings from inside Greenville with my own account, Google might be heavily personalizing. From real cold geographies, maybe the pack appears less consistently.

The Raleigh test ruled this out. Local pack appeared, Mainsail at #1, with full social-proof signals. The ranking is real across geographies, not a personalization artifact.

Explanation 3 — The query “greenville seo” isn’t actually a buyer query. The phrase looks commercial — local geographic modifier plus a service category. Keyword tools rate it as commercial intent. Search volume looks meaningful. But the data points to a different conclusion.

This one held up. And it was the one I didn’t want to find.

What the GBP “top searches” data showed

The most useful single view in GBP Performance is the “Searches that showed your Business Profile in the search results” breakdown. It tells you which exact queries actually surfaced your listing — meaning Google’s local-results algorithm decided your business was a relevant answer for that specific search.

Mainsail’s top queries that surface the GBP, by frequency:

  1. “seo company in greenville”
  2. “seo company near me”

What’s not in that list: “greenville seo.”

That’s the query producing the GSC impressions. That’s the query I’d been optimizing for since day one. And Google’s local-results algorithm is essentially never surfacing the GBP for it.

Read literally, this means: Google sees enough searches for “greenville seo” to be returning a SERP for it. But the searchers aren’t behaving like buyers — Google’s algorithm isn’t deciding it’s worth promoting a commercial GBP card for their query. By contrast, the buyer-shaped phrases — “seo company in greenville” and “seo company near me” — DO trigger the local card, because those searchers ARE behaving like buyers.

The category phrase looks commercial. The data says it’s not.

Who’s actually searching “greenville seo”

This is the part I can’t prove with my data alone, but I’m fairly confident about based on the pattern:

  • Other agencies monitoring competitor rankings. Every digital marketing agency in Eastern NC runs a monthly check on “[their market] seo.” Mainsail’s ranking climb is exactly the kind of move that triggers competitor checks.
  • SEO tools — Semrush, Ahrefs, BrightLocal, SimilarWeb, Surfer. Their crawlers hit hundreds of “[city] [service]” queries every day to build SERP databases. Each pass is an impression.
  • AI training scrapers and LLM data pipelines harvesting SERPs for training data, weighted toward common pattern queries.
  • Researchers and students writing papers on local SEO, journalists doing background research.
  • Curious people in the industry — anyone in marketing or SEO who’s heard of Greenville or Eastern NC and pokes the query out of professional curiosity.
  • A small share of actual buyers, who probably DO call. Those are real. Just much smaller than the impression count would suggest.

The 1,290 impressions in one week look like a buyer-intent signal. The 982 of those that came from a single category query “greenville seo” are mostly non-buyer traffic. The lesson Google’s algorithm has already encoded for me, if I’d been reading the data carefully, is that buyers don’t search the category — they search for a provider.

The lesson that’s actually transferable

This is the part worth writing down for any local business reading along.

The category-shaped query isn’t the buyer query. “[City] [service]” is what consultants tell you to rank for, what keyword tools rate as commercial, what every SEO tutorial uses as the example. But the actual buyer queries are shaped differently:

  • “SEO company in [city]” — adds the implied “find me a provider” verb
  • “[service] near me” — local-intent signal Google’s algorithm trusts
  • “best [service] [city]” — explicit comparison signal
  • “[service] for [vertical]” — specific need signal

Buyers search for providers, not categories. They name the kind of help they want.

The GBP “top searches” panel is the easiest way to see this for your own business. It tells you which exact queries Google is willing to surface a commercial card for — and those are, by definition, the queries Google’s algorithm considers buyer-shaped. The queries that don’t show up in your GBP “top searches” are exactly the ones not converting, no matter how strong your organic ranking on them.

If you’re optimizing for queries that don’t appear in your GBP “top searches” view, you’re optimizing for impressions, not buyers.

What we’re doing differently

The plan, concretely:

  1. Push /services/local-seo to rank for buyer-shaped phrasings. Specifically “seo company in greenville” and “seo company near me” as the priority targets. Rewrite the page H1 and headings to match. Push internal links to it from every relevant content piece. Get it indexed and tracked.
  2. Let the homepage keep ranking for the category query. Position 1.5 for “greenville seo” is fine — it’s entity-signal work paying off. The homepage doesn’t have to convert that traffic; it just has to be the unambiguous “yes this is the Mainsail in Greenville, NC” answer when AI engines disambiguate. That’s its job in the GEO playbook.
  3. Build out the GBP for the buyer-shaped queries. More photos. Weekly posts. Place card updates. Every signal that tells Google’s local algorithm to surface the card for “seo company” phrasings.
  4. Add a follow-up to fix-in-public-month-3 that compares the data. I’ll report back with side-by-side numbers — “greenville seo” impressions and conversions vs “seo company in greenville” impressions and conversions. The comparison will be the proof.

The biggest takeaway, and the part I find the most useful for the studio’s positioning: the eleven-piece content sprint actually worked. The entity signals it built are what’s driving the ranking on the category query right now. The lesson isn’t “the sprint was wrong.” It’s “the sprint did its job, and now we need a different job to do.”

What this changes about my read of GSC

I’m going to start treating GSC impression growth as a leading indicator only, not a result. The lagging indicator that matters is GBP “top searches” — the list of queries Google’s local algorithm thinks are buyer-shaped enough to surface a commercial card for. If a query is generating GSC impressions but isn’t in the GBP “top searches” list, it’s not a buyer query, and the impressions are a vanity metric.

That changes the reporting I’ll do internally and what I share with clients. The “are we ranking?” question is the wrong question. The right question is “are we ranking for queries Google considers buyer-shaped?”

I should have been reading the data this way from the start. I wasn’t. Now I am.

What’s next in this series

Coming up in the Fix in Public series:

  • Month 2 baseline citation numbers — the 30-prompt × 6-engine AI-search tracker results. Still owed; will publish before the end of June.
  • Month 3 update — the comparison between “greenville seo” and “seo company in greenville” impressions and GBP conversions after the retargeting work above lands.
  • Audit-50 update — refreshing the original Eastern NC small-business audit data so we’re not citing the same May dataset across every piece.

If you’re a local business owner reading this, the practical takeaway is one screen worth opening: your GBP Performance → Searches breakdown. It’ll show you which queries Google is actually surfacing your listing for. That list is your real keyword strategy. The queries that aren’t on it — even the ones you rank for organically — aren’t where your buyers are.

I’ll see you in a few weeks with the comparison data.

— Max

Book Email Call