Author: Mehul Dedhia

  • The question every patient has before they book, and almost no clinic website answers

    There is a pattern I keep finding in roofing that I suspected transferred to chiropractic. I went back through three clinic audits to check, and it does.

    The roofing version

    Almost every roofing site I open is missing two things: whether they offer financing, and whether they will help with the insurance claim.

    Neither is a ranking factor. Both decide whether somebody who found you actually rings.

    A new roof is a five-figure decision, made under pressure, by somebody who had not budgeted for it this year. Most of them are also about to have an argument with an insurance company and have no idea how to have it. Those are the two things on their mind at the exact moment they are looking at your website, and the site says nothing about either.

    That is why “we rank fine and the phone is quiet” happens so often in that trade. It looks like an SEO problem. It is a conversion problem sitting behind good rankings.

    Three chiropractic audits, three sites with nothing about money

    I audited three healthcare practices this year: two chiropractic and one med spa, three different towns, three different builds, no connection between them.

    Not one of them had a page about insurance or cost. No named insurers, no cash rate, no first-visit price, nothing about what happens if you are out of network.

    Three is a small sample and I will not pretend otherwise. But this is not a subtle judgement call. A practice either publishes what it costs or it does not, and none of these three did.

    Somebody with six weeks of back pain who has finally decided to do something about it has one question above all others before they pick up the phone: is this covered, and if not, what is it going to cost me?

    They will not ask you. They will look for it on the site, fail to find it, and either call to ask, which is a friction step many of them will not take, or quietly go and look at the next practice.

    Why this is worse in chiropractic than in roofing

    The sums are smaller, which sounds like it should make the problem smaller. It does not, for two reasons.

    The uncertainty is higher. A roof has a price. A course of chiropractic care has an unknown number of visits, an unknown insurance position, and a deductible the patient probably cannot recite. A number they cannot estimate is worse than a big number they can.

    The decision is slow. A roofer’s customer calls three firms today and hires whoever answers. A chiropractic patient reads, puts it off, and comes back a fortnight later, which means the website does far more of the work, and a gap in the website costs you more. That is the whole argument of how chiropractic differs from an emergency call-out.

    Why it wasn’t in the five gaps

    I have written separately about the five gaps I found in all three of those clinics: the Business Profile map missing or pointing at the wrong business, no schema, no reviews page, no video, and no decision about location.

    Insurance and cost is not on that list, and the distinction is worth naming. Those five are structural SEO gaps: things that stop a search engine understanding who and where you are. This is a conversion gap. It sits behind good rankings rather than preventing them, which is exactly why it survives audit after audit. Nobody is looking for it, because it does not show up in a crawl.

    It is a sixth thing missing from three out of three, and it may be the one that costs the most.

    What the page should say

    Answer the questions in the order the patient has them.

    • Which insurers you are in-network with. Named. Not “we accept most major insurance”, which tells a reader nothing and forces the phone call you were trying to avoid.
    • What happens if you are out of network, or they have no cover. This is the section that matters most and the one that is always missing. Cash rates, package pricing, whether you do a sliding scale.
    • What the first visit costs, specifically, as a number.
    • Roughly how many visits a typical course runs. Practitioners resist this because it varies and because it can read as a commitment. It varies for every clinic in the country and the patient is going to estimate anyway. They will just do it from somebody else’s website.
    • What you need them to bring. Trivial, and it makes the whole page feel like it was written by somebody who has done this before.

    Why it is also an SEO page, not just a conversion page

    Two reasons worth naming, because “add a page about pricing” sounds like it belongs to somebody else’s job.

    The queries are real, and they are the bottom of the funnel. does insurance cover chiropractic, chiropractor cost without insurance, how many chiropractic visits do i need. People search these, they search them at the point of deciding, and the competition for them is far softer than for the treatment terms every clinic in the county is chasing.

    And it gives the rest of your site something to link to. Internal linking that goes nowhere useful is the one finding in every audit I have ever written: eleven out of eleven, from a single-location clinic to a nine-thousand-page marketplace. A genuinely useful cost page is the sort of thing every treatment page has a natural reason to point at.

    What I still cannot tell you

    I know the gap is real, because I have now checked. What I have not done is measure what closing it is worth in a chiropractic practice.

    In roofing I have watched the absence of a financing page sit behind a site that was ranking perfectly well and not converting. In chiropractic I have three sites with the same hole in them and no after. So take the recommendation as a well-founded one rather than a proven one, which is the same standard I would apply to anyone showing me a case study.

    If you add the page, I would genuinely like to know what happened, either way.

    The short version

    • In roofing, the two things missing from almost every site are financing and insurance claims help. Neither is a ranking factor and both decide whether the phone rings.
    • Three chiropractic and med spa audits this year: not one had a page about insurance or cost.
    • The sums are smaller than a roof, but the uncertainty is higher and the decision is slower, so the website carries more of the load.
    • It is a conversion gap, not a structural one, which is why it survives audits. It does not show up in a crawl.
    • Name the insurers. Publish the cash rate. Say what the first visit costs and roughly how many visits a course runs.
    • I have confirmed the gap. I have not yet measured what closing it is worth.

    If a site should be ranking and it isn’t, that’s the work I do. SEO for chiropractors covers why a slow, considered decision changes the whole approach, and who I work with has the other industries.

  • The campaign that ended because it worked

    I have had two engagements end because the client got more calls than they could handle.

    One was a roofing contractor in South Carolina. One was automotive. Neither of them fired me over poor results. Both of them stopped because the work did what it was supposed to do and the business underneath was not ready for it.

    I used to tell that story as a win. I have stopped, because it is not one. It is a planning failure, and the planning was mine as much as theirs.

    What actually happens

    It does not arrive as a crisis. It arrives as a good month.

    The phone rings more. The team is pleased. Then the estimates start slipping. You are quoting five days out instead of two, because the crews are booked and somebody has to go and look at the roof before you can price it. The people who called on Tuesday and have not heard back by Friday call somebody else, and some of them get a same-day visit.

    Now you are paying for the visibility that produced those calls and losing the jobs at the far end of it. Worse, you are collecting the reviews of people who never became customers, which in this trade is the thing you can least afford.

    The owner’s read on that is rarely “we grew too fast”. It is usually “the leads are poor quality”. They are not. They are unanswered.

    Why emergency trades are the worst case

    In most industries a slow response costs you some percentage of conversions. In emergency home services it costs you the job outright, because the buyer is not comparing you against a memory of you. They are working down a list.

    There is water coming through a ceiling. They search, they look at the map pack, they call two or three, and whoever picks up gets the work. Being first in the map pack and third to answer the phone is worse than being third in the map pack and first to answer, because you paid for the first position and somebody else converted it.

    And the calls do not arrive at eleven in the morning. Heating fails on the coldest night of the year. Roofs leak during the storm, not the week after. The hours when your visibility is most valuable are precisely the hours when the office is closed.

    There is a well-known piece of research here, and it is almost always deployed at you by somebody selling call-handling software. MIT’s Professor James Oldroyd, working with InsideSales.com, analysed more than 15,000 leads and 100,000 call attempts across six companies and found a twenty-one-fold drop in the odds of qualifying a prospect when response time went from five minutes to thirty. Not thirty minutes to a day. Five to thirty.

    The conclusion normally drawn from that is buy something that answers faster. Mine is the inverse. If a business cannot answer inside five minutes, and most of the small local businesses I work with cannot because the person who answers the phone is also the person on the roof, then every extra call I generate is not neutral. It is one more person who now has an opinion about them, and it is not a good one. That is the mechanism behind both campaigns I stopped.

    The question I ask before anything starts

    I now ask this on the first call, before scope, before price:

    Who answers the phone at seven in the evening?

    It sounds like a small operational question. It is actually the whole feasibility assessment, and the answer tells me more than a site crawl does.

    What I am really trying to establish is three things, however they come up:

    How many crews, and what is your current lead time? If you are booking three weeks out in your busy season, you do not have a visibility problem. More visibility will make the three weeks into five and the reviews will start to reflect it.

    What happens to a call you miss? Voicemail that somebody checks in the morning is, in this trade, functionally the same as not answering. An answering service that takes a name and number and passes it on within the hour is a different business.

    Which months are you actually trying to fill? Almost every contractor I ask says “more work” and means “more work in the shoulder months”. That is a completely different brief from “more work overall”. It changes which services get the effort and when the content goes live, and nobody offers it because it sells less.

    What I would rather do than sell you a campaign

    If the honest answer is that you are close to capacity, there are three things worth more than ranking higher.

    • Fix the after-hours path first. An answering service costs a fraction of a retainer. If it converts even a handful of the calls currently going to voicemail during storm season, it pays for itself before any SEO work starts producing, and it improves every channel you already run, including the ones you are already paying for.
    • Aim the visibility at the gap, not at the total. If you are full in autumn and quiet in February, the work should be pointed at February. That means content and profile activity built around what people buy in your quiet months: maintenance contracts, inspections, planned replacement rather than emergency repair. Slower, less dramatic, and it fills the months you actually need filled.
    • Is your pricing right? Well outside my field, so take it as a question rather than advice. But a contractor booked three weeks out in the busy season is worth asking, because if the answer is no then the same call volume could be worth more without a single extra lead, and that is faster than anything I can do.

    The uncomfortable part

    There is a reason this conversation does not happen more often, and it is not that agencies are stupid.

    It is that “you are not ready for this yet” is a sentence that ends a sale. Every incentive in the industry runs the other way: sign the client, ship the work, report the ranking improvements, and treat the missed calls as the client’s operational problem rather than a foreseeable outcome of what you sold them.

    It is foreseeable. I have watched it twice. Now I ask first, and occasionally that costs me the engagement, which is the correct price for not wasting a year of somebody’s money.

    The short version

    • Two engagements have ended because the client got more calls than they could handle: a roofing contractor in South Carolina and an automotive business. That is a planning failure, and it was mine as much as theirs.
    • In emergency trades a slow response loses the job outright, because the buyer is working down a list rather than remembering you.
    • The calls arrive out of hours, which is exactly when the office is closed.
    • Before any work starts: who answers at seven in the evening, how many crews, what is your lead time, and which months are you actually trying to fill.
    • If you are near capacity, an answering service, off-season targeting and your pricing are all worth more than ranking higher.

    If a site should be ranking and it isn’t, that’s the work I do. SEO for roofers and HVAC contractors covers the rest of what is specific to the trade: financing, insurance claims and the seasonal timing question. Local SEO covers the profile and map pack side.

  • A car accident click costs $300. The lead behind it costs $442. There is a cheaper number.

    Most arguments for SEO are made badly, and they are made worst to lawyers.

    The usual pitch is that search traffic is “free”, which is not true, or that it “compounds”, which is true but unfalsifiable, or that it “builds authority”, which means nothing to somebody deciding where to put next quarter’s marketing budget.

    Personal injury is the one vertical where you do not need any of that. The numbers make the argument on their own, and they are unusually public.

    What the clicks cost

    Competitive personal injury terms run $150 to $300 a click in most US markets. In Los Angeles, New York and Miami they pass $500. For some specialised injury types they go past $1,000.

    Those are among the most expensive clicks anywhere in advertising, in any industry. Not the most expensive in legal. The most expensive full stop, alongside a handful of insurance and addiction treatment terms.

    One correction to how these numbers usually reach you. WordStream’s 2026 benchmarks, drawn from 13,474 US search campaigns running April 2025 to March 2026, put the median CPC across all legal advertising at $9.87, with a median cost per lead of $131.63. Personal injury is not legal advertising. It is the extreme tail of it. So if somebody quotes you a “legal industry average CPC” to make a budget look reasonable, they are quoting a figure that includes estate planning and traffic tickets, and it tells you nothing about what a car accident click costs in your market.

    The reason is obvious to you and worth stating anyway: the clicks are expensive because the cases are valuable. A market where a single conversion can be worth six figures will bid a click to $300 and still be rational.

    What the leads cost

    The click price is not the number that matters. Most clicks do not become leads.

    First Page Sage tracked 49 personal injury firms across 36 states, averaging $21.4m in annual marketing spend, and put the average lead at $442 through Google Search Ads and $183 through SEO, with Local Service Ads at $378 in between. The data runs from January 2022 to December 2024.

    Bar chart of personal injury cost per lead: Google Ads 442 dollars, Local Services Ads 378 dollars, SEO 183 dollars
    The same lead, three channels. Figures as published by FirstPageSage.

    Before you use that ratio for anything, note who published it. First Page Sage is an SEO agency, the figures come from their own client base, and the finding is that SEO is the cheapest channel. I am also an SEO consultant quoting it to you. Weigh both of us accordingly. What makes me willing to use the number anyway is that the direction matches every PI account I have looked at, and the ratio survives being made a great deal less flattering, which is the next section.

    That gap, roughly two and a half times, is the entire argument, and it is a better argument than anything about authority or compounding. You are not choosing between marketing and no marketing. You are choosing between paying for every click for as long as you want the phone to ring, and building something that keeps producing after you stop paying for it.

    The honest version of that argument

    If I only told you the two numbers I would be doing what everyone else does, so here is the part that usually gets left out.

    The $183 is not free either. It is the blended cost of the work that produced it, meaning the content, the technical fixes, the profile management and the links, divided by the leads that resulted. It looks cheaper because the asset keeps working; it is not cheaper on day one.

    It is much slower. Ads produce a lead the afternoon you switch them on. Search takes about six weeks to start showing and months to prove. If you need cases this quarter, the $442 lead is the correct purchase and I would tell you to make it.

    The averages hide enormous variance. A firm in a top-five metro competing against firms spending five figures a month on links will not hit $183. A firm in a secondary market with a decent site and no serious local competition may beat it comfortably. An average across a market you are not in is a starting point for a conversation, not a forecast.

    Neither number is a signed case. Both are leads. What happens between a lead and a retainer is your intake, your reviews and your reputation, and no amount of marketing spend touches it. I have watched firms spend a year improving visibility while losing people at the front door, and the marketing was working perfectly the whole time.

    Why I would still make the case

    Because the gap is wide enough to survive being wrong about it. Move both numbers against the organic side by a substantial margin and it still comes out ahead, and on the search side you own an asset that keeps producing without a daily budget.

    And the two are not alternatives. Almost every PI firm I have looked at should be running both: ads carrying the near term while the organic side is built, then ads narrowing to the highest-intent terms once search is producing. The mistake is treating it as a switch rather than a sequence. To be plain about it: I think a personal injury firm should have money in Google Ads. Not instead of this, alongside it.

    What actually moves the organic number

    Four things, in the order I would do them.

    • The primary category on your Google Business Profile. The single largest Maps ranking factor in this vertical. Wrong category and everything downstream is wasted effort, and it takes thirty seconds to check.
    • Practice area pages for the case types you actually take. Not one page called “Personal Injury” with a bulleted list. Somebody who was hit by a truck is not searching “personal injury attorney”. They are searching the thing that happened to them, and those queries have a fraction of the competition of the head term and far more intent behind them.
    • Service area pages, but only real ones. A firm genuinely handling cases across a metro should have a page for each area, with different courts, different accident patterns, different content. The same page with the place name swapped is a doorway, Google names it specifically as spam, and it fails as a set, dragging down the pages that would have been fine on their own.
    • Review velocity, not review count. Higher counts correlate with higher local position. Higher star ratings, on their own, do not show a measurable effect. A firm with sixty reviews and a new one every fortnight will outrank a firm with two hundred from three years ago.

    When the maths does not work

    Two situations where I would not take this on, and it is worth saying because everyone in this market promises the top three.

    A top-five metro with no budget for links. Be realistic about the ceiling. The firms above you have been spending five figures a month for years and the gap is not closed by better on-page work.

    No intake capacity. If calls already go to voicemail after six, more visibility buys you more missed calls at $183 each. Fix the front door first. It costs nothing and it improves every channel you are already running.

    The short version

    • Competitive PI clicks: $150–$300, over $500 in LA, New York and Miami, past $1,000 for some injury types.
    • Average lead cost: $442 from ads, $183 from search.
    • The gap is the argument. The caveats are that search is slower, the $183 is not free, and neither number is a signed case.
    • Run both. Ads for the near term, search for the asset, and narrow the ads as search starts producing.
    • If your intake does not answer the phone, none of this matters yet.

    If a site should be ranking and it isn’t, that’s the work I do. SEO for personal injury law firms has a twelve-month case with the profile data behind it, and SEO consulting covers how I work with firms that have a marketing team already.

  • The three firms in the map pack all had over a hundred reviews. The firm doing the serious work had nine.

    Every local SEO article says the same thing about reviews. Get more of them. Get them regularly. After your primary category, review count is the strongest thing you can influence for map pack position.

    That advice is broadly right. For criminal defense it is close to useless, and following it will cost a firm two years.

    What the local pack actually looked like

    I pulled the local pack for “criminal defense attorney” in a mid-sized US city. Three firms, and they were not close.

    Firm Practice focus Rating Reviews
    Firm A General criminal 4.9 180
    Firm B General criminal 4.9 113
    Firm C DWI 4.9 111

    Every one of them at 4.9. Every one over a hundred reviews. Two general criminal practices and a DWI specialist.

    On the face of it that confirms the advice. Reviews win. Go and get reviews.

    Except that in the same market there are firms handling far more serious cases, with far better outcomes, sitting on single-digit review counts and nothing posted in years, and they are not short of work.

    Both of those things are true at once, and the reason why is the whole point of this post.

    Review volume tracks charge severity, inversely

    Think about who leaves a review.

    Somebody who beat a DWI will leave one. It was frightening and expensive, it is over, and being publicly associated with it is embarrassing rather than ruinous. They are relieved and they say so, under their own name, with their photo next to it.

    Now think about the other end of the docket. Somebody whose federal fraud charge was dismissed. Somebody whose child pornography allegation went away. Somebody acquitted of a violent offence.

    They will not write a public review. Neither will their spouse, their parents, or anyone else who knows. The better the outcome you delivered, the more the client needs no permanent record that they were ever your client at all.

    That is not a marketing problem you can solve with a better follow-up email. It is the service working correctly.

    The consumer research says the opposite of what I am about to argue, and it should go on the table rather than be left out. BrightLocal’s 2026 Local Consumer Review Survey, covering 1,002 US adults and published February 2026, found 97% read reviews for local businesses, and that 31% will now only use a business rated 4.5 or above, nearly double the 17% who said so a year earlier. On the face of it, the firm with nine reviews is finished.

    Bar chart of US consumer review behaviour: 97 per cent read local reviews, 74 per cent want reviews under three months old, 32 per cent under two weeks, 31 per cent use only businesses rated 4.5 and above
    What US consumers say about local reviews, from BrightLocal.

    But look at what those people were asked about. Restaurants, plumbers, dentists, hairdressers. Nobody runs a survey on how people choose a criminal defence lawyer for a serious charge, because the sample is small, the moment is private, and people do not volunteer it afterwards. So the best available data does not describe this market, and the three firms with a hundred reviews each, sitting above the firm doing the work I would want done, is the closest thing to evidence I have that it does not transfer.

    Look back at the table. Two general criminal practices and a DWI specialist. Those are exactly the practices whose clients can afford to be seen.

    Why this matters more than it sounds

    Every study telling you review count is the second-strongest local ranking factor is averaging across restaurants, dentists, plumbers and driving instructors: businesses where the customer is glad to be seen. The average is real. Your practice is the exception to it.

    The failure mode I see is a serious felony practice deciding that reviews are the gap, building a review generation process, running it diligently for eighteen months, and arriving at fourteen reviews. Not because the process was bad. Because the thing they were asking for was the thing their clients most needed not to exist.

    Eighteen months, and the map pack position has not moved, and the conclusion drawn is usually “SEO doesn’t work for us.”

    What replaces it

    If you cannot win on consumer reviews, you win on professional credential instead. In a category where consumer proof is structurally scarce, that is what does the trust work, both for the person deciding at two in the morning, and for the systems reading your page.

    This is not a pick-one list. They stack, and in my experience the more of them you carry the better. Each is an independent party vouching for you, and a reader who does not recognise one will recognise another.

    Martindale-Hubbell AV Preeminent. Peer-reviewed rather than client-reviewed, which is precisely the point. It is the one rating in legal that a client cannot supply and cannot fake.

    Avvo rating and a complete Avvo profile. Consumer-facing, but built from case history and credentials rather than testimonials.

    State bar listing and any board certification. Criminal law board certification exists in several states and almost nobody displays it prominently.

    Google Screened, where it is available for your practice area.

    The part firms get wrong is placement. These end up as small grey logos in a footer, or on an About page nobody visits. They belong on the home page and on the practice area page for the charge in question, at a size that reads as a claim rather than a decoration.

    The reviews you can get, you should still get

    None of this means abandon reviews.

    A defence practice usually has a mix. The DWI and possession end of the docket produces clients who will happily review you. The felony end does not. The mistake is to set one target across the whole practice and judge yourself against it.

    Ask the clients who can. Do not build a strategy that depends on the clients who cannot.

    And when you are looking at a competitor with 180 reviews and wondering how they did it, check what they actually do before you conclude you are behind. Very often they are not beating you. They are running a different business.

    What I would look at instead

    If your firm sits at the serious end and the map pack is not working, review count is unlikely to be the lever. Three things usually are.

    • Your primary category. It is the single largest Maps ranking factor and it takes thirty seconds to check. “Criminal justice attorney”, “Law firm” and “Criminal defense attorney” are not interchangeable.
    • Whether you have a page for the actual charge. Somebody facing a specific allegation is not searching “criminal defense attorney”. They are searching the thing that has happened to them, at two in the morning, on a phone. A page that names it is a completely different experience from a page that lists it in a bullet, and those queries have a fraction of the competition of the head term.
    • Whether anything links to your practice area pages. On most firm sites they are reachable from the menu and nowhere else, and a menu link tells Google very little because every page has one.

    The short version

    • The local pack in one mid-sized city: three firms, all rated 4.9, on 180, 113 and 111 reviews. Two general criminal, one DWI.
    • Review volume in criminal defense tracks charge severity inversely. The better the outcome at the serious end, the less the client wants a record of you.
    • A strategy that depends on winning the review race will fail at that end of the docket, and it will take you eighteen months to find out.
    • Professional credential replaces consumer review. Put it on the home page, not in the footer.
    • Get the reviews you can get. Do not build the plan around the ones you cannot.

    If a site should be ranking and it isn’t, that’s the work I do. SEO for criminal defense attorneys goes into how this changes the rest of the build, and Local SEO covers the profile and map pack side more generally.

  • 27,903 impressions. 106 clicks.

    That’s one query, one site, three months. Twenty-seven thousand nine hundred and three times Google showed the page. A hundred and six people clicked.

    Everyone I show that to says the same thing: the title needs work.

    Sometimes it does. But I’ve pulled four of these out of my old audits and the title was the cause in exactly one of them. The other three were different problems that happen to produce an identical-looking row, and if you rewrite the title on those you’ll spend a week and change nothing.

    The column that tells you which one you have is the one people skip.

    Four rows, four causes

    Query Impressions Clicks CTR Avg. position
    health coach 15,317 25 0.16% 44.4
    blue fruits 25,162 58 0.23% 9.3
    american fitness 4,508 2 0.04% 11.7
    holistic nutrition blog 14,584 3,547 24.3% 1.8

    Same site, same report, same three months. The last row is there as the control. That’s what a healthy query looks like on this site, so we know the site is capable of it.

    Now read the position column, because it splits these into four completely different jobs.

    Position 44. This is not a CTR problem.
    ‘health coach’ has fifteen thousand impressions and sits, on average, on page five. Nobody is choosing not to click it. They are not seeing it. Fifteen thousand impressions at position 44 mostly means the query is enormous and you’re appearing at the bottom of very deep result sets, or occasionally surfacing higher.

    The work here is ranking work, meaning content, links and relevance, and it’s a big project against a head term. Rewriting the title is not just insufficient, it’s a category error.

    Position 9.3 with a 0.23% click rate. Look at the query.
    ‘blue fruits’ was pulling twenty-five thousand impressions to a nutrition certification provider. Page one, near the bottom, and almost nobody clicking.

    At that position, the click rate should be somewhere in the low single digits at worst. Getting 0.23% means the people searching are not looking for what the page is. Someone typing ‘blue fruits’ wants a list of blue fruits, probably with pictures, in ten seconds. They do not want a nutrition certification.

    This is an intent mismatch, and the honest answer is usually that you should not be chasing the query. The page ranks for it incidentally. Twenty-five thousand impressions look like an opportunity in the report and are close to worthless in the business.

    One check to run before you settle on intent mismatch, because it is new since I started keeping this list. SparkToro’s analysis of Similarweb’s US clickstream panel found AI Overviews now appearing on over 20% of searches and cutting click-through by roughly 60% where they appear. A page-one position with almost no clicks used to mean one of two things. Now it can mean a third: you are ranking perfectly well underneath an answer. Look at the result page before you diagnose the query.

    Bar chart of US Google searches ending without a click, 60.45 per cent in 2024 rising to 68.01 per cent in 2026
    The clickless share of US search, from SparkToro.

    Position 11.7 with a 0.04% click rate. Beware the average.
    ‘american fitness’: 4,508 impressions, two clicks, average position 11.7.

    Average position is an average. A query showing 11.7 might have sat at 8 for a week and 30 for two months, and the mean lands in a place the page never actually occupied. Two clicks from four and a half thousand impressions at a supposed position 11.7 is not consistent with page one at all. Position 11 gets a couple of per cent on a bad day.

    So before diagnosing this one I’d go and look at the position over time rather than the average, and at whether those impressions came from a handful of days. Half the “mystery” rows in Search Console are averaging artefacts.

    Position 1.8 with 24.3%. This is the benchmark.
    Rank first, get a quarter of the clicks. Keep this row on screen while you look at the others, because it’s the proof that the site’s titles are basically fine. If your titles were the problem, the top-ranked query would be underperforming too. It isn’t.

    That single comparison rules out the title explanation for the whole report in about five seconds, and it’s why I always pull the site’s best-performing query alongside its worst.

    The other two sites

    Same pattern, different verticals.

    A continuing-education provider: ‘cpe monitor’: 27,903 impressions, 106 clicks. That’s the query in the headline. A branded-adjacent term for a system their audience uses daily, and the site was appearing constantly and being passed over.

    A medical education provider: ‘flight paramedic’: 5,559 impressions, 114 clicks. A 2% click rate on a career-defining term for exactly their audience.

    Both of those are worth investigating properly. Both were sitting in a Search Console report that nobody had filtered, underneath thousands of rows, with no way to tell them apart from the ‘blue fruits’ of this world.

    The filter I actually use

    They get called sweet spot keywords. It isn’t my term. I picked it up years ago from someone in this industry a good deal smarter than me, but it’s the same filter in every audit I’ve written:

    • Average position between 4 and 20
    • Impressions above 500 over three months
    • Sorted by impressions

    Positions 4 to 20 because that’s the band where the ranking is real but the position isn’t earning. Above position 4 there’s little headroom. Below 20 you’re not looking at a CTR question at all, you’re looking at a ranking question, and it belongs in a different pile.

    The impression threshold exists to stop you optimising a title for a query with forty impressions. On a smaller site I’ll drop it to 100.

    What comes out is usually a few dozen rows, and those are the ones where a better title, a better meta description, or an FAQ block answering the actual question can move real traffic inside a month or two. It is the fastest honest win available on most established sites, and it needs no new content and no new links.

    What to do with the ones that survive the filter

    • Read the query as a question and check the page answers it. Most of the time the page is adjacent to the query rather than about it. Adding a section that addresses the query directly, in the query’s own words, does more than any title rewrite.
    • Then rewrite the title, for the query and not the page. If the query is ‘flight paramedic certification requirements’ and the title is ‘Programs | Company Name’, you’re asking people to infer.
    • Then the meta description. It isn’t a ranking factor and it is the two lines under the link. Google rewrites it often, but not always, and when it does use yours it’s the difference between a click and a scroll.
    • Then leave it six weeks. CTR changes need impressions to accumulate before the number means anything.

    What I’d stop doing

    Treating impressions as demand. They aren’t. Impressions are how often you appeared, which is a function of how many people searched and how deep the result sets were and how often Google chose to show you. ‘blue fruits’ had twenty-five thousand impressions and represented no demand for that business whatsoever.

    The report is not a to-do list sorted by opportunity. It’s a list of things that happened, and about half of it is noise.

    The structural half of that is now measurable, and it is larger than most people think. The same SparkToro study found that in January to April 2026, 68.01% of US Google searches ended without a click to the open web, up from 60.45% in 2024. Two searches in three now produce an impression for somebody and a click for nobody.

    Which cuts both ways, and I would rather you took the second half. A poor click rate is increasingly the ordinary condition of a search result rather than evidence that something on your page is wrong, so stop reading it as a verdict. But it also makes the position column the most important thing in that report, because position is the last column still measuring something you control.

    The short version

    1. A high-impression, low-click row is four different problems wearing the same clothes.
    2. Read the average position first. Below 20, it’s a ranking problem, not a CTR one.
    3. Page one with near-zero clicks is usually intent mismatch, and often the right answer is to stop chasing the query.
    4. Average position is an average. Check position over time before diagnosing.
    5. Pull your best query as a control. If it converts at 24%, your titles aren’t the problem.
    6. Filter: position 4–20, impressions over 500. That’s the actionable pile.
    7. Fix the page before the title. Then the title, then the description, then wait six weeks.

    If a site should be ranking and it isn’t, that’s the work I do. If you want somebody to go through your Search Console data and tell you which rows are real, that’s part of an SEO audit.

  • What a chiropractor’s website and a 9,000-page marketplace have in common

    The smallest site in my audit folder has 189 pages. It’s a medical education provider.

    The largest is a classic car marketplace with 9,220 pages indexed.

    The most recent is a chiropractic clinic with a couple of dozen pages, a Google Business Profile and a blog.

    Different platforms, different decades, different industries, different money. I went back through all eleven audits expecting the findings to sort themselves by size: technical problems on the big sites, content problems on the small ones, roughly what everyone assumes.

    They didn’t sort at all. The same three findings appear at every scale. What changes is the number attached to them, and what the fix costs.

    The three that don’t care how big you are

    • Internal linking. Eleven of eleven. Every audit, every size. On the clinic it was a home page that linked to its services only through the menu. On the marketplace it was 8,317 pages that nothing linked to at all. Same finding, four orders of magnitude apart.
    • Schema markup. Ten of eleven, missing or incomplete. Absent entirely on a clinic; absent entirely on an ecommerce catalogue turning over real money.
    • Thin content. Ten of eleven. The clinic had service pages with a paragraph on them. The marketplace had 7,353 pages under 500 words. One is an afternoon of writing. The other is not a writing problem at all. It’s a template producing pages that were never going to have anything to say.

    Nothing else came close to those three. Not speed, not links, not the things that get written about.

    Why scale doesn’t change the diagnosis

    Because these aren’t really content problems or technical problems. They’re all the same problem wearing different clothes: the site doesn’t say what it is.

    Internal linking is how a site tells search engines which of its pages matter. Schema is how it states plainly who and what it is. Thin content is what happens when a page exists without having anything to say. A site failing all three has published a lot of material without ever making a claim about itself.

    A two-person clinic can fail that and so can a marketplace with nine thousand pages, because the failure is architectural, not proportional. You don’t grow out of it. You grow it.

    There is a mundane reason the failures rhyme across sizes, and it is worth saying out loud. HTTP Archive’s 2025 Web Almanac has 54% of the web running on a CMS, WordPress at 64.3% of those, and the distribution barely shifts with scale, with WordPress still around 58% of CMS usage inside the top 10,000 sites. The chiropractor and the marketplace are running the same software, configured by people who learned it the same way, inheriting the same defaults. Most of why the findings repeat is that the sites were built out of the same parts.

    What scale actually changes

    Three things, and they’re all about method rather than diagnosis.

    Whether you can look at everything. On the clinic I opened every page. That took an afternoon and I saw things no crawler reports: copy that describes a mood rather than a service, a testimonial section with no testimonials in it, a header that renders differently on the blog.

    On the marketplace that’s impossible, so you work from exports and samples, and you lose the things only a human notices. Big-site audits are more rigorous and less perceptive. That’s a real trade and nobody talks about it.

    Whether the fix is editing or engineering. The clinic’s thin service pages get fixed by someone sitting down and writing them. The marketplace’s 7,353 thin pages don’t get fixed by writing. They get fixed by changing what the system generates, or by deciding those pages shouldn’t exist.

    This is the difference that actually matters commercially. On a small site the recommendation is work somebody can do. On a large one it’s a change to a system, which means a developer, a test environment and someone with authority to approve it. Plenty of large-site recommendations are correct and never get implemented for exactly this reason. One of mine never did, and I think the client was right.

    Whether the numbers mislead you. On a small site every finding is countable and every count is meaningful. On a large site the counts are enormous and mostly describe the same handful of causes. 8,317 orphan pages, 8,317 missing canonicals and 7,353 thin pages on one site were one template, not three problems, but a report lists them as three, and a spreadsheet with 400 rows in it is how a technical audit becomes something nobody implements.

    Small sites: read every page. Large sites: find the template.

    Which is harder to fix

    Large sites are harder to fix and easier to diagnose. Small sites are the reverse.

    On a large site the problems are usually systematic, which means they’re visible in any export and hard to change. Ten thousand pages have no canonical because one template doesn’t emit one. You’ll find that in ten minutes and it may take six months to ship.

    On a small site the problems are usually specific, which means they’re easy to change and easy to miss. The home page doesn’t mention two of the four services. The About page has one internal link. There’s no map embed. None of that appears in a crawl report as an issue, because none of it is technically wrong. It’s just a site that hasn’t been thought about. Someone has to read it and form a judgement.

    That’s why I don’t have a different process for large and small sites. I have the same process, and on the small ones more of the work is reading.

    What this means if you’re choosing who to hire

    I’ll declare the interest: this is an argument for what I do, so weigh it accordingly.

    The industry sorts itself by vertical, into ecommerce specialists, local specialists and SaaS specialists, and there are good reasons for that. Vertical knowledge is real. Somebody who has audited forty Shopify stores knows where the bodies are buried.

    But the diagnosis mostly isn’t vertical. Across eleven audits spanning chiropractic clinics, a homeware store, a car marketplace, three continuing-education platforms and an ad agency, the top three findings were identical. What differed was the fix, and the fix is the easier half. Once you know what’s wrong, the remedy is usually not mysterious.

    If a site should be ranking and isn’t, the useful question is not “who knows my industry” but “who is going to work out what’s actually wrong before recommending anything.” Those are different skills and only one of them is scarce.

    The short version

    1. Internal linking, schema and thin content appear at every scale. Eleven, ten and ten out of eleven audits.
    2. They’re one problem: the site never says what it is.
    3. Small sites: read every page. You’ll see things no crawler reports.
    4. Large sites: find the template. The big numbers usually describe one cause.
    5. Small-site fixes are editing. Large-site fixes are engineering. That’s what decides whether they get done.
    6. Large sites are easier to diagnose and harder to fix. Small sites are the reverse.
    7. The diagnosis travels across industries. The remedy is the part that needs local knowledge.

    If a site should be ranking and it isn’t, that’s the work I do, at whatever size. If you’re not sure which of several plausible problems is the one costing you, that’s what an SEO audit is for, and if I look and there’s nothing worth fixing, I’ll tell you that.

  • The menu item that pointed at an unfinished draft

    A clinic’s main navigation had an item called Athlete Care. It pointed at /elementor-685/.

    That’s a page-builder template. Not a page anybody wrote. It’s the numbered artefact a builder creates when you start something and don’t finish it. It was in the header menu of a live site, on every page, being crawled every time, and it had been there long enough that nobody in the business saw it any more.

    I find something in this family on almost every site I’m called into, and it’s a category of problem that doesn’t have a name. Nobody audits for it because it isn’t in any tool’s checklist. It’s the accumulated debt of a site being edited by a page builder over years by people who each left something behind.

    Here’s what it looks like in the wild.

    The five shapes it takes

    1. Draft and template URLs escaping into the site.
    The /elementor-685/ above. Its siblings: /page-2-copy/, /home-new-final/, a duplicate service page from when someone was rebuilding it. These get linked from a menu by accident, or picked up by the sitemap, and then they’re real pages as far as Google is concerned.

    Related, and worth knowing: on WordPress, Elementor registers its templates as a post type, and if your sitemap plugin is generating an entry for it you can end up submitting an XML sitemap of template files. I found exactly that on an agency site, where the sitemap index included wp-sitemap-posts-elementor_library-1.xml alongside taxonomy sitemaps full of noindexed URLs.

    2. The header that isn’t the same header everywhere.
    On that same clinic, the menu rendered differently on different pages. Not responsively differently. Structurally differently, because more than one header template existed and different pages were pulling different ones.

    On another clinic, the blog posts had no header menu at all. Every post on the site was a dead end for navigation, and since the header is the main internal linking mechanism on a small site, that removed the only path from the blog to anything that sells.

    3. Headings emitted for layout.
    Seven H1 tags on a home page, several of them blank. Blank H2s scattered through. Nobody wrote those. A builder emits a heading element per section container whether the section has a heading or not. I’ve written that one up separately because it turns up on themes as well as builders.

    4. Elements that exist in the markup and nowhere on screen.
    An agency site had H1 and H2 tags bound to the logo. Every page, every post, invisible to anyone looking at the site. The heading structure of the entire site began with an element that rendered as nothing.

    5. Embeds that work until they don’t.
    A med spa’s booking form embed was dead when I audited it. It had been working the day before. Nobody had touched the page. A third-party widget had changed, or a script had failed to load, and the primary conversion point on the site was simply gone.

    That one isn’t really the builder’s fault, but it’s the same underlying condition: a page assembled from parts that update independently, with nobody watching the whole.

    Why it accumulates

    Page builders are genuinely good at what they’re for. They let people who can’t write HTML change their own website, which is a real and valuable thing, and I’m not going to write the sniffy post about how everyone should hand-code.

    The problem is what they optimise for. A builder makes it easy to add. Every operation is additive: new section, new template, duplicate this page and edit it. Removing things is harder, riskier and invisible in the interface, so nobody does it.

    Multiply that by three people over four years and you get a site with several header templates, a handful of orphaned drafts, headings emitted by containers, and a sitemap listing the lot. No single decision was wrong. Nobody was careless. It’s just what an additive tool produces over time when nothing prunes it.

    This is not a niche condition. HTTP Archive’s 2025 Web Almanac puts 54% of the web on a CMS, WordPress at 64.3% of those, and, the number that matters here, roughly 60% of WordPress sites running a page builder, Elementor alone at 43%. What I am describing is not an edge case on badly built sites. It is close to the default construction method for a fifth of the web.

    It also never fails loudly. Every one of the five above renders fine, returns a 200 and looks completely normal to the person who owns the site.

    How to find yours

    Fifteen minutes, no tools you don’t already have.

    • Crawl the site and sort the URL list alphabetically. Not by status code. Alphabetically. Draft artefacts announce themselves: elementor-, -copy, -2, -new, -final, -test, -old. They cluster together and you can see them at a glance.
    • Then read your own menus, on three different pages. A service page, a blog post, and the contact page. Click every item. Compare what you see on each. If the header differs structurally between them, you have more than one template in play.
    • Then open your XML sitemap index and read the list of child sitemaps. Anything you don’t recognise as a real content type is worth chasing. Template libraries, tag archives with one post in them, author archives on a single-author site.
    • Then export headings from the crawl and sort by count. Blank headings and pages with more than one H1 are the builder’s signature.
    • Then load the pages that carry a form or a booking widget and actually complete the first step. Not look at it. Use it.

    Fixing it without breaking the site

    The instinct is to clean everything at once. On a site with four years of accumulated changes, that’s how you take down the home page on a Friday.

    Delete the draft artefacts first. They’re the safest thing on the list, because nothing depends on a template nobody finished. Remove them from the menu, then delete them, then confirm they 404 or 410 rather than redirecting somewhere odd.

    Consolidate the header templates second, and do it on a staging copy if you have one. This is the change most likely to have unexpected consequences, because builders let templates be conditionally assigned in ways nobody documented.

    Fix headings at the template level, not the page level. A change made in the editor gets overwritten by the next template update. I’ve watched a heading fix survive three weeks and then quietly revert, and nobody noticed for months because, again, it doesn’t show on screen.

    Then write down what you changed. I keep a log for every site I touch: what changed, when, and what it was meant to do. It sounds like bureaucracy until the first time a theme update reverts something and you can’t remember whether you fixed it or dreamt it.

    The honest framing

    None of this is why a site with no authority doesn’t rank. If your domain is new and nobody links to you, cleaning up template artefacts changes nothing and I’d rather say so.

    There is one number that makes me less relaxed than that paragraph sounds. In the same Almanac data, 45% of WordPress sites pass Core Web Vitals on mobile, against 74% for Wix and 85% for Duda. WordPress is not slower by nature. It is slower by accumulation, and every one of the five shapes above is a small deposit into that account. Individually none of them matters, which is exactly why nobody removes any of them. The pass rate is what they add up to.

    Bar chart of the share of sites passing mobile Core Web Vitals: WordPress 45 per cent, Wix 74 per cent, Duda 85 per cent
    Mobile Core Web Vitals pass rates by platform, from the 2025 Web Almanac.

    What it does is remove the reasons a site that should be working isn’t. A menu item pointing at a template, a blog with no navigation, headings describing containers. Individually each is small, and I’ve never seen one of them be the single cause of anything. Collectively they’re the difference between a site that has been maintained and one that has merely been added to, and Google is fairly good at telling those apart even if it can’t tell you why.

    The short version

    1. Draft and template URLs escape into live menus and sitemaps. Sort your crawl alphabetically and they’re obvious.
    2. Check the header on three different page types. More than one template is common and invisible.
    3. A blog with no header menu is a dead end for the only internal linking a small site has.
    4. Builders emit headings for layout. Fix at template level or it reverts.
    5. Use your own forms and booking widgets. Don’t look at them. Use them.
    6. Delete drafts first, consolidate templates second, on staging.
    7. Keep a change log. You will need it after a theme update.

    If a site should be ranking and it isn’t, that’s the work I do. Technical SEO covers this layer. If you’re not sure which of several plausible problems is costing you, that’s what an SEO audit is for.

  • Your header menu is wrapped in H2 tags

    On a Shopify homeware store I audited, every item in the header menu was an H2.

    Not styled to look like one. Actually wrapped in <h2> tags. So was every product name on the home page, and every product name on every collection page. A collection page listing forty products had forty H2 headings before you counted anything a human had written.

    That store also had 1,562 URLs with a missing or empty H1.

    That is less exceptional than it sounds. HTTP Archive’s 2025 Web Almanac found an H1 present on only 70% of mobile pages, and non-empty on just 66% — so roughly a third of the web has no usable top-level heading at all. Which is the first thing to be clear about: this is not the reason your competitors are beating you. Most of them have the same problem.

    So the pages had no top-level heading and forty second-level ones, and the second-level ones said things like “Shop” and “About” and a product SKU. As a description of what the page was about, it was worse than nothing.

    None of this was visible. The site looked good. It converted. You only find it by reading the markup, which is exactly why it survives for years while everyone wonders why the collection pages don’t rank.

    Four sites, four ways of getting it wrong

    I pulled every heading finding out of the audits in my folder. Eight of eleven had one. They were not the same mistake.

    Headings used as font sizes. The Shopify store above. Someone needed the menu text larger, reached for an H2, and the theme carried it site-wide.

    Headings used for layout depth. A continuing-education platform where the navigation was wrapped in H4 and H5 tags, a long run of them with several completely empty, and the page carried two H1s, “LIVE CE LINEUP” and “FEATURED HOME STUDY CE”, with no H2 anywhere. The outline went H1, H1, H3, H4, H5, skipping the level that would have organised any of it.

    Headings attached to invisible furniture. An agency site where H1 and H2 tags were bound to the logo. They appeared on every page and every post, and they rendered as nothing at all, with no text a visitor could see. Every page on that site had a heading structure that began with an element nobody knew existed.

    Headings emitted by a page builder. A chiropractic clinic with seven H1 tags on the home page, several of them empty, plus a run of blank H2s. Nobody chose that. A builder emits a heading for each section container whether the section has a heading or not.

    Different platforms, different causes, same result: the heading structure describes the layout rather than the content.

    The pattern holds well beyond my folder. WebAIM crawled the top million home pages in February 2026 and found skipped heading levels on 41.8% of them, up from 39% the year before, with 18.1% carrying more than one H1. Two in five pages have an outline that does not survive being read in order — and the number is getting worse, not better, which tells you how few people are looking.

    Bar chart showing 41.8 per cent of the top one million home pages skip a heading level and 18.1 per cent have more than one H1
    Heading problems across the top million home pages, from the WebAIM Million.

    What headings are actually for

    They are the document outline. That’s it.

    If you stripped every image, every colour and all the body text off your page and kept only the headings, you should be left with a table of contents that tells a stranger what the page is about and how it’s organised.

    Run that test on the Shopify store and you get: Shop. About. Contact. Blue Ceramic Mug. Grey Ceramic Mug. Speckled Bowl. Run it on the clinic home page and you get seven blank lines.

    Google is not being tricked by any of this and it isn’t being harmed much either. Heading tags are a weak signal, and I want to be honest that this is not the reason a site is invisible. Search engines have coped with badly structured HTML for twenty-five years and they cope with yours.

    The reason to care is narrower and it’s real: headings are one of the few places where you get to state, in plain language, what a page is about, in a position that carries structural weight. When the menu is using those slots, you have given the field away for nothing. Fixing it doesn’t add a signal. It stops you throwing one away.

    There’s also a second reason that has nothing to do with rankings. Screen readers navigate by heading. A page with seven empty H1s and a menu wrapped in H2s is genuinely hard to use if you’re not looking at it, and that is a worse problem than the SEO one.

    That is not a hypothetical. In WebAIM’s survey of 1,539 screen reader users, 71.6% said navigating the headings is the first thing they do on a long page — ahead of the find feature at 13.6% and reading through sequentially at 6.4%. For most of those people the heading outline is the page. If yours reads Shop, About, Contact, Blue Ceramic Mug, that is what they have been handed to navigate with.

    How to check yours in about a minute

    • Look at the outline, not the tags. Any crawler will export headings per URL. Sitebulb and Screaming Frog both do. What you’re reading is not “does it have an H1” but “does this list read like a table of contents”.
    • Sort by count. Pages with zero H1s and pages with more than one are both worth a look, but the fastest tell is the H2 count. Anything with more than about ten on a normal page is a template problem, not a writing problem. Forty is a product grid.
    • Look for empties. Blank headings are the signature of a page builder. If you have them, the fix is at the template level and it will fix every page at once.
    • Then read one page’s headings out loud. Genuinely. If it doesn’t sound like an explanation of the page, it isn’t one.

    Fixing it

    The advice I’ve given in every one of these audits is the same and it’s unglamorous: replace the tag, keep the appearance.

    Menu items, product names in a grid, decorative labels, footer column titles: none of these are headings. They should be normal text or a span, styled with CSS to look exactly as they do now. The visual design does not change. Nothing on the page moves. Only the markup changes.

    Then give the page a real outline:

    • One H1 that says what the page is. On a collection page that’s the category, not the store name.
    • H2s for the actual sections of the content, in words a customer would use.
    • H3s underneath those where there’s genuine nesting, and not otherwise.
    • No skipped levels, no empties.

    On the Shopify store that meant the collection page got an H1 naming the category, a handful of H2s for the sections of the intro copy and the FAQ, and forty product names demoted to plain text. The page looked identical afterwards.

    A warning about page builders. If empty headings are being emitted by the builder, changing them in the editor is temporary. The next template update or section edit brings them back. The fix has to go into the theme or the section template, or it will quietly undo itself. I’ve watched that happen more than once.

    The thing I’d rather you took away

    Heading problems are almost never a writing failure. In eight of the eleven audits, the person who wrote the page did nothing wrong. A theme, a builder or a platform emitted the markup, and nobody has ever looked at it because it doesn’t show up on screen.

    That’s the general shape of a lot of technical SEO. The problems that survive longest are the ones with no visible symptom, and heading structure is the purest example of it. Invisible to the person who owns the site, obvious in thirty seconds to anyone who opens the export.

    The short version

    1. Eight of eleven audits had a heading problem. Menus as H2s, navigation as H4/H5, headings bound to the logo, seven empty H1s from a page builder.
    2. The test: strip everything but the headings. It should read like a table of contents.
    3. Headings are a weak ranking signal. This is not why your site is invisible. It’s a slot you’re wasting.
    4. The accessibility case is stronger than the SEO case. Screen readers navigate by heading.
    5. Replace the tag, keep the appearance. Nothing on the page needs to move.
    6. If a builder is emitting them, fix the template or the change will undo itself.

    If a site should be ranking and it isn’t, that’s the work I do. Technical SEO covers the markup and rendering layer. If you’re not sure which of several plausible problems is costing you, that’s what an SEO audit is for.

  • 371 pages beat 1,510. Half the links beat twice the links.

    Here are two sites in the same market, from an audit I ran in 2022.

    Client Competitor
    Pages indexed 1,510 371
    Referring domains 3,575 1,853
    Organic traffic / month 23,825 47,722
    Keywords in top 3 517 1,216

    The client had four times the pages. Nearly twice the referring domains. And half the traffic.

    That is not a small gap or a measurement artefact. The competitor was ranking in the top three for more than twice as many keywords off a quarter of the content and half the links.

    I’ve thought about this comparison more than any other in fifteen years of audits, because it kills two beliefs at once and most people hold both.

    The client wasn’t losing on volume. They were losing on hit rate.

    The temptation is to read that table as “the competitor’s content is better” and move on. Look at one more row instead.

    Client Competitor
    Keywords ranking in the top 100 26,618 16,142
    Keywords ranking in the top 3 517 1,216

    The client ranked for ten thousand more keywords than the competitor. They just ranked for almost none of them well.

    Roughly 2% of the client’s ranking keywords were in the top three. For the competitor it was about 7.5%. Same market, same query set, and one site converts its rankings into positions that get clicked at nearly four times the rate.

    That is the number I’d want on the wall. Not how many keywords you rank for. What proportion of them are in a position anybody sees.

    Ranking on page four for twenty-six thousand things is not a foundation to build on. It’s the site telling you it has spread itself across a market rather than winning any part of it.

    Where the extra 1,100 pages came from

    I went back through the crawl notes for that client, and the extra pages were not a content strategy. They were exhaust.

    • 138 pages under 500 words out of 1,265 indexable
    • 1,082 blog posts carrying /blog/ in the URL for no reason
    • 266 paginated pages with no canonical pointing back to the parent
    • Author archives, several pages deep, for authors with a handful of posts each

    Strip the archives, the pagination and the thin posts and you are not far off the competitor’s page count. The difference between 1,510 and 371 was largely not writing. It was a CMS generating URLs and nobody stopping it.

    I’ve written about what that looks like at the extreme, a site where 90% of the indexed pages were unreachable. This is the mild version, and the mild version is far more common.

    The link half of it is worse

    3,575 referring domains against 1,853, and the smaller profile wins.

    Referring domain count is the number everybody quotes because it’s the number every tool puts at the top of the report. It says how many distinct sites link to you. It says nothing whatsoever about whether those sites matter.

    Two profiles with identical counts can be completely different assets. One is three thousand five hundred directories, aggregators, scraped listings and expired-domain blogs. The other is eighteen hundred real publications in the sector. The tool renders both as a number, and the bigger number is the weaker profile.

    I can’t prove the composition from the data in that audit and I’m not going to pretend otherwise. I didn’t do a link-by-link teardown of a competitor’s profile. But when a site with half your referring domains outranks you this comprehensively, the count is not the variable, and continuing to buy against the count is how the gap gets wider.

    There is one piece of published work that points the same way. Ahrefs ran a correlation study across 44,589 non-branded keywords and found that the sum of organic traffic to the referring pages correlated with rankings better than the number of referring pages did. Their own framing is careful and so is mine — correlation is not causation, and it is a rank correlation on a keyword sample, not a proof about your site. But it is the same shape: the metric the tools print at the top of the report is the weakest one they have, and the number underneath it is doing the work.

    The honest counterexample

    I don’t want to leave you with “fewer pages and fewer links is better”, because that is just as wrong and I have the data to show it.

    Same folder, different audit. A classic car marketplace against the category leader:

    Client Market leader
    Pages indexed 9,220 334,000
    Referring domains 671 29,812
    Organic traffic / month 7,998 497,000
    Keywords in top 3 31 11,464

    Here the bigger site wins on everything, by a factor of forty or more.

    So scale isn’t the enemy. Scale done properly is a genuine moat: 334,000 pages of real inventory, each one a legitimate answer to a specific query, backed by thirty thousand referring domains. Nobody closes that with a blog.

    It compounds, too, which is the uncomfortable part. In a study of 200,000 pages across 10,000 keywords, Ahrefs found pages already ranking first gained new referring domains at 5–14.5% per month, and the pace fell steadily with position. The market leader is not just thirty thousand links ahead. It is acquiring them faster than the client is, from the position the client is trying to reach. That is worth knowing before you commit a year to closing a gap by outworking it.

    The rule isn’t “smaller is better.” It’s that page count and link count aren’t the variables, and treating them as targets produces sites like the first client: enormous, well-linked, and beaten by something a quarter its size.

    What I actually look at instead

    When someone shows me a competitor comparison, I ignore the top two rows and go straight to these.

    • Top-3 keywords as a share of all ranking keywords. The hit rate. It tells you whether the site converts presence into position. Under about 3% and you have a quality or authority problem no amount of publishing fixes.
    • Traffic per indexed page. Crude, and I use it anyway. The first client was pulling roughly 16 visits per indexed page per month. The competitor was pulling 129. That ratio is the whole story in one number.
    • How many pages you’d defend. Go through the list and mark every page you would fight to keep. On most sites the honest answer is somewhere under a third. Those are your real page count. Compare that to the competitor’s total instead.
    • Referring domains you’d name out loud. Same test, for links. How many of those three thousand five hundred would you mention on a sales call?

    None of these are clever metrics. They’re the standard numbers with the denominator put back in, and putting the denominator back is most of the work.

    What I told that client

    Not “write more”. They’d been writing for years and it had produced 26,618 keywords ranking nowhere.

    Consolidate the thin posts into fewer, better pages. Fix the URL structure and the pagination so the CMS stops manufacturing URLs. Then put the effort into a smaller number of pages that could realistically reach the top three, and into links from places you’d name on a sales call.

    Fewer pages, better placed. It’s a harder sell than a content calendar because it looks like doing less, and for the first three months it is doing less.

    The short version

    1. A competitor with 371 pages and 1,853 referring domains beat a client with 1,510 and 3,575, with twice the traffic, more than twice the top-3 rankings.
    2. The client ranked for 10,000 more keywords and almost none of them well. 2% in the top three against 7.5%.
    3. The extra pages weren’t content. Thin posts, pagination, author archives, a bloated URL structure.
    4. Referring domain count says nothing about referring domain quality, and the tools will never tell you the difference.
    5. Scale still wins when it’s real. 334,000 pages of genuine inventory is a moat.
    6. Stop reading totals. Read ratios. Top-3 share, traffic per page, pages you’d defend, links you’d name.

    If a site should be ranking and it isn’t, that’s the work I do. If you’re not sure whether your problem is content, links or something underneath both, that’s what an SEO audit is for.

  • Three clinics, three audits, the same five gaps

    I audited three healthcare clinics this year. Two chiropractic practices and a med spa, in three different towns, with three different web builds and no connection to each other.

    Five things were missing from all three.

    Three sites is a small sample and I’m not going to pretend otherwise. But these were not five subtle judgement calls. They were five things that a local business is either doing or not doing, and none of the three was doing any of them. That’s fifteen out of fifteen, and after fifteen years I can tell you it’s not a coincidence. It’s what the standard local build leaves out.

    Here they are, in the order I’d fix them.

    1. The Google Business Profile map is missing, or it’s the wrong map

    None of the three had this right.

    One had no map embedded anywhere on the site at all. One had it embedded on the home page and the FAQ page, which are not the pages anybody looks for it on, and the embed was pointing at the wrong location. The third had a map on the contact page showing a different business entirely.

    Let me be straight about why this is check one, because the usual justification for it is wrong. Embedding a Google map does not make you rank. I’ve seen that claim made a lot and I’ve never seen evidence for it.

    What it does is settle the question of which business you are. Your Business Profile, your footer address, your contact page and the map all need to describe one entity in the same terms. When they don’t, and on one of these three they actively contradicted each other, you have handed Google an ambiguity to resolve, and it may not resolve it your way.

    It also just helps the customer, who is trying to work out whether you’re close enough to bother with.

    Put it in the footer, on the About page, and on the Contact page. Take it from your own Business Profile listing rather than by searching the address, which is how you end up embedding the neighbour.

    2. No schema markup

    Absent on all three. On one it was completely absent: nothing, anywhere on the site. On another the service pages had none. On the third there was no LocalBusiness markup on the home page.

    This is the one I find hardest to be interesting about, because the advice is boring and correct: a local business should have LocalBusiness markup on the home page with name, address, phone, hours, and links out to the profiles that confirm it’s you.

    What I will say is what it’s for, since this gets oversold. Schema doesn’t rank you. It tells a machine, unambiguously, facts that it would otherwise have to infer from your page copy. For a local business the facts that matter most, who you are, where you are and when you’re open, are exactly the ones that are usually sitting in a footer image or a styled div where nothing can read them reliably.

    Two notes, since both came up in these audits.

    Don’t add FAQ schema expecting to see anything. Google restricted FAQ rich results to authoritative government and health sites in 2023, and removed them entirely in May 2026. The Search Console reporting for it is being switched off through this summer. The markup still helps a machine read the page and it does no harm, but if somebody is selling you FAQ schema as a visibility win in 2026, they haven’t read the release notes.

    Don’t mark up things that aren’t on the page. Reviews you don’t display, hours you don’t publish. It’s a rich results violation and it’s the fastest way to lose the markup entirely.

    3. No reviews page on the website

    All three had reviews. One had 44 five-star reviews on its profile, one had 93, one had 8.

    None of the three had a page on their own website about them.

    I recommend one to every local client, and the reasoning is straightforward. The reviews sitting on your Google Business Profile are on Google’s property. They do their job in the map pack and that’s valuable. But they are not content on your site, they are not something you control, and a person comparing three clinics on a laptop is often reading the websites rather than the profiles.

    A reviews page carrying real quotes, attributed, ideally with the treatment or service named, and a link out to the profile so it can be verified, is a page that can rank, that you own, and that answers the question every prospective patient is actually asking.

    The scale of that is easy to underestimate. BrightLocal’s 2026 Local Consumer Review Survey, covering 1,002 US consumers and published February 2026, found 97% read reviews for local businesses, and that 31% will now only use a business rated 4.5 or higher, nearly double the 17% who said so a year earlier. The bar is moving, and quickly.

    The number I would put in front of the clinic with 8 reviews, though, is a different one: 74% are looking for reviews written in the last three months, and 32% want something from the last two weeks. That reframes the whole problem. It is not that eight is too few. It is that a review count is a stock and what people are reading is a flow, and a practice with no process for asking has no flow regardless of what the total says.

    The gap between 93 reviews and 8 reviews is also worth naming. The clinic with 8 had a perfectly good practice and no process for asking. That is not an SEO problem and I’d be overreaching to call it one, but it’s the single biggest local visibility difference between those three businesses and no amount of work on the website closes it.

    4. No video anywhere

    None of the three had a YouTube channel. One of them had a video about their practice on somebody else’s channel, which is a strange position to be in. The content exists and the competitor of nobody in particular owns it.

    I want to correct something here that I’ve said myself in the past, including in one of these audits. The usual line is that YouTube is mandatory because Google owns it. That reasoning doesn’t hold up. Ownership isn’t why video shows up.

    The real reasons are narrower and they’re enough on their own:

    • Video appears in search results, in Business Profiles, and increasingly inside AI-generated answers. It’s surface area you don’t otherwise have.
    • For a treatment nobody has had before, ninety seconds of the practitioner explaining what happens does more for a booking decision than a page of text.
    • It’s the cheapest trust signal available to a small clinic. A real person, in the real room, on camera.

    Three videos is enough to start. What the treatment is, what to expect at a first appointment, who you are.

    And it is unoccupied ground, which is the part I would emphasise over any of the above. HTTP Archive’s 2025 Web Almanac found a video element on just 5.7% of mobile pages. Ninety-four per cent of the web has none. For a clinic competing against four other clinics in the same suburb, that is not a box to tick. It is the one differentiator on this list that nobody in the local market is likely to have taken.

    5. The location question was never answered

    All three sites were ambiguous about where they operate. Not wrong. Ambiguous. Service pages with no place name anywhere. Contact pages listing four towns. Blog posts targeting one town while the service pages targeted none.

    There are two legitimate answers and the sites had chosen neither.

    If you want one location, then commit. The service pages carry the town in the URL, the title, the H1 and some of the H2s. Everything on the site points at one place and Google gets a very clear signal.

    If you want several, you need a real page for each, with genuinely different content, staff, directions, parking, local specifics. Not a template with the town name swapped out. I’ve seen that build fail more than once, and it fails as a set: forty near-identical pages don’t rank individually and they drag the site down collectively.

    The med spa’s contact page named four towns. Nothing else on the site did. That’s the most common version of this. The business knows its catchment perfectly well and the website has never been told.

    Pick one. The wrong answer, executed properly, beats no answer.

    What wasn’t on the list

    Worth saying, because local SEO advice usually leads with these.

    Citations weren’t the problem on any of the three. Neither was the primary category, since all three were set sensibly. Neither was posting to the Business Profile.

    Those get written about constantly and they were the least of it. What was actually missing was more basic and less interesting: tell Google who and where you are, consistently, in every place it looks.

    The short version

    Five gaps, all three clinics, none of them exotic:

    1. The map embed is missing or pointing at the wrong business. Footer, About, Contact. Take it from your own profile.
    2. No schema. LocalBusiness on the home page. Don’t expect anything visible from FAQ markup in 2026.
    3. No reviews page on your own site. The reviews are Google’s asset until you build one.
    4. No video. Three is enough to start.
    5. No decision about location. One town properly, or real pages for several. Not neither.

    None of this is clever. All of it was missing from three out of three practices that were paying for a website and wondering why it wasn’t working.

    There is a sixth thing missing from all three, and I left it off the list deliberately because it is a different kind of gap. Not one of them had a page saying which insurers they take or what a visit costs. That does not stop Google understanding the practice, so it never shows up in a crawl. It just quietly costs you the patient who was comparing three clinics and could only find prices on one. I have written about that separately in the sixth gap, and what a clinic should publish about cost.

    If a site should be ranking and it isn’t, that’s the work I do. Local SEO is where most of this sits. If you’re not sure which of several plausible problems is costing you, that’s what an SEO audit is for, and if I look and there’s nothing worth fixing, I’ll tell you that.