Back to blogTechnical

Google does not know which Charleston you are in

A roofer SEO page built for Charleston, Vermont turned up in my Charleston SC results this week. Here is why that ambiguity is your problem too, and the fix.

7 min read·September 21, 2026·By Charlestowne Marketing

I ran a search for Charleston roofer SEO this week and one of the results was about a town in Vermont.

Not a page that happens to mention Vermont. A page built for Charleston, Vermont, up in the Northeast Kingdom, whose own "Nearby Cities" block links out to Barton, Greensboro, Westmore and Morgan. The heading on it promises to "create hundreds, even thousands" of roofing pages. It does not contain the words South Carolina anywhere. And there it sat, in a set of results I had pulled for roofers in the Charleston where I live.

That is funny for about ten seconds. Then it should start bothering you, because the confusion runs in both directions, and the direction that costs you money is the one pointing at your own website.

There are more than twenty Charlestons

Wikipedia's disambiguation page lists Charlestons in Arizona, Arkansas, Illinois, Iowa, Kansas, Kentucky, Maine, Mississippi, Missouri, Nevada, New Jersey, New York, North Carolina, Oklahoma, Oregon, Tennessee, Utah and Vermont, plus one on Staten Island, plus ours, plus the West Virginia state capital that most of the country thinks of first when they hear the name.

That last one is not a hypothetical. When I checked the term "charleston digital marketing" this week, page one included a digital marketing degree program at the University of Charleston. That university is in West Virginia. It is competing for a phrase that Charleston SC agencies are spending real money to rank for, and it is winning a slot, because Google has to guess and a university has authority to spare.

Mount Pleasant is worse. I checked "mount pleasant seo" this week and page one carried three separate Wikipedia articles about other Mount Pleasants: a neighborhood in Providence, Rhode Island, a historic mansion in Philadelphia, and a district of Swansea, in Wales. Not one agency based anywhere near Shem Creek appeared. Google looked at that query, could not decide which Mount Pleasant anyone meant, and hedged by serving encyclopedia entries.

(I have a page targeting that term. It was not on page one either. I am not writing this from a position of having solved it.)

Why this is your problem and not just theirs

Search does not match strings anymore. It resolves entities, and an entity is a specific thing in a specific place. When your service page says the word Charleston forty times and never once says South Carolina, you have handed a machine a name shared by twenty-odd towns and asked it to work out which one you meant from context.

Usually it gets there. Your Google Business Profile, your phone number, your links, the other Lowcountry pages on your site, all of that adds up to a reasonable guess. But "usually" is doing heavy lifting in that sentence, and every ambiguous signal you leave is a small discount applied to a page you paid for.

Here is the part that made me wince. I pulled a Mount Pleasant page belonging to an actual Charleston-area agency this week, a real firm with a real office, and counted: the phrase "South Carolina" appears on it zero times. "SC" appears once. The page is well written and it names Shem Creek and I'On, which helps. It is also not ranking for the term it was built for.

I am not naming that firm, and I want to be straight about why. They are local, they are competent, and the mistake is one I have made on my own pages. The out-of-market page farms I will name all day, because they are not participating in this market, they are strip-mining it. I counted those page farms a couple of weeks ago and the volume is genuinely hard to compete with on effort alone. The interesting thing is that a lot of them are geographically confused, which is the one weakness a real local business can attack for free.

At this point a reasonable person is thinking: Google knows where I am, it has my Business Profile, it has my address, this is a non-issue.

Partly right. Your Business Profile does disambiguate you, and it does it well, for the map pack. But the map pack is one block on one surface. The organic result below it is judged on what the page itself says, and so is the passage an AI answer pulls when it quotes you rather than quoting a listing. I have argued before that AI Mode leans heavily on Maps data for local answers, and I still think that is true. But when one of these systems does quote your page, it quotes the page. Your profile is not in the room.

The ten-minute version of the fix

None of this is hard. It is just unglamorous, which is why it does not get done.

  1. Put "South Carolina" in the body copy of every location and service page, not only in the footer address block. Once, naturally, in a real sentence. Footers get treated as boilerplate and discounted accordingly.
  2. Name something that exists in exactly one Charleston. Shem Creek. The Ravenel Bridge. Johns Island. Sullivan's Island. The peninsula. A single specific landmark per page does more disambiguation work than the city name repeated ten times, and it reads better.
  3. Fix your schema. In your LocalBusiness or Organization JSON-LD, addressRegion should be SC and addressCountry should be US. If you run an areaServed array, list the actual municipalities you cover: Mount Pleasant, North Charleston, Summerville, Goose Creek, Hanahan, not a vague radius.
  4. Write "Charleston SC" into location page titles, not bare "Charleston." You lose nothing and you remove the guess. Check the title on your own service page right now; I will wait.
  5. Link internally to one page that is unmistakably local. A neighborhood page, a real job you did on a real street, anything an algorithm can anchor to.

That is the whole list. Maybe ten minutes per page if you are editing by hand.

The counter-example

I want to show the other side of this, because complaining about page farms without evidence that the alternative works is cheap.

Our Charleston roofing SEO page has been sitting at number two on "seo for charleston roofers" since early August. This week it came back as the first result, ahead of the post that had been holding the top slot. I am not going to pretend one week's check is a trend, and the page it passed is genuinely good, better than ours in some respects. But that page is built on storm season, insurance claim timing, and the specific way a Lowcountry roof fails after a named system tracks up the coast. Those are things that only happen in one Charleston. Vermont has different problems.

The same logic drives how we approach digital marketing in Charleston SC generally. It is also, as it happens, the more winnable cluster right now: when I checked the marketing terms this week, page one was mostly agencies that are actually here, with a single directory listing, which is a very different shape from the SEO searches next door where directories and two large out-of-state firms hold the top.

Do this before Friday

Open the one page on your site that matters most, the one that brings you work. Use your browser's find function and search it for "South Carolina."

If you get zero hits, you just found ten minutes of work worth more than most of what you will do to that page this quarter. Add the state to a sentence that was going to exist anyway, name a landmark your customers would recognize, and check the title tag while you are in there.

We do this on every page we build for Lowcountry service businesses, and it is not because it is clever. It is because a search engine sorting twenty Charlestons should never have to guess about yours.

#technical-seo#local-seo#charleston#service-businesses#schema#entities

Want this kind of result for your business?

Free SEO audit. Two business days, no obligation, yours to keep.

Get a Free SEO Audit