Organic search nearly doubled and you now hold four number-one positions on the terms that put a heater in a backyard. Two things are capping it: the map pack, and where the ad budget goes. Both are fixable this month.
594 clicks from Google against 337 a year ago, on 89,497 impressions. Organic sessions went 619 to 1,304.
| Channel | 2026 | 2025 | Change | Engaged |
|---|---|---|---|---|
| Organic search | 1,304 | 619 | +111% | 71% |
| Paid search | 313 | 194 | +61% | 68% |
| Referral | 46 | 63 | -27% | 78% |
| Organic social | 14 | 13 | +8% | 43% |
| AI assistants | 6 | 0 | new | 33% |
| Total | 1,683 | 889 | +89% |
Analytics logged another 2,683 “direct” sessions. We have left them out, and you should know the reason before anyone quotes a bigger number.
| Direct sessions by country | Sessions | Engaged |
|---|---|---|
| United States | 1,267 | 53% |
| Singapore | 609 | 1% |
| China | 527 | 3% |
| Canada | 54 | 63% |
Singapore and China are 1,136 of those sessions at 1–3% engagement and roughly 28 seconds on the page. Visitors from Google engage at 71% and stay nearly three minutes. That traffic is automated, and you sell pool heaters in Broward County.
We are filtering it at the server in September so it stops appearing at all.
429 keywords rank, 39 inside the top ten. These six are the commercial ones.
| Pos | Keyword | Searches / mo |
|---|---|---|
| 1 | florida pool heater | 320 |
| 1 | heating a pool in florida | 320 |
| 1 | pool heaters in florida | 320 |
| 1 | florida pool heating | 170 |
| 4 | florida pool heaters | 320 |
| 5 | pool heater florida | 320 |
Volume is not the point here. Someone typing florida pool heater is choosing a supplier. The larger pool temperature cluster brings traffic and almost no buying intent. Useful reach, not booked installs.
On the SERP a Broward customer actually sees, you rank first or third, and still sit below the fold, because a three-result map pack is above you.
| Query | Reported avg | True organic | Position on page |
|---|---|---|---|
| local pool heater company | 16.4 | 1 | 4 |
| pool heating company | 17.5 | 3 | 7 |
| pool heater installation near me | 17.0 | 4 | 9 |
Search Console reported these queries at positions 16 and 17, which reads as a content problem. It is not. Those are national, device-blended averages. On mobile in Fort Lauderdale you are already #1 and #3 organically.
More on-page work moves nothing here. Getting into the map pack does, and that is Google Business Profile work: categories, service areas, review velocity and posts. It is the single highest-value lane on the account and it needs one thing from you: confirmation of whether you want Margate only, or Margate and Coral Springs. Your citation record and 397 Birdeye reviews point to Coral Springs.
$3,316 over the quarter returned 31 conversions at $107 each. The average is respectable. The spread underneath it is where the next gain sits.
| What the keyword is | Spend | Clicks | Conversions | Cost each |
|---|---|---|---|---|
| Own brand | $160 | 28 | 4 | $40 |
| Service and category | $617 | 67 | 11 | $56 |
| Manufacturer names | $2,030 | 298 | 13 | $156 |
| Product and equipment | $508 | 46 | 3 | $169 |
Your own name and plain service terms bring customers in at $40 to $56. Manufacturer and equipment terms cost $156 to $169 for the same conversion. Roughly three times the price for the same result, and they take 77% of the budget.
| Keyword | QS | Spend | Conv | Cost each |
|---|---|---|---|---|
| Florida Pool Heat | 8 | $160 | 4 | $40 |
| Pool Heating | 7 | $358 | 7 | $51 |
| Solar Pool Heating | 7 | $103 | 2 | $51 |
| Pool Heaters | 3 | $48 | 1 | $48 |
| Keyword | QS | Spend | Conv | Cost each |
|---|---|---|---|---|
| Jandy | 3 | $465 | 1 | $465 |
| Pentair | 3 | $411 | 1 | $411 |
| Hayward | 3 | $341 | 4 | $85 |
| AquaCal | 3 | $528 | 7 | $75 |
You sell Jandy, Pentair, AquaCal and Hayward, so appearing for those names is exactly right. The issue is how they are targeted, not whether.
All ten manufacturer keywords run on broad match at Quality Score 3. Broad match decides for itself what counts as related, and at Quality Score 3 Google charges a premium for every click. The searches it matched you to include jandy contact number, aquacal warranty phone number and iaqualink help, which are owners looking for a manual, not buyers looking for an installer.
The fix is match type and negatives, not removal. Move the brand terms to phrase and exact, pair each with a commercial modifier (aquacal installation, jandy pool heater price, pentair heater repair), and add a negative list for support, warranty, manual, contact, phone number, troubleshooting. Same brands, same shelf space, without paying for other companies' service desks.
The evidence that this works is already in the account. AquaCal returns 7 conversions at $75 and Hayward 4 at $85, both worth keeping. Jandy and Pentair took $876 between them for two conversions, at $465 and $411 each. Same match type, same Quality Score, very different outcomes, which is what you would expect when the term is loose and the modifier does the work.
Then add what is missing. There is no keyword in the account for pool heater repair, installation, or any local service phrase. The ad groups are organised by product line (Electric Heat Pump, Pumps and Filters, Salt Chlorine Generators) rather than by what a Broward homeowner types when the pool is cold. Your two best performers already point at it: Pool Heating at Quality Score 7 and Florida Pool Heat at 8.
Tightening the loose terms and cutting the 21 keywords that produced nothing frees roughly $1,560 a quarter to put behind service intent, against a search impression share of just 32.7%. Two thirds of the searches you could appear for go unserved today.
37,929 messages across six campaigns this quarter, drawing 567 clicks back to the site.
| Campaign | Sent | Opens | Clicks |
|---|---|---|---|
| Heat and Chill 1: Intro | 10,329 | 3,438 | 362 |
| Heat and Chill 2: How It Works | 10,261 | 2,896 | 43 |
| Reminder: Plumbing Rebuild | 11,715 | 3,244 | 150 |
| AquaCal service (list AN) | 2,406 | 698 | 3 |
| August slots (list AN) | 2,408 | 614 | 7 |
| AquaCal service (list KO) | 810 | 240 | 2 |
| Total | 37,929 | 567 |
Heat and Chill 1 drew 363 clicks. The second email, to the same list, drew 43. That gap is the most useful thing in this table: the opening message and its subject line are landing, and the follow-up is not holding attention.
September plan is to rebuild the second and third emails against the first, and to lead the new reminder series with the same structure that worked. The list is clearly responsive: 37,929 sends produced 11,130 opens across the quarter, so the reach is there to build on.
Pulled the link-level click report for both sends. The unsubscribe link gets clicked at nearly the same rate as the actual call to action on both emails, 341 versus 345 on the intro, 27 versus 34 on the follow-up. That pattern is a known signature of corporate email-security scanners pre-fetching every link in a message before a human opens it, not real interest. Raw click counts on both sends are inflated by that noise by a similar amount, which means the relative collapse from 363 to 43 is still real, but the absolute numbers in the table above are not pure human engagement.
The more likely driver we had not isolated before: send spacing. Heat and Chill 2 went out August 21, one day after an unrelated campaign, Reminder: Plumbing Rebuild, went to nearly the same list on August 20. Counting the intro email on August 18, that is three commercial sends to the same people in four days. Open rate dropped a plausible 15% over that stretch, 34% to 29%, but clicks fell 88%. A fatigued list that still opens but stops engaging is a better fit for that gap than a weaker subject line.
Shipped today, independent of that question: the hero images across all four emails have been regenerated to match the actual TropiCal unit. The AI renders were using a uniform triangle mesh grille and a thin top-only frame; the real unit has an irregular fractured-glass panel pattern and a full silver perimeter frame. Client flagged this directly. New images are live at the same hosted paths used by the drafts, and the still-unsent Series 3 and 4 have been updated and re-pushed to Constant Contact as drafts. Series 1 and 2 already delivered to inboxes cannot be changed after the fact, email clients render what was sent at open time, but the stored campaign record and any resend now carry the corrected image.
Also tightened Series 3's closing line, which had the same soft, no-clear-ask pattern as Series 2's. Recommendation before rebuilding Series 2 and 3 from scratch: confirm send spacing is the fix first. A full content rebuild is real effort; if a 3-4 day minimum gap between any two campaigns to this list recovers most of the click rate on its own, that is the higher-leverage fix and the content rebuild becomes optional polish rather than the main event.
Also shipped: a full copy tightening pass across all four emails. Series 2's closing line was the softest ask in the series, "happy to explain how it would work," no verb pointed at the contact page. Replaced it with a direct ask and folded in the 38-years family owned line the trust boxes already carry but the prose never said out loud. Same pass on Series 3 and 4.
Every email also picked up a second, earlier click path: a short text link right under the opening paragraph, before a reader has to scroll to the button at the bottom. One CTA per email was thin surface area on its own; this gives an engaged reader a chance to click before they lose momentum.
561 Media runs your search presence on both sides, earned and paid. Here is the whole picture, and what the earned half would cost if you had to buy it.
| Channel | Sessions / month | Earned or bought |
|---|---|---|
| Organic search | 435 | Earned |
| Referral, social and AI assistants | 22 | Earned |
| Paid search | 104 | Bought |
| Total | 561 |
Your paid clicks cost $10.63 each once management is counted. The 457 earned sessions cost nothing per click. Buying them through Google Ads at your own average rate would run $3,318 a month, or $39,814 a year, against a $1,450 retainer.
| Keyword | Position | Cost per click | Monthly value |
|---|---|---|---|
| florida pool heater | 1 | $6.78 | $660 |
| heating a pool in florida | 1 | $6.78 | $660 |
| pool heaters in florida | 1 | $5.54 | $539 |
| solar pool heating in florida | 1 | $20.57 | $313 |
| florida pool heating | 1 | $5.98 | $309 |
| pool heating companies near me | 2 | $8.83 | $157 |
| These six alone | $2,638/mo |
Those four number-one positions are not vanity rankings. Solar pool heating in florida carries a $20.57 cost per click because installers bid hard for it. You hold the top organic result and pay nothing for it.
Sessions are measured in Google Analytics, not estimated. Earned traffic covers organic search across Google, Bing, Yahoo and DuckDuckGo, plus referral, social and AI assistants. Cost per click is your own average rate in Google Ads, cross-checked against the live advertiser rate for each keyword.
We have not used the traffic-value figure our tools produce by default, which would have put this above $75,000 a year. That number is modelled from ranking position and national search volume, and this is a Broward business. Everything above is measured.
Brand terms to phrase and exact with commercial modifiers, negatives for support queries, and new keywords for repair and installation.
Categories, service areas, review velocity and posts. Needs your answer on Margate versus Margate and Coral Springs.
Series 2 landed one day after an unrelated send to the same list, three campaigns in four days. Hero images fixed and Series 3's closing line tightened already. Hold a 3-4 day minimum gap on the next send and recheck before committing to a full content rebuild.
Three different addresses and a phone number that appears in code but on no page. It is a plugin setting, and it is holding back local ranking.
Drafted and waiting on your installed price range, the one input we cannot supply ourselves.
110 duplicate URLs removed from what Google is asked to crawl, and the overseas traffic blocked at the server.
Search is already returning 2.3x the retainer. September is about the map pack and the ad budget.