Demand and tracked lead events are at six-month highs, but gaps in paid tracking and in the lead definitions make channel decisions provisional.
What moved
Biggest risk: Google Ads logged 2,180 clicks, but GA4 recorded only 820 Paid Search sessions.
Decisions needed
Last 6 months, darker bar is Sep. Hover a bar for its value.
| Source | September 2026 | August 2026 | In total? |
|---|---|---|---|
| Website lead events, tracked (GA4) | 76 | 71 | Yes |
| Website events, unverified | 141 | 96 | No, confirm against intake |
| Business Profile calls | 96 | 81 | Yes |
| Google Ads calls from ads (never reach the website) | 16 | n/a | Yes |
| Google Ads website conversions (forms, site calls) | 60 | n/a | No, overlaps website leads |
| phone_click (GA4 lead-type event, not set up as a lead) | 47 | 39 | No, not set up |
| Lead signals, sum of Yes rows (not deduplicated) | 188 | n/a |
Included: rows marked Yes. Excluded: rows marked No, and any source not listed (call tracking, chat, email inbox and CRM are not connected unless a row names them). Overlap: one person can appear in several rows (a Business Profile call and a website form, say), and Google Ads website conversions repeat website lead events. No deduplication is applied, so the sum counts signals, not people or customers.
Each box checks one data source the report relies on. Green reliable, Amber usable with caveats, Red missing or broken, so treat related findings with care.
Confirmed read directly from first-party data, complete for the month, enough volume to rule out noise. Likely two or more consistent signals, but not measured directly or a small sample. Hypothesis an untested explanation; it comes with the check that would test it. A tag on what was seen does not carry over to why it happened.
All 6 checks passed.
Sources: GA4, Search Console, Business Profile, Google Ads, Meta Ads, site crawl (fetched 2026-10-03). Window: September 2026 vs August 2026; 90-day: June to August 2026; year over year: September 2025. Report built Friday, October 30, 2026.
In September the site recorded 76 tracked lead events (provisional: 47 phone taps are not set up as leads and 141 form_submit events are unverified). That is 7% more than August and 18% above the 90-day average, supported by 1,380 search clicks and 96 Business Profile calls. Google Ads spent $4,200 for 49 hard lead conversions ($85.71 each), but 27 of its 76 conversions are soft actions, and GA4 sees 820 Paid Search sessions against 2,180 ad clicks. The biggest risk is making budget calls on paid data that does not yet reconcile.
| # | Action | Dept | Due | Expected impact |
|---|---|---|---|---|
| 1 | Move the "Booking page view" conversion action from primary to secondary in Google Ads, after recording September conversions by action for each campaign. | ADS | Week 1 | Reported conversions fall to hard actions (49 on September volume); bidding steers toward bookings and calls; lead impact not estimable. |
| 2 | Set phone_click as a lead event and GA4 key event, trace the form_submit trigger, and test-submit /contact/ to check the silent Google Ads "Contact form submit" tag. | DEV | Week 1 | Phone taps (47 in September) enter tracked lead events as their own line; real-lead impact not estimable until reconciled with the call log. |
| 3 | Trace the paid click-to-site breaks: Google Ads 2,180 clicks vs 820 GA4 Paid Search sessions, Meta 410 link clicks vs 95 landing page views. | ADS | Week 2 | Impact not estimable; decides whether paid verdicts rest on complete data. |
| 4 | Add 7 phrase negatives ("jobs", "degree", "pdf", "free", "treatment at home", "surgery cost", "massage gun") to an account-level list on all Search campaigns and PMax, and change "knee injury treatment" from broad to phrase. | ADS | Week 1 | Removes up to $368.90 a month of irrelevant clicks at September volume (a floor). |
| 5 | Rewrite the first 60 words and meta description of /physio-near-me/ to answer location, availability and cost, using client-confirmed facts. | SEO | Week 2 | Impact not estimable; engagement target 58% or more on about 610 sessions a month. |
Watch Growth is real on every surface we measure. Our ability to say which channel produces it is not.
Strategic diagnosis: Demand is growing structurally: search impressions are 21% above the 90-day average and Business Profile impressions 13% above it. Most of the extra site traffic came from informational content that rarely books (ACL guide: 520 sessions, 2 key events). Measurement has not kept up. Lead events miss phone taps, Google Ads optimises partly on page views, and over 60% of paid clicks never appear in GA4. Until that is fixed, any budget move between channels rests on numbers we cannot reconcile. Likely
0 of 6 actions done, 0 partial. Two are not done; four cannot be verified from this month's data. All four that matter still apply and carry into Section 14.
| Planned action | Dept | Status | Evidence |
|---|---|---|---|
| 1. Add negatives "jobs", "degree", "pdf", "free" to all search campaigns | ADS | Not done | GOOGLE ADS SUMMARY: "physio jobs lakeport" $68.40, "physiotherapy degree lakeport university" $49.90 and "free back pain exercises pdf" $41.30 still spent $159.60 in September (August: $159). Change history is not measured. Even so, a full month of spend on these exact terms is inconsistent with negatives added in Week 1. Carried into action 4. |
| 2. Fire contact_form_submit only on the thank-you state | DEV | Can't verify | Can't tell from the data whether the trigger changed. contact_form_submit was 12 (August 13), so it never looked inflated. The inflated event is form_submit, which rose from 96 to 141. Carried into action 2, retargeted at form_submit. |
| 3. Add a booking link and CTA box to the ACL recovery post | CONTENT | Can't verify | Crawl (October 3): no phone link and no form on the page. The crawl does not record booking links. Key events were 2 on 520 sessions (0.4%) vs 1 on 310 (0.3%), so no visible outcome. WordPress lists the post as published in September, yet it had 310 sessions in August: content team to confirm whether this was a republish. |
| 4. Rewrite the /physio-near-me/ intro to answer cost, wait time and location in the first 60 words | SEO | Not done | Crawl (October 3) first words: "Looking for a physio near you? Our team is here to help..." No cost, wait time or location. Engagement 52% (August 55%). Carried into action 5. |
| 5. Reply to the 4 unanswered Google reviews | LEAD | Can't verify | The feed still shows 4 unanswered, but the review fields are inconsistent: the total is still 9 despite 3 new reviews, and COVERAGE lists reviews as NOT MEASURED. Needs a direct check in both profiles (Strategic Horizon). |
| 6. Review whether PMax booking conversions are real bookings | ADS | Can't verify | The pull has no conversion-by-action split per campaign, so we can't tell whether a review happened. PMax CPA is $28. Carried into action 1 (record the split before changing goals). |
Sources: GSC, GA4 and the LEADS block, September 2026. The stages come from different systems. Sessions include every channel, not only search clicks, so the clicks-to-sessions step is a ratio, not a conversion rate. A tracked lead event is a GA4 event with status "lead" (book_appointment, contact_form_submit): a count of events, not people, and not yet reconciled with the client's intake records. A key event is any GA4 event flagged as a key event, including the non-lead begin_booking.
Data: the lead rate fell from 2.38% to 2.22% while sessions rose 14.8%. Of the 440 extra sessions, 210 landed on /blog/acl-recovery-timeline/ (2 key events). Meaning: traffic grew faster than intent. The extra visitors are mostly informational readers, not people looking for a clinic. Likely Action: none on the funnel itself. The low-intent page work is covered in Sections 9 and 11.
| Channel (GA4, Sept 2026) | Sessions | Key events | Key-event rate | Spend | Cost per conversion | Verdict |
|---|---|---|---|---|---|---|
| Organic Search | 1,640 | 96 | 5.9% | N/A | N/A | Growing |
| Paid Search (Google Ads) | 820 | 71 | 8.7% | $4,200 | $55.26 per Google Ads conversion; $85.71 per hard lead | Fix tracking first |
| Direct | 510 | 28 | 5.5% | N/A | N/A | On track |
| Organic Social | 160 | 4 | 2.5% | N/A | N/A | On track |
| Paid Social (Meta) | 140 | 1 | 0.7% | $600 | N/A (no Meta conversion event); $1.46 per link click | Fix measurement |
| Referral | 110 | 8 | 7.3% | N/A | N/A | On track |
| 40 | 2 | 5.0% | N/A | N/A | On track (n=2) | |
| Total | 3,420 | 210 | 6.1% | Not combined | Not combined |
Channel rows add up to the headline totals. Key events are used here because the data has no channel split of tracked lead events. Of the 210 key events, 118 are begin_booking (not a lead), so channel key-event rates overstate lead rates by an unknown amount per channel. Google Ads and Meta spend are shown separately and never combined.
Sources: GA4, GSC, Google Ads, Meta and Business Profile. Periods: September 2025, August 2026, September 2026 and the June to August 2026 average. The 90-day lead figures come from the MONTHLY TREND block.
| Metric | YoY (Sept 2025) | Prev (Aug 2026) | Current (Sept 2026) | 90-day avg | Change (MoM) |
|---|---|---|---|---|---|
| Traffic | |||||
| Sessions | 2,380 | 2,980 | 3,420 | 2,740 | ▲ 14.8% |
| Users | 1,880 | 2,354 | 2,701 | 2,160 | ▲ 14.7% |
| New users | 1,451 | 1,817 | 2,086 | N/A | ▲ 14.8% |
| Pageviews | 4,046 | 5,066 | 5,814 | 4,650 | ▲ 14.8% |
| Engagement | |||||
| Engagement rate | 58% | 61% | 62% | N/A | ▲ 1 pt |
| Bounce rate | 42% | 39% | 38% | 39% | ▼ 1 pt |
| Avg session duration | 70s | 76s | 79s | 75s | ▲ 3s |
| Leads | |||||
| Tracked lead events (provisional) | N/A | 71 | 76 | 64 | ▲ 7.0% |
| Lead rate | N/A | 2.38% | 2.22% | 2.35% | ▼ 0.16 pts |
| Unverified form_submit (not in leads) | N/A | 96 | 141 | N/A | ▲ 46.9% |
| GA4 key events (all, incl. begin_booking) | 131 | 189 | 210 | 173 | ▲ 11.1% |
| Lead signals (LEAD LEDGER, unduplicated sum) | N/A | N/A | 188 | N/A | N/A |
| SEO | |||||
| Search clicks | 860 | 1,240 | 1,380 | 1,117 | ▲ 11.3% |
| Search impressions | 31,000 | 46,900 | 52,000 | 42,967 | ▲ 10.9% |
| Search CTR | 2.80% | 2.64% | 2.65% | 2.60% | ▲ 0.01 pts |
| Average position | 12.1 | 10.4 | 9.8 | N/A | ▼ 0.6 |
| Ads (Google Ads and Meta shown separately) | |||||
| Google Ads spend | N/A | N/A | $4,200 | N/A | ▲ 7.7% |
| Google Ads conversions (all actions) | N/A | N/A | 76 | N/A | N/A |
| Google Ads hard lead conversions | N/A | N/A | 49 | N/A | N/A |
| Google Ads cost per hard lead | N/A | N/A | $85.71 | N/A | N/A |
| Meta spend | N/A | $450 | $600 | N/A | ▲ 33.3% |
| Meta link clicks | N/A | 300 | 410 | N/A | ▲ 36.7% |
| Meta landing page views | N/A | 120 | 95 | N/A | ▼ 20.8% |
| Business Profile | |||||
| Profile impressions | N/A | 8,900 | 9,800 | 8,700 | ▲ 10.1% |
| Calls | N/A | 81 | 96 | 79 | ▲ 18.5% |
| Website clicks | N/A | 226 | 240 | 218 | ▲ 6.2% |
| Direction requests | N/A | 121 | 130 | 117 | ▲ 7.4% |
| Query (GSC, Sept 2026) | Type | Clicks | Impressions | CTR | Position | Opportunity |
|---|---|---|---|---|---|---|
| kestrel physio | Brand | 310 | 1,150 | 27.0% | 1.1 | Defend; no action |
| acl recovery timeline | Info | 140 | 9,800 | 1.4% | 3.4 | Largest impression pool; readers likely outside the service area (check city split) |
| kestrel physio lakeport | Brand | 96 | 380 | 25.3% | 1.2 | Defend |
| physio lakeport | Local, commercial | 74 | 2,900 | 2.6% | 4.6 | Striking distance, core service |
| how long does acl recovery take | Info | 61 | 4,200 | 1.5% | 4.1 | Served by the ACL guide |
| sports physio lakeport | Local, commercial | 52 | 1,400 | 3.7% | 5.8 | Striking distance; /sports-physio/ converts at 9.1% |
| back pain exercises desk | Info | 48 | 6,100 | 0.8% | 6.2 | Informational; supports pillar 2 |
| physiotherapist near me | Local, commercial | 38 | 3,600 | 1.1% | 8.7 | Bottom of page 1; /physio-near-me/ intro is generic |
| lakeport east physio | Local, commercial | 29 | 640 | 4.5% | 3.0 | CTR 4.5% vs 20.5% band median |
| kestrel physio prices | Brand | 22 | 140 | 15.7% | 1.3 | Price demand; supports the cost guide |
| shoulder impingement exercises | Info | 15 | 2,600 | 0.6% | 11.6 | Page 2: needs content depth, not a title change |
| dry needling lakeport | Local, commercial | 12 | 870 | 1.4% | 9.4 | September post may lift it; watch |
| running injury physio | Commercial | 11 | 760 | 1.4% | 9.9 | Cluster candidate (pillar 1) |
| physio cost lakeport | Local, transactional | 9 | 520 | 1.7% | 7.8 | October brief 1 |
| sciatica physio | Commercial | 7 | 1,300 | 0.5% | 14.2 | Page 2; October brief 2 |
Data: brand queries (containing "kestrel") account for 428 of 1,380 clicks. Listed non-brand queries account for 496, and 456 clicks sit outside the top-query list. Meaning: at least 31% of organic clicks are branded and at least 36% are non-brand; the remaining 33% cannot be classified. That is not heavy brand dependence. Of the listed non-brand clicks, 264 come from four informational queries and 232 from local service queries. Confirmed Action: none.
/physio-near-me/ (money page). Data: "physiotherapist near me" sits at position 8.7 on 3,600 impressions, and "physio lakeport" at 4.6 on 2,900. Query-to-page mapping is NOT MEASURED, so which page ranks for each query is unknown. The crawl shows /physio-near-me/ opens with generic copy, has no meta description and no schema, and runs to 310 words. Meaning: the page gives searchers and Google little local substance, which plausibly limits both its ranking and its 52% engagement. Likely Action: action 5 (rewrite the first 60 words and meta description with client-confirmed location, availability and cost facts).
"lakeport east physio". Data: CTR 4.5% at position 3.0 on 640 impressions, against a 20.5% band median. /lakeport-east/ has no meta description (crawl). Meaning: one explanation is a local pack above the organic result, where the Lakeport East Business Profile takes the clicks as calls or directions. That would be a channel shift, not a loss. Hypothesis The September 18 aggregator units cannot explain the level, because only 12 days of the month were affected. Action: action 6: check the live SERP from Lakeport East. If the organic listing is the visible first result and still trails, rewrite the title and meta description (hours, Saturday opening, free parking from the crawl).
Ranking context: no 2026 core or spam update fell inside September. The click trend has risen steadily since July (1,090, 1,240, 1,380). Part of the August step followed the August 18 spam update, but this data cannot attribute it.
Source: Business Profile actions, September 2026. Messages are not in the data.
Activity and engagement: On track. All four measured actions are above both August and the 90-day average. Calls grew fastest (+18.5%), and calls make up 51% of the ledger's 188 lead signals. Confirmed Why calls rose is not measurable here. Rising brand demand is one candidate: Direct sessions rose 8.5%, and brand queries took 428 organic clicks at positions 1.1 to 1.3. Hypothesis. The data cannot show whether calls are new patients, existing patients or rebookings (lead quality NOT MEASURED).
Two clinics, one data block. The feed gives one set of figures. Whether it covers one profile or both is not stated, so per-clinic performance can't be assessed. Check: the account manager confirms which profiles the connection covers.
Reviews: not reliably measured. The feed shows 9 reviews, 3 new this month, 4 unanswered and a 4.8 average. The total did not move from August's 9 despite 3 new reviews, and COVERAGE lists reviews as NOT MEASURED. These figures are not used for scoring. Hypothesis (stale review fields). Review specificity is not in the data.
Posts, photos, services: not in the data (NOT MEASURED), so no 30-day gap can be confirmed. Business name: not in the data. Check that neither profile name adds keywords such as "Physio Lakeport". Keywords in the name break Google's guidelines and can lead to suspension.
| Metric (Instagram, Sept 2026) | Previous | Current |
|---|---|---|
| Accounts reached | No data | No data |
| Views | No data | 30,500 |
| Profile views | No data | 610 |
| Accounts engaged | No data | 420 |
| Total interactions | No data | 980 |
| Website clicks | No data | 9 |
| Date | Type | Likes | Comments | Caption (first 80 characters) |
|---|---|---|---|---|
| 2026-09-04 | Reel | 140 | 12 | 3 desk stretches for a stiff upper back, from our Lakeport East team |
| 2026-09-18 | Image | 61 | 4 | Welcome to our new sports physio, who joins the Lakeport clinic this month |
On track: 6 posts and 420 accounts engaged. GA4 Organic Social sessions rose to 160 from 120, with 4 key events. Growth in reach can't be judged without a prior month. The desk-stretch reel drew more than twice the likes of the image post, but that is an early signal from n=2 posts. Its topic matches the desk back pain guide (6,100 impressions) and the Meta "Back pain video" campaign, which makes it reusable in pillar 2. Instagram's 9 website clicks are a small share of the 160 Organic Social sessions; GA4 groups all social sources, so the rest can't be attributed to Instagram.
Coverage: partial. No conversion lag is flagged (the period ended 14+ days ago). Search terms cover $2,245.40 (53%) of the $4,200 spend. The pull has no conversion-action split per campaign. Change history, impression share and lost impression share are NOT MEASURED, so no campaign is called budget- or rank-limited, and no movement is attributed to an account change.
Data (search terms, 53% of spend): brand $351.70, 215 clicks, 8 conversions, $43.96 each. Non-brand $1,893.70, 860 clicks, 26 conversions, $72.83 each. Meaning: 8 of the 34 visible conversions (23.5%) came from people already searching for Kestrel by name, so the account does not lean heavily on brand. These conversions include soft actions, since the search-term view does not split them. The brand keyword "kestrel physio" ($429.40, 7 conversions) sits inside Search | Physio | Lakeport, which therefore mixes brand and non-brand. Confirmed
49 hard lead conversions (Online booking completed 33, Calls from ads 16) and 27 soft (Booking page view 25, Get directions 2). Booking page view is a primary goal, so Smart Bidding and PMax optimise toward page visits. Confirmed
| Campaign | Spend | Clicks | Conv. | CPA | Conv. rate | CTR | Ad calls | Verdict |
|---|---|---|---|---|---|---|---|---|
| Search | Physio | Lakeport | $2,310 | 1,180 | 41 | $56 | 3.47% | 6.9% | 14 | HOLD |
| Search | Sports injury | $1,080 | 390 | 6 | $180 | 1.54% | 5.2% | 2 | FIX |
| PMax | Bookings | $810 | 610 | 29 | $28 | 4.75% | 27.6% | 0 | HOLD |
From zero_conversion_terms_by_cost. All terms are below the $128.57 noise floor, so only clearly irrelevant ones count. This is a floor: 47% of spend has hidden terms.
| Search term | Cost | Clicks | Why irrelevant | Negative |
|---|---|---|---|---|
| knee injury treatment at home | $118.60 | 44 | DIY / home treatment | "treatment at home" (phrase) |
| physio jobs lakeport | $68.40 | 31 | Job seekers | "jobs" (phrase) |
| acl surgery cost | $57.00 | 19 | Surgery, not a service offered | "surgery cost" (phrase) |
| physiotherapy degree lakeport university | $49.90 | 22 | Students | "degree" (phrase) |
| free back pain exercises pdf | $41.30 | 27 | Free / download | "pdf" (phrase), "free" (phrase) |
| massage gun lakeport | $33.70 | 18 | Product, not a service | "massage gun" (phrase) |
| Clearly irrelevant total | $368.90 | 161 | 8.8% of total spend; 16.4% of visible spend | |
Pending client confirmation: "northbridge physio" ($92.60) and "physio northbridge open saturday" ($51.80), $144.40 combined. Northbridge may be a nearby area the clinics serve (Lakeport East opens Saturdays) or a competitor's name. Hypothesis. Check: the client confirms the service area and the location report shows where these clicks came from. If confirmed outside the service area: add "northbridge" (phrase) to the same list. Not waste: "how much is a physio session" ($61.90) is a relevant price query below the noise floor. It is covered by the cost guide (12B).
| Keyword | Match | QS | Clicks | Cost | Conv. | Cost per conv. |
|---|---|---|---|---|---|---|
| physio lakeport | Phrase | 8 | 420 | $760.40 | 19 | $40.02 |
| physiotherapist near me | Broad | 6 | 510 | $1,120.20 | 15 | $74.68 |
| kestrel physio (brand) | Exact | 10 | 250 | $429.40 | 7 | $61.34 |
| sports injury physio | Phrase | 7 | 240 | $650.80 | 5 | $130.16 |
| knee injury treatment | Broad | 5 | 150 | $429.20 | 1 | $429.20 |
"physiotherapist near me" (broad) is 26.7% of spend. Only $361.50 of its $1,120.20 went to the exact term. The remaining $758.70 matched other queries, most of them hidden. ADS reviews its full matched-term list when applying action 4.
Online booking completed 33 (hard), Calls from ads 16 (hard; these match the campaigns' 14 + 2 phone calls), Booking page view 25 (soft, primary), Get directions 2 (soft). Contact form submit shows 0 while it is counted and primary. GA4 recorded 12 contact_form_submit events site-wide, and Paid Search brings 24% of sessions, so roughly 3 would be expected. A silent tag is more likely than zero ad-driven contact forms, but n is small. Hypothesis. Check: test-submit /contact/ with Tag Assistant (action 2). Anomaly: Booking page view (25) is lower than Online booking completed (33), yet every booking should pass the booking page. One explanation is bookings that bypass /book-online/, such as a booking widget on other pages or ads that link straight to the booking system. Another is the booking action counting "every" instead of "one". Hypothesis. Check: the count setting of Online booking completed, and the client's booking-system count of Google-sourced bookings (action 3).
Ad copy: the main ad promises "Same-Week Appointments" and "Book online in 2 minutes". /physio-near-me/ mentions neither, and /book-online/ serves "Loading booking system..." in its server HTML. The client confirms that same-week availability holds at both clinics (a client fact, not something the data shows).
| Campaign | Objective | Spend | Reach | Frequency | Clicks | CTR | CPC | Result for its objective | Verdict |
|---|---|---|---|---|---|---|---|---|---|
| Traffic | Back pain video | Traffic | $600 | 21,400 | 2.86 | 410 link (690 all) | 0.67% link (1.13% all) | $1.46 | 95 landing page views, $6.32 each (August account level: $3.75) | FIX (measurement) |
Maturity: account unknown, pixel warm, conversion data cold. Advice is limited to measurement validation and small staged tests. Creative and audience are not judged, and no mature-account benchmarks apply.
Semrush not connected for this client.
| Event | August 2026 | September 2026 | Status | Note |
|---|---|---|---|---|
| book_appointment | 58 | 64 | Lead, key event | Real lead signal; fires on /book-online/ only |
| contact_form_submit | 13 | 12 | Lead, key event | Real lead signal; /contact/ |
| form_submit | 96 | 141 | Unverified, not a key event | 42 fires on the ACL guide, where the crawl found no form. 61 on /book-online/ and 38 on /contact/ overlap the real events. Likely GA4 enhanced-measurement form tracking or a non-lead form. Hypothesis |
| begin_booking | 109 | 118 | Not a lead, but flagged as key event | 56% of the 210 key events; a useful funnel step (54% go on to book) |
| phone_click | 39 | 47 | Lead-type, not configured, not a key event | Taps on phone links on / (21), /physio-near-me/ (19), /lakeport-east/ (7). Not in tracked lead events. A tap is not a connected call. |
Action 2 (DEV): set phone_click as a lead event and key event, trace the form_submit trigger (if enhanced-measurement form tracking is confirmed, switch it off), and test-submit /contact/ to check the Google Ads "Contact form submit" tag. Whether begin_booking keeps its key-event flag is deferred to the November measurement review: changing it now would break the key-event series in the middle of an investigation.
| Pixel | Last fired | Events received | Conversion event present? | Event Match Quality | Click-ID (fbc) coverage | Email/phone matching |
|---|---|---|---|---|---|---|
| Kestrel pixel | 2026-10-28 | PageView | No | 5.1 | 21% | No |
The pixel is alive but sees visits only, so Meta lead results will always read zero. Event Match Quality of 5.1 without email or phone keys means weak matching. Action 7 (DEV): add a Lead event on booking completion, contact form submission and phone tap, through the Conversions API where the third-party booking system allows, and turn on advanced matching.
GA4 Paid Search key events (71) vs Google Ads conversions (76): a 7% gap, inside the normal 10 to 30% band, so no investigation on that basis. Both sides are inflated by soft actions (begin_booking in GA4, Booking page view in Ads), so this agreement says nothing about hard leads. The Google Ads website conversions in the ledger (60) include those 25 page views and 2 direction requests.
| # | Discrepancy | Size | Split that would explain it | Check |
|---|---|---|---|---|
| 1 | Google Ads clicks vs GA4 Paid Search sessions | 2,180 vs 820 (1,360 missing, 62%). Search campaigns alone: 1,570 vs 820. | Campaign (PMax 610 clicks, CTR 27.6%), network (Maps vs Search), device | Final URLs and redirects (gclid kept?), auto-tagging and the GA4 link, consent mode denial share, /book-online/ widget load before tags fire, PMax channel report |
| 2 | Meta link clicks vs landing page views vs GA4 Paid Social sessions | 410 vs 95 vs 140 | Placement, device | Destination URL, redirects, pixel firing order, UTMs on the ad |
| 3 | Google Ads Booking page view below Online booking completed | 25 vs 33 | Booking path (widget on other pages, direct booking-system links) | Count setting ("one" vs "every"); the client's booking-system count of Google-sourced bookings |
| 4 | Google Ads Contact form submit vs GA4 contact_form_submit | 0 vs 12 site-wide (small n) | Channel of the 12 events | Tag Assistant test submission |
Observed: Confirmed. Causes: Hypothesis. Gap 1 is action 3 and the top tracking priority. The Google Ads verdicts in Section 8 are provisional until it is explained.
Organic Search 48.0%, Paid Search 24.0%, Direct 14.9%, Organic Social 4.7%, Paid Social 4.1%, Referral 3.2%, Email 1.2%.
| Page | Sessions | Key events | Key-event rate | Bounce | Avg duration | Engagement |
|---|---|---|---|---|---|---|
| / | 900 | 41 | 4.6% | 37% | 74s | 63% |
| /physio-near-me/ | 610 | 38 | 6.2% | 48% | 41s | 52% |
| /blog/acl-recovery-timeline/ | 520 | 2 | 0.4% | 29% | 168s | 71% |
| /sports-physio/ | 340 | 31 | 9.1% | 34% | 88s | 66% |
| /book-online/ | 290 | 52 | 17.9% | 26% | 96s | 74% |
| /blog/desk-back-pain-exercises/ | 260 | 1 | 0.4% | 31% | 151s | 69% |
| /lakeport-east/ | 180 | 14 | 7.8% | 38% | 63s | 62% |
| /pricing/ | 120 | 9 | 7.5% | 32% | 70s | 68% |
| /team/ | 95 | 3 | 3.2% | 33% | 82s | 67% |
| /contact/ | 85 | 18 | 21.2% | 28% | 55s | 72% |
/physio-near-me/: engagement 52% vs the 67% median, and 41s average duration. The post-click cause is likely the generic intro with no location, availability or cost detail. It fails to match the ad's "Same-Week Appointments" promise. Likely. Whether the traffic is mostly paid is a Hypothesis; check by crossing landing page with session channel in GA4. Action 5. Blog posts: 23% of sessions, 1.5% of key events. That is expected for informational intent. The ACL CTA box (August item 3) is deferred until the 42 unexplained form_submit fires on that page are traced.
| # | Page | Finding | Effect on leads |
|---|---|---|---|
| 1 | /book-online/ | The server HTML holds 60 words: "Loading booking system...". The booking content depends on JavaScript, and there is no phone link fallback. | Money page: if the widget is slow or blocked, the booking fails. Page speed is NOT MEASURED. |
| 2 | /physio-near-me/ | Generic intro, no meta description, no schema | 610 sessions at 52% engagement (action 5) |
| 3 | 5 of 6 pages | Empty meta description (only / has one) | Snippet control lost on service and location pages |
| 4 | All 6 | No Person schema; byline on /sports-physio/ only | Trust signals for health content (Section 12) |
| 5 | All 6 | Status 200, title and H1 present; no 404s | None |
| Area | Status | What would close it |
|---|---|---|
| Page-level search, device split, query-to-page | NOT MEASURED | Add GSC page and query-page dimensions to the pull |
| August query rows | Unreliable (derived pattern) | Re-pull the August 2026 GSC query report |
| AI assistant referrals | NOT MEASURED | Add GA4 session source to the pull |
| AI Overviews / AI Mode appearances | NOT MEASURED | No data path; manual spot checks only |
| Core Web Vitals and page speed | NOT MEASURED | Add CrUX or PageSpeed data, especially for /book-online/ |
| Backlinks, competitors | NOT MEASURED | Connect Semrush (third-party estimates once connected) |
| Business Profile reviews, posts, photos | NOT MEASURED (feed fields conflict) | Business Profile reviews and posts API, per clinic |
| Google Ads change history, impression share | NOT MEASURED | Add both reports to the pull |
| Client economics, lead quality | NOT MEASURED | Client shares booking-system and call-log outcomes monthly |
| Metric | Trend | Type | Diagnosis | Required action |
|---|---|---|---|---|
| Sessions | 3,420; +14.8% MoM, +24.8% vs 90-day, +44% YoY | Structural | Informational content (ACL guide +210 sessions) plus steady organic growth. No August 2025 data, so seasonality can't be separated out. | None |
| Tracked lead events (provisional) | 76 vs 64 (90-day); lead rate 2.22% vs 2.35% | Structural | Leads grew, but slower than traffic; the new traffic is low intent. Likely | Action 2 (complete the definition) |
| Search impressions and clicks | 52,000 and 1,380; rising since July | Structural | No 2026 update fell in September. Position improved 10.4 to 9.8. | Actions 5 and 6 |
| Query-level changes | Uniform 10%, identical CTRs | Tracking | The August rows look derived. Likely | Re-pull August queries (SEO, Week 1) |
| Business Profile calls | 96 vs 79 (90-day) | Structural (seasonality unknown) | Growing local demand; no YoY data | None |
| form_submit | 96 to 141 | Tracking | Over-firing, with 42 fires on a page with no form. Hypothesis | Action 2 |
| Meta LPV / link click | 40% to 23% | Tracking or placement | Clicks rose, landings fell. Hypothesis | Action 3 |
| Google Ads cost | +7.7% MoM | Unknown | Change history NOT MEASURED; not attributed | None |
Cross-channel: Paid Search sessions rose 7.9% and Google Ads cost 7.7%, so paid traffic scaled with spend while organic grew faster (+15.5%). Business Profile calls (+18.5%) and Direct sessions (+8.5%) rose together, which fits growing awareness of the business by name. Likely. The new sports physio announced on September 18 may have contributed. Hypothesis; check whether call volume shifted toward the Lakeport clinic once per-clinic data is available.
Pillar 1: Sports injury and ACL rehab. The ACL guide ranks 3.4 on 9,800 impressions, /sports-physio/ converts at 9.1%, and the Sports injury campaign needs better landing support. Information gain comes from Kestrel's own 45-minute assessment and return-to-sport milestones.
Pillar 2: Back, neck and desk pain. Demand includes "back pain exercises desk" (6,100 impressions), "sciatica physio" (1,300, page 2) and "shoulder impingement exercises" (2,600, page 2), plus a converting Google Ads term ("physio for sciatica") and the top Instagram reel.
Pillar 3: Choosing physio in Lakeport (information gain). Local decision queries ("physio cost lakeport", "kestrel physio prices", "physiotherapist near me") answered with facts only the clinic has: prices, wait times and per-clinic details.
| Title | Pillar | Buyer stage | Search demand | Difficulty | AI citability | Priority |
|---|---|---|---|---|---|---|
| How Much Does Physio Cost in Lakeport? Prices, Session Length and What's Included | 3 | Decision | Med | Low | High | P1 |
| Sciatica Physio: What Treatment Involves and How Many Sessions It Takes | 2 | Consideration | Med | Med | High | P1 |
| ACL Rehab in Lakeport: The Return-to-Sport Tests We Use | 1 | Consideration | Med | Low | High | P2 |
| Knee Injury Physio in Lakeport: What an Assessment Finds and What Happens Next | 1 | Consideration | Med | Med | Medium | P2 |
| Shoulder Impingement Exercises: 5 a Physio Recommends, and When to Stop | 2 | Awareness | Med | High | High | P2 |
| Desk Back Pain: When Stretches Aren't Enough and a Physio Can Help | 2 | Consideration | Med | Med | Medium | P2 |
| Running Injury Physio: When to Rest and When to Book an Assessment | 1 | Consideration | Low | Low | Medium | P2 |
| How Soon Can I See a Physio in Lakeport? Wait Times at Both Clinics | 3 | Decision | Low | Low | High | P2 |
| Dry Needling for Sports Injuries: When It Helps and When It Doesn't | 1 | Consideration | Low | Med | Medium | P3 (check overlap with the September post) |
| Upper Back Stiffness From Desk Work: 3 Stretches From Our Lakeport East Team | 2 | Awareness | Low | Med | Medium | P3 (may suit an update to the desk guide) |
| What Happens at Your First Physio Appointment at Kestrel | 3 | Decision | Low | Low | Medium | P3 |
| Physio in Lakeport East: Saturday Appointments, Parking and Who You'll See | 3 | Decision | Low | Low | Low | P3 |
Demand ratings use only GSC and Google Ads figures from this report.
Pillar: Choosing physio in Lakeport
Publish by: October 16, 2026
Primary keyword: physio cost lakeport (520 impressions, position 7.8)
Secondary keywords: kestrel physio prices; how much is a physio session; physio lakeport
Search intent: Transactional, local
Buyer stage: Decision
Word count: 1,000 to 1,300
AI citability: open with a 50-word answer that gives the initial assessment and follow-up prices. Add a price table by clinic, and answer "how many sessions" as a range with the factors that change it.
H2 outline: How much is an initial physio assessment at Kestrel? How much do follow-up sessions cost? Is the price the same at Lakeport and Lakeport East? How many sessions will I need? Can I claim physio on health insurance? What is included in the first appointment?
Must include: prices, session lengths, cancellation policy and insurance facts, all supplied and confirmed by the client. Same-week availability only if the client confirms it. Complement /pricing/ rather than duplicating it.
Internal links: /pricing/, /book-online/, /lakeport-east/, /sports-physio/
CTA: "Book an assessment online" to /book-online/, plus a tracked phone link
Author byline: a named physiotherapist, with registration details confirmed by the client. Compliance review before publishing.
Pillar: Back, neck and desk pain
Publish by: October 28, 2026
Primary keyword: sciatica physio (1,300 impressions, position 14.2)
Secondary keywords: physio for sciatica (Google Ads: 41 clicks, 1 conversion); physio lakeport
Search intent: Commercial
Buyer stage: Consideration
Word count: 1,500 to 1,800
AI citability: start with a 50-word answer on what physio does for sciatica. Add the first session as numbered steps and a clinician-reviewed list of warning signs.
H2 outline: What is sciatica and what causes it? Can physio help sciatica? What happens at a sciatica assessment at Kestrel? How many sessions does sciatica usually take? Which exercises help, and which should I avoid? When should sciatica be seen by a doctor instead?
Must include: how the treating physio actually assesses nerve pain (first-hand), both clinic locations, and context on desk-based patients. No outcome claims without client data. Clinical sign-off on the warning signs.
Internal links: /blog/desk-back-pain-exercises/, /physio-near-me/, /team/, /book-online/
CTA: "Book a sciatica assessment" to /book-online/
Author byline: a named physiotherapist with credentials confirmed by the client
| # | Title | Pillar | Primary keyword | Word count | Publish by | Assigned to |
|---|---|---|---|---|---|---|
| 1 | How Much Does Physio Cost in Lakeport? Prices, Session Length and What's Included | Choosing physio in Lakeport | physio cost lakeport | 1,000 to 1,300 | October 16, 2026 | Content team (writer to be named) |
| 2 | Sciatica Physio: What Treatment Involves and How Many Sessions It Takes | Back, neck and desk pain | sciatica physio | 1,500 to 1,800 | October 28, 2026 | Content team (writer to be named) |
The site is open to Google's AI features and AI search crawlers. What it lacks is the authorship and entity detail that health content needs to be trusted and cited.
No competitor data is connected. This is a gap against the client's own search demand, not against competitors.
| Content type | Client has? | Evidence | Priority | Action |
|---|---|---|---|---|
| In-depth guides | Yes | ACL guide, 2,150 words, position 3.4 | Low | None |
| Pages answering common questions | Yes | /sports-physio/ has 3 question H2s; other crawled pages have none | Medium | Question H2s in both October briefs |
| Practitioner bios with credentials | Unverified | /team/ has 95 sessions but was not crawled; no Person schema found | Medium | Next month (Section 12) |
| Testimonials | Unverified | Homepage H2 "What our patients say"; content not captured | Low | None; any outcome claims go to compliance review |
| Active blog | Yes | 2 posts in September, 0 in August | High | Action 8 |
| Cost information | Unverified | /pricing/ exists (120 sessions) but was not crawled | High | Brief 1 |
| Video | Unverified | Instagram reels exist; none seen on crawled pages | Low | None this month |
| Location pages | Yes (Lakeport East); Unverified (Lakeport) | /lakeport-east/ crawled; no main-clinic page among the top landing pages | Medium | DEV to confirm whether a Lakeport clinic page exists (November) |
| Original data | Unverified | None in the 6 crawled pages | Medium | Ongoing (Section 12) |
Differentiation opportunities: (1) Real Lakeport prices and session lengths, answering "physio cost lakeport" and "kestrel physio prices" with facts generic sites cannot have. (2) Kestrel's own return-to-sport testing, building on the ACL guide's 9,800 impressions with local proof. (3) Per-clinic practical detail (Saturday hours, parking, who works there) for the 640 monthly impressions on "lakeport east physio".
Ordered by ICE. Due dates follow ICE except action 3 (Week 2), which starts once action 1's export shows how PMax conversions split.
| # | Dept | Action | Evidence | Impact | Effort | Confidence | ICE | Due | Expected impact | Success metric |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | ADS | Move the "Booking page view" conversion action from primary to secondary in Google Ads, after recording September conversions by action for each campaign. Current: primary, 25 of 76 conversions. Change: secondary. Effect: bidding on bookings and calls. Rollback: hard lead conversions below 37 over 4 weeks with spend within 10%. | GOOGLE ADS CONVERSION ACTIONS: Booking page view 25, primary, soft | 4 | 1 | H | 60 | Week 1 | Reported conversions fall to hard actions (49 on September volume); bidding steers toward bookings and calls; lead impact not estimable. | Action shows as secondary; hard lead conversions 37 or more in the 4 weeks after |
| 2 | DEV | Set phone_click as a lead event and GA4 key event, trace the form_submit trigger, and test-submit /contact/ to check the silent Google Ads "Contact form submit" tag. | LEADS: phone_click 47 not configured; form_submit 141 incl. 42 on ACL guide (crawl: no form); Ads Contact form submit 0 | 4 | 2 | H | 48 | Week 1 | Phone taps (47 in September) enter tracked lead events as their own line; real-lead impact not estimable until reconciled with the call log. | phone_click listed as lead; form_submit source documented; Ads contact tag fires on test |
| 3 | ADS | Trace the paid click-to-site breaks: Google Ads 2,180 clicks vs 820 GA4 Paid Search sessions, Meta 410 link clicks vs 95 landing page views. Check: final URLs and redirects, auto-tagging and GA4 link, consent mode, /book-online/ load, PMax channel report and brand share, Meta placement and device split. If confirmed: one fix ticket per cause; no budget or targeting change before then. | GOOGLE ADS DETAIL vs GA4 channels; META ADS DATA LPV 95 of 410 | 5 | 3 | H | 45 | Week 2 | Impact not estimable; decides whether paid verdicts rest on complete data. | Written cause and fix ticket for each break |
| 4 | ADS | Add 7 phrase negatives ("jobs", "degree", "pdf", "free", "treatment at home", "surgery cost", "massage gun") to an account-level list on all Search campaigns and PMax, and change "knee injury treatment" from broad to phrase. Rollback: remove any negative that blocks a converting term; revert the knee keyword if Sports injury records 0 hard leads for 3 weeks while clicks fall over 40%. "northbridge" only if the client confirms it is outside the service area. | GOOGLE ADS SUMMARY: $368.90 on 6 irrelevant terms; knee keyword $429.20, 1 conversion | 3 | 1 | H | 45 | Week 1 | Removes up to $368.90 a month of irrelevant clicks at September volume (a floor). | Listed terms absent from the October search-term report; Sports injury CPA below $180 |
| 5 | SEO | Rewrite the first 60 words and meta description of /physio-near-me/ to answer location, availability and cost, using client-confirmed facts. | GA4: 610 sessions, engagement 52% vs 67% median; crawl: generic intro, empty meta description | 4 | 2 | M | 32 | Week 2 | Impact not estimable; engagement target 58% or more on about 610 sessions a month. | Engagement 58% or more; key events per session at least 6.2% |
| 6 | SEO | Check the live "lakeport east physio" SERP from Lakeport East and re-pull the August query report; if the organic result is visible and still trails, rewrite the /lakeport-east/ title and meta description (hours, Saturday opening, free parking). | SEARCH OPPORTUNITIES: CTR 4.5% at position 3 vs 20.5% band median, 640 impressions | 3 | 1 | M | 30 | Week 2 | Impact not estimable. | SERP finding documented; if rewritten, CTR above 4.5% |
| 7 | DEV | Add a Meta Lead event on booking completion, contact form submit and phone tap (Conversions API where the booking system allows) and turn on advanced matching. | META PIXEL: PageView only, EMQ 5.1, fbc 21%, no email/phone matching | 3 | 3 | H | 27 | Week 3 | Meta can record lead events from November; impact not estimable. | Lead event received in Events Manager; EMQ above 5.1 |
| 8 | CONTENT | Publish the 2 briefs from 12B: the cost guide by October 16 and the sciatica guide by October 28, each with a credentialed byline. | GSC: "physio cost lakeport" 520 impressions at 7.8; "sciatica physio" 1,300 at 14.2 | 3 | 4 | M | 12 | Week 4 | Impact not estimable. | Both posts live on time |
Deferred: ACL guide CTA box (ICE 24), until the form_submit fires on that page are traced in action 2. Physiotherapy and Person schema with bylines on existing pages (November), pending client credentials. A separate brand campaign, until action 3 shows the PMax brand share. Any Meta placement or budget change, conditional on action 3. Whether begin_booking keeps its key-event flag (November measurement review).
| Initiative | Started | Target | Status | Next milestone |
|---|---|---|---|---|
| Measurement rebuild (GA4, Google Ads, Meta) | October 2026 | All hard lead types counted consistently, with tracked lead events reported by channel | Starting | Actions 1 and 2 live by October 7 |
| PMax evaluation | August 2026 | A verdict on hard leads only | Open | Conversion-by-action and channel split (actions 1 and 3) |
| Business Profile reviews, both clinics | October 2026 | Verified per-clinic review counts; every review answered | Starting | Account manager confirms counts by October 14 |
| Sports and back-pain content clusters | September 2026 | 2 posts a month with local information gain | In progress | Briefs published October 16 and 28 |
| Metric | Current (September 2026) | October 2026 target | Lever |
|---|---|---|---|
| Sessions | 3,420 | 3,400 or more | Organic growth, stable paid |
| Tracked lead events (book_appointment + contact_form_submit, provisional) | 76 | 78 or more | Actions 5 and 8 |
| phone_click set up as a lead event | No | Yes | Action 2 |
| Search clicks | 1,380 | 1,400 or more | Actions 5, 6 and 8 |
| "physio lakeport" position | 4.6 | 4.5 or better | Action 5 |
| /physio-near-me/ engagement rate | 52% | 58% or more | Action 5 |
| Booking page view as a primary conversion | Yes | No | Action 1 |
| Google Ads cost per hard lead | $85.71 | $86 or less | Actions 1 and 4 |
| Meta landing page views / link clicks | 23% | 40% or more | Action 3 |
| Business Profile calls | 96 | 90 or more | Review programme |
| Blog posts published (October so far) | 0 | 2 | Action 8 |
Kestrel's demand is growing on its own momentum: more search visibility, more profile calls and more booking starts. The constraint now is measurement. Until paid clicks reconcile with sessions and every lead type is counted, the growth can't be steered. October fixes that, and November can then make budget calls on hard leads.