The Charleston keyword I decided not to rank for
I had charleston contractor website on my build list. Then I ran the search. Page one had zero web designers on it. Here is the check I run first now.
I had a keyword sitting on my build list for about six weeks. This morning I ran the search, read page one, and deleted the keyword off the list.
The term was "charleston contractor website." It looks perfect on paper. It has a city in it, a trade in it, and a service in it. If you sell websites to contractors in Charleston, that string is basically your business model typed into a search box.
Here is what actually came back.
The top of the page was Procore, HomeAdvisor, and Thumbtack, which are contractor directories. Under those were K-Con Construction, HITT, Unique Constructors, O.L. Thompson, and Harbor Contracting, which are actual Charleston general contractors with actual job sites. Then the Charleston Contractors' Association, which has been around since 1958.
Count the web design companies on that page. There are none. Not one, anywhere in the results.
The keyword does not mean what it looks like it means
"Charleston contractor website" reads like "a website for a Charleston contractor." Google has decided it means "the website of a contractor in Charleston." Those are almost opposite queries and they are the same nine words rearranged in a searcher's head.
Google is right, by the way. I went looking for who was typing that, and it is homeowners. Somebody got a referral for a contractor, half remembers the name, and types the trade plus the city plus "website" to find the company's actual site. That is a navigation search. It is not a buying search for marketing services, and no amount of good writing will convert it into one.
Now run the search that actually carries the intent I wanted: "who builds websites for Charleston SC contractors and home service businesses." Completely different page. Republic Media Group, Blume Agency, Lesser Media, Sandhills Geeks, WebPro360, Hammani Tech. Nine results, nine agencies, most of them running programmatic city-plus-trade pages from somewhere that is not South Carolina.
Same topic. Same industry. Same city. Opposite results, because the intent is opposite.
Why your keyword tool cannot tell you this
Ahrefs and Semrush will both hand you a volume number and a difficulty score for "charleston contractor website" and they will both be accurate. Volume and difficulty are properties of the string. Intent is a property of the people typing it, and the only place intent is written down is the search results page itself.
This is the gap that produces bad pages. Somebody exports a keyword list, sorts by volume, filters for the ones that mention their city, and starts building. Six months later there are fourteen pages live and three of them were built for searches that were never going to hire anybody.
(I am not above this. The term sat on my list for six weeks because I put it there off a spreadsheet and did not open a browser until this morning. That is the whole reason I am writing this.)
At this point a lot of people are thinking: fine, but the volume is real, so why not build the page anyway and take whatever traffic shows up? Two reasons. The first is that you probably will not rank, because Google already knows what satisfies that query and your sales page is not it. The second is worse. If you do sneak onto page one, you get visits from homeowners looking for a roofer, your bounce rate tells Google the page is wrong, and now you have a weak page dragging on a site where you needed authority to concentrate, not scatter.
The three intents hiding in Charleston local search
Almost every local query I track falls into one of three buckets, and the bucket decides what you build.
| Intent | What the searcher wants | What ranks | What you should build |
|---|---|---|---|
| Navigate | A specific company's site | That company, plus directories | Nothing. Skip it. |
| Browse | A list to choose from | Directories and roundups | A profile on those directories |
| Hire | One provider, now | Map pack, then service pages | A deep service page |
"Charleston contractor website" is navigate. "Best Charleston roofers" is browse, which is why directories keep outranking every actual agency in town and why fighting them head on is usually a waste of a quarter. "Emergency roof repair Mount Pleasant" is hire, and that one is worth building for.
The hire bucket is where service businesses make money and it is the smallest of the three. That is fine. It is supposed to be.
The ten minute check
This is the whole process. It is not clever and it takes about ten minutes per term.
- Open an incognito window. Your logged-in results are personalized and will lie to you.
- Type the exact keyword. Not a variation. The literal string off your list.
- Read the first ten results and label each one: directory, competitor selling what I sell, or a business that IS the thing being searched for.
- If the majority are businesses that ARE the thing, the intent is navigate or hire, and you only build if you are that thing.
- If the majority are directories, the intent is browse. Get listed on the directories instead of trying to beat them.
- Check the map pack. If there is one, proximity is doing most of the work and a page alone will not fix your position.
- Now decide whether to build.
Two more from my own tracking this month, so you can see how often this bites. "Mount Pleasant seo" pulls in national agencies that built their page for Mount Pleasant, Utah, which means the SERP is not even about our Mount Pleasant. And "local seo charleston sc" currently has a Facebook answers page sitting above every real agency in the market, which tells you Google thinks that query is informational, not commercial.
Neither of those is obvious from a spreadsheet. Both took two minutes in a browser.
What to do with this by Friday
Pull whatever keyword list you or your agency are working from. Take the five terms with the highest volume, run the ten minute check on each one, and mark each as navigate, browse, or hire. I would bet at least one is in the wrong bucket, and if you have a page already built against it, that page is not the reason your phone is quiet.
Then take the terms that survive and go deep on those instead of wide on all of them. One page that genuinely answers a hire query beats six that were built off volume. That is most of what we do on the Charleston SEO side for our service business clients: less list, more depth, and every term checked in a browser before anybody writes a word.
If you want to see the other half of this, where the query is right but the page is competing against rented lead platforms, I wrote about what a contractor website has to do to beat the directories a while back. Same principle, different fight.