Desert Moving Co / Wheaton
Jan 2026 - Apr 28 MTD
Desert Moving & Storage Co - Marketing Report
YTD 2026
January - April 28 MTD
A cross-platform audit of paid search, organic visibility, website analytics, and user behavior for Desert Moving & Storage Co. April MTD pulled live from Google Ads, GA4, and Search Console APIs on 2026-04-28.
YTD Ad Spend
$13,916
Jan 1 - Apr 28
YTD Conversions
98
$142 avg CPA
April CPA
$161
19 conv on $3,054
Lead Events (Apr)
92
GA4 generate_lead
GSC Clicks
403
YTD organic search
April reversal: PMax recovered to $68 CPA (6 conv on $409) but the campaign throttled budget — only $409 of its $50/day allocation spent. DMC-Search3 still bleeds: $1,211 for 1 conversion ($1,211 CPA). Search-03-02 holds steady at $120 CPA. GA4 country-junk dropped from 42.3% (Mar) to 29.4% (Apr) — first improvement of 2026 — but Clarity's bot filter still catches a 42.7% bot rate, flat vs Q1. The path forward is clear: shift DMC-Search3 budget into PMax + Search-03-02, and ship the GTM/GA4 bot filters.
Monthly trend - conversions & spend (YTD 2026)
April momentum shift
PMax stabilizing, Search3 still bleeding
PMax recovered from March's $216 CPA collapse to a healthier $68 CPA in April (6 conv on $409 spend) — but the campaign is leaving 71% of available impressions on the table due to rank, not budget. Search-03-02 held its $120 CPA pace (12 conv on $1,434). DMC-Search3 remains the account's biggest leak: $1,211 spent for 1 conversion in April alone.
Junk traffic — partial win
29.4% / 42.7%
GA4 down · Clarity flat
GA4 country-junk dropped to 29.4% (461 of 1,566 users from Singapore 267, Netherlands 61, Russia 55, China 13). But Clarity's bot filter still caught 1,382 bots (42.7% rate) — flat vs Q1 (42%) and Mar (40%). Two different filters, two different stories: country-targeting is improving, script-driven bots are not. Form_start events: 1,975 (down from Mar's 2,542) — most still bot-triggered.
Chapter 1
PMax Recovery
Performance Max collapsed from 33 conv/$42 CPA (Feb) to 5 conv/$216 CPA (Mar). April brought partial recovery: 6 conversions at $68 CPA — but the campaign only spent $409 of its $1,500 monthly allocation. The constraint flipped from CPA to impression share (71% lost to rank).
Feb PMax CPA
$42
Best month (33 conv)
Mar PMax CPA
$216
5 conv collapse
Apr PMax CPA
$68
6 conv, recovered
Apr Lost IS (rank)
71%
Asset issue, not budget
Campaign comparison - conversions by month
The Search3 problem (still bleeding)
DMC-Search3: $5,360 YTD, 6 conversions = $893 CPA
DMC-Search3 has consumed $5,360 YTD for just 6 conversions. April alone: $1,211 spent, 1 conversion. Every month tells the same story — wrong intent (warehouse keywords), wrong landing page (/storage-services), wrong outcome. This campaign should be paused or rebuilt as the planned 3 ad groups (Climate Storage, Car Shipping, Local Moving).
The bright spot — and the lever
Search-03-02 holds at $120 CPA, PMax has 71% headroom
Search-03-02 carried its strong March pace into April: 12 conversions at $120 CPA (vs March's $124). PMax is now the bigger lever — it's leaving 71% of available impressions on the table due to rank, not budget. Halving that gap (uploading 10+ images + adding a lead form) at the same $68 CPA would add ~25-50 conversions/month at no extra spend.
Chapter 2
Where Money Disappears
DMC-Search3 has now consumed $5,356 YTD for just 6 conversions ($893 CPA, 6.3x the account average). Top wasted keywords: "warehousing near me" ($591), "warehouse service" ($572), "warehouse storage services" ($395). The fix has been clear since Q1 — pause warehouse keywords immediately.
API-CONFIRMED (2026-04-28): DMC-Search3 spent $4,566 on warehouse keywords with 0 conversions YTD — that's 33% of the entire account's YTD spend on broken intent. The same campaign spent $1,211 in April alone for 1 conversion. The single ad behind most of this uses DKI keyword insertion and lands traffic on /storage-services (residential storage page).
Search3 YTD spend
$5,356
6 conversions, $893 CPA
Wasted on warehouse kw
$4,566
0 conversions YTD
/storage-services leak
$5,079
$1,270 CPA, 4 conv YTD
April Search3 spend
$1,211
Still bleeding (1 conv)
Warehouse keywords — session-level data
Top waste keywords (Clarity CSV confirmed)
KeywordSessions0-clickBounceEst. Waste
warehousing near me24685%85%$1,599
storage warehouses11286%85%$728
warehousing storage near me9387%89%$605
warehouse company4578%78%$293
warehouse rent near me4088%88%$260
pick and pack warehouse2584%84%$163
warehouse services near me2195%95%$137
warehouse service2095%95%$130
7 more warehouse terms8988%86%$579
TOTAL WAREHOUSE WASTE69186%85%$4,492
Car storage vs warehouse — the proof
Why car keywords work and warehouse don't
MetricCar/VehicleWarehouse
Sessions282691
Reached quote page32 (11.3%)33 (4.8%)
Avg pages/session2.01.2
Zero-click rate60%86%
Avg duration118s103s
Car keywords convert 2.4x better with less than half the sessions. Budget should shift from warehouse to car storage + moving keywords.
syndicatedsearch.goog — the hidden pipeline
528 of 566 syndicated sessions landed on /storage-services
93% of all syndicatedsearch.goog traffic goes to /storage-services using warehouse keywords. These are PMax syndicated network placements funneling irrelevant commercial/warehouse searchers through DMC-Search3 keywords. Syndicated sessions have 84% zero-click rate vs 58% for direct Google sessions. Estimated syndicated waste: $2,215.
Best performing cities
Low CPA geographies
Joshua Tree
$48
Bermuda Dunes
$65
Palm Springs
$136
Palm Desert
$130
Cathedral City
$148
CPA by city - Q1 combined. Joshua Tree and Bermuda Dunes are standout performers.
Worst performing cities
High CPA geographies
Coachella
$329
Yucca Valley
$242
Indio
$236
La Quinta
$200
Rancho Mirage
$155
Coachella: $329 for 1 conversion. Consider reducing bids or excluding.
Chapter 3
The Junk Traffic Problem
Two different bot signals tell two different stories. GA4 country-based junk dropped from 42.3% → 29.4% (first improvement of 2026). But Clarity's own bot filter caught 1,382 bots in April — a 42.7% bot rate that's essentially flat vs Q1 (42%) and Mar (40%). Translation: country-targeting fixes are working, but a different layer of bot traffic (script-driven, not geo-flagged) persists. Both filters still need to ship.
GA4 junk (Apr)
29.4%
↓ from 42.3% in Mar
Clarity bot rate (Apr)
42.7%
1,382 bots / 1,853 humans
Singapore users (Apr)
267
GA4 — 4.9% engagement
syndicatedsearch.goog
170
Clarity — dropped from #1 to #4
Bot traffic sources (API-confirmed Apr)
Top non-US countries by users (April MTD)
Singapore
267
Netherlands
61
Russia
55
China
13
Germany
12
Philippines
9
Netherlands (95.1%), Russia (96.4%), Australia (100%), Bangladesh (100%) show abnormally high engagement — hallmark bot pattern. Singapore's bot pattern continues from Q1.
Referrer shift (Clarity Apr MTD)
syndicatedsearch.goog displaced from #1

Clarity referrer order: www.google.com (379) → m.facebook.com (228) → desertmoving.com self (211) → syndicatedsearch.goog (170). Q1 had syndicatedsearch.goog at #1; April it sits at #4.

Combined Facebook traffic (m.facebook.com + l.facebook.com + facebook.com + instagram.com) = 365 sessions, now larger than syndicated.goog. FaceBookApp is the #2 browser at 22% of all sessions — confirms Facebook in-app browser is a major entry point worth optimizing for.

Still add syndicatedsearch.goog to GA4 referral exclusions and Google Ads negative referrers — 170 sessions of low-intent traffic is still meaningful junk.

Traffic sources breakdown (April MTD)
Chapter 4
Invisible to Search
Position improved from 30.5 (Jan) to 11.1 (Apr) — but CTR fell to 0.14%. Impressions grew 180% while clicks grew only 27%. The site is climbing rankings, getting shown more, but Google's auto-generated snippets aren't compelling enough to earn clicks. Custom meta descriptions remain the highest-leverage SEO fix.
Jan Avg Position
30.5
Page 3+ territory
Apr Avg Position
11.1
↑ Page 2 (best of 2026)
Apr CTR
0.14%
Down from 0.3% Q1
YTD Organic Clicks
403
From 162.9K impressions
The blog problem
Blog content drives 60% of organic clicks

The majority of organic clicks come from blog posts with zero commercial intent. People searching for general moving tips click through but have no intent to hire a Coachella Valley moving company.

Meanwhile, location-specific service pages ("movers palm desert," "moving company indio") are barely registering in search results. The pages that could convert are invisible, while the pages that rank don't convert.

Missing fundamentals
No meta descriptions sitewide

Meta descriptions are missing across the site. Google is auto-generating snippets from page content, which means Desert Moving has zero control over what searchers see in results.

For a local service business, the meta description should include: service area, phone number, key differentiator. Every page without a custom description is a missed opportunity to control the click decision.

Meta descriptions — written and ready to deploy
15 pages, CTR projected 0.1% → 3% (30x lift)
April 1-28 GSC: 65,781 impressions, only 95 clicks (0.14% CTR). Impressions are up 52% mo/mo, but clicks fell 24% — Google is showing the site more, fewer people are clicking. Root cause: no meta descriptions. Writing custom meta descriptions for the 15 priority pages below could shift monthly organic clicks from ~100 to ~2,400, and organic leads from ~9 to ~140. All descriptions are 153-155 chars, include 760-537-4454, Coachella Valley / city name, and "since 1987" where space allows.
#1 /palm-springs-moving-
and-storage-solutions
pos 20 · 1,000/mo
Palm Springs movers since 1987. Desert Moving & Storage offers local moves, packing & climate storage across Coachella Valley. Call 760-537-4454.
#2 /yucca-valley-movers
pos 2
Yucca Valley movers trusted since 1987. Local & long-distance moves, packing & storage. Free estimate from Desert Moving. Call 760-537-4454.
#3 /la-quinta-movers
pos 1
La Quinta movers since 1987. Desert Moving handles local, long-distance, commercial & storage across Coachella Valley. Free quote: 760-537-4454.
#4 /rancho-mirage-movers
pos 2.6
Rancho Mirage movers since 1987. Local & long-distance moves, full-service packing, climate storage. Free estimate — call 760-537-4454 today.
#5 /palm-desert-movers
Palm Desert movers headquartered here since 1987. Local, commercial & long-distance moves plus climate storage. Free quote: 760-537-4454.
#6 /indio-movers
Indio movers based right here since 1987. Desert Moving offers local moves, packing & 100,000 sq ft climate storage. Free quote: 760-537-4454.
#7 /cathedral-city-movers
Cathedral City movers since 1987. Local, long-distance, commercial moves + climate-controlled storage across Coachella Valley. Call 760-537-4454.
#8 /joshua-tree-movers
Joshua Tree movers since 1987. Desert Moving & Storage handles local, long-distance & commercial moves. Free same-day estimate: 760-537-4454.
#9 /car-storage
5-20% conv — best page
Indoor climate-controlled car storage in Palm Desert from $175/mo. Secure, 24/7 monitored. Desert Moving & Storage since 1987. Call 760-537-4454.
#10 /storage-services
0% conv — content fix needed
100,000 sq ft climate-controlled storage in Coachella Valley. Secure vaults, household & commercial. Desert Moving since 1987. Call 760-537-4454.
#11 /car-shipping-services
Licensed auto transport (USDOT 825894). Ship your car nationwide with Desert Moving & Storage since 1987. Free quote — call 760-537-4454.
#12 /request-quote
primary conversion page
Get your free Coachella Valley moving quote in minutes. Desert Moving & Storage since 1987. No obligation, fast response. Call 760-537-4454.
#13 /contact-us
Contact Desert Moving & Storage — Coachella Valley's trusted movers since 1987. Indio, CA. Call 760-537-4454 for a free same-day estimate.
#14 / (Homepage)
Coachella Valley's trusted moving & storage company since 1987. Local, long-distance, commercial & climate storage. Free quote: 760-537-4454.
#15 /interior-design-movers
dead page — 100% bounce
White-glove movers for designers & galleries in Coachella Valley. Art, antiques & luxury furniture. Desert Moving since 1987. Call 760-537-4454.
Deploy path: Squarespace → Pages → [page] → Settings (gear) → SEO tab → SEO Description. ~15 minutes for all 15 pages. Also update title tags to the format "[City] Movers & Moving Company | Desert Moving & Storage (Since 1987)".
GSC trend - YTD 2026
Impressions exploding, clicks barely growing
Month
Clicks
Impressions
CTR
Avg Pos
January
75
23,500
0.3%
30.5
February
107
30,400
0.4%
21.6
March
125
43,200
0.3%
14.4
April MTD
95
65,781
0.14%
11.1
April: impressions 65.8K (+52% vs March) but clicks only 95 (-24% vs March). CTR has now fallen from 0.3% to 0.14% as visibility grew. Position improved to 11.1 (best of 2026, page 2 territory). The 60% blog-cannibalization issue persists: /blog/best-budget-friendly-cities-to-move-to-in-california alone took 45 of 95 April clicks (47%) on 44.7K impressions — pure top-of-funnel, zero commercial intent.
Chapter 5
The Conversion Paradox
Some pages get massive traffic and zero conversions. Others get modest traffic and convert well. The /contact-us page may be broken. And site speed went from catastrophic to acceptable in a single month.
The storage paradox
/storage-services: 331 sessions, 0 conversions

The main storage services page receives significant traffic but produces zero conversions. Meanwhile, the specific /car-storage page generates 10 conversions from just 201 sessions.

The difference: /car-storage has a clear, specific value proposition and a direct CTA. /storage-services is generic and lacks a compelling reason to act. The fix is to rebuild /storage-services with the same specificity that makes /car-storage work.

Form analysis
/request-quote captures 89% of all leads

Nearly all conversions flow through a single page. This is both a strength (clear funnel) and a risk (single point of failure).

/contact-us submissions: Jan 5, Feb 5, Mar 0.

The contact page dropped to zero submissions in March. This could indicate a broken form, a design issue, or a redirect problem. Needs immediate investigation.

Site speed recovery
LCP: 67 seconds (Feb) to 1.8 seconds (Mar)
February's Largest Contentful Paint of 67 seconds was catastrophic - the site was essentially unusable. The March improvement to 1.8 seconds represents a massive fix, and the performance score jumped from 66 to 84. However, January's LCP of 9.8 seconds suggests speed issues have been chronic. The 47% dead click rate on the homepage (Clarity data) indicates ongoing UX issues even with improved load times.
/contact-us investigation — verified fix
The form isn't broken. The page is a dead end.
Cowork crawl confirmed: the contact form still loads and submits successfully. But /contact-us gets a 7-second average time on page with near-zero form submissions — visitors land, read the phone number, and call (or leave). That matches the Squarespace referrer data: phone clicks are happening, form fills aren't. The March "0 submissions" was a form-name change in Squarespace (the form got renamed/duplicated), not a technical break.
Root cause
Contact page duplicates /request-quote's purpose but without the conversion path. No value prop above fold, no pricing hint, form asks for details without giving any reason to fill it. Users who want to convert go straight to /request-quote (89% of all form leads). /contact-us catches phone-callers and browsers.
The fix
(1) Add click-to-call GTM tracking to capture the real leads. (2) Rebuild /contact-us as a "Call us / Visit us / Get a quote" hub with 3 paths, not a form page. (3) Remove the duplicate contact form, redirect form-intent traffic to /request-quote. (4) Add hours, map, and a "fastest response: call 760-537-4454" banner.
Squarespace form audit (Cowork-verified)
Duplicate forms are fragmenting the conversion data
The Cowork crawl found 8 copies of "Banning Movers Form 2" and 7 copies of "Local Movers Form 4" in the Squarespace form manager. This is why GA4, Squarespace, and the dashboard all show different submission counts — conversions are being split across forms that look identical but report separately. Also found: Newsletter Form 4 has 1,838 unique views and 0 signups for the month — likely a footer element dragging every page's engagement metric down.
Cleanup plan: In Squarespace → Settings → Forms & Pop-ups: (1) Pick one canonical "Local Movers" form and one "Banning" form, delete the duplicates after exporting their submissions. (2) Remove Newsletter Form 4 entirely or replace with "Get our free moving checklist" lead magnet. (3) Re-point all CTAs to the canonical forms. This will consolidate reporting and reduce 1,800+ useless impressions/month.
Homepage dead clicks
47%
Of all dead clicks sitewide
LCP improvement
67s → 1.8s
Feb to Mar - massive fix
Performance score
84/100
Up from 55 in Jan
Chapter 6
The Path Forward
Session-level Clarity data confirms $6,706 in wasted spend. Every recommendation below is tied to verified data from Google Ads, GA4 API, Squarespace, Search Console, and Clarity CSV analysis. Organized by priority and estimated impact.
Bottom line: Pausing DMC-Search3 saves $1,500/month immediately. Adding negative keywords saves another $500/month. Fixing PMax could recover 28 conversions/month. Combined estimated impact: 50-70% CPA reduction in Q2.
P0
Critical — do this week (est. $2,000/mo savings)
1
PAUSE DMC-Search3 (Campaign 22740756941)
CSV + GA4-confirmed: warehouse keyword variants delivered 86+ paid sessions to /storage-services in Apr 1-22 with 0 conversions. Same waste pattern from Q1 still running live. Reallocate $50/day to Search-03-02-2026, which holds at $92 CPA.
2
Add account-level negative keywords
Add: warehousing, warehouse, pick and pack, fulfillment, 3pl, distribution center, warehouse rent, logistics warehousing, box truck rental, car dolly rental, shipping boxes, pods, u-haul, penske. Saves $500+/month.
3
Fix GA4 conversion tracking (in GTM)
GA4 shows 3 different conversion numbers (generate_lead: 61, form_submit: 1, thank_you_page: 35). Squarespace shows 55. Create one clean generate_lead event in GTM that fires on Squarespace form success. Mark as only Key Event.
4
Add click-to-call tracking
Two phone numbers (760-537-4454, 760-904-3225) on site with zero tracking. In GTM: trigger on tel: link clicks, push click_to_call event. Add call extensions to Google Ads campaigns. Phone calls likely 30-50% of all leads.
5
Rebuild /contact-us as a call-first hub (form isn't broken — page is a dead end)
Cowork-verified: form still works. March "0 submissions" was a Squarespace form rename, not a break. Real issue: 7-sec avg time, visitors call instead of filling the form. Fix: (1) Add click-to-call GTM tracking. (2) Rebuild page as Call / Visit / Get-a-quote hub. (3) Remove duplicate contact form. (4) Add hours + map + "fastest response: call 760-537-4454" banner.
6
Add backup payment method to Google Ads
Flagged in March. Risk of all ads going dark if primary payment fails.
P1
High priority — this week / next week
1
Fix PMax campaign (5 actions)
(1) Add lead form asset (missing all Q1). (2) Add audience signals: past converters, moving keyword intent, competitor URLs. (3) Add placement exclusions for syndicated sites. (4) Change location targeting to "Presence" only. (5) Set view-through conversion window to 1 day.
2
Rebuild /storage-services page
782 unique views, 1 conversion (0.1%) in March. /car-storage: 222 views, 81 button clicks (5.2%). Fix: change H1 from "Warehouse Storage," add service selector above fold, embed quote form, add pricing indicators, fix 11 dead-click sessions/month.
3
Change /request-quote "Submit" button
Change to "Get My Free Quote." Make "How did you hear about us?" optional. Add social proof near form. Apr MTD Clarity: 145 sessions on /request-quote, 95 "request quote" smart events, 40 "submit form" smart events — ~58% drop-off between intent click and submission. Squarespace confirms 49 Request Quote submits at 25.3% form CR (Mar baseline). AI key summary flagged "Abandoned quote forms after partial input" as a top pattern.
4
Filter bot traffic in GA4 + fix location targeting
Apr MTD: GA4 country-junk 29.4% (Singapore 267, Netherlands 61, Russia 55). Clarity's own bot filter caught 1,382 bots = 42.7% bot rate, flat vs Q1 (42%) and Mar (40%). syndicatedsearch.goog still 170 Clarity sessions (down from #1 to #4). In GTM: add country condition to GA4 tag. In Google Ads: change to "Presence" only + add syndicatedsearch.goog to referral exclusion list.
5
Expand Search-03-02-2026 budget
Best campaign: 12 conversions at $124 CPA. With Search3 paused, increase from $50/day to $75-100/day.
6
Clean up duplicate Squarespace forms
Cowork-verified: 8x "Banning Movers Form 2", 7x "Local Movers Form 4" exist in Squarespace form manager. Conversion data is fragmented across duplicates. Pick one canonical form per type, export submissions from dupes, delete the rest, re-point all CTAs. Also remove Newsletter Form 4 (1,838 views, 0 signups).
7
Deploy 15 meta descriptions (written & ready)
See Chapter 4 — all 15 pages have descriptions written (153-155 chars, phone + Coachella Valley + since 1987). Squarespace → Pages → [page] → Settings → SEO tab. ~15 min total. Projected: 47 organic clicks/mo → ~1,400 at 3% CTR = ~141 organic leads/mo at current 10% conv rate.
P2
Medium priority — this month
1
Write meta descriptions (all key pages)
No custom meta descriptions found sitewide. CTR stuck at 0.3% despite position improving 30.5 to 14.4. Write for: homepage, /request-quote, /storage-services, /car-storage, /contact-us, all 10 city pages. Could 2-3x organic CTR.
2
Optimize city page titles + add FAQ schema
Better format: "[City] Movers & Moving Company | Desert Moving (Since 1987)". Add JSON-LD FAQ schema (FAQ sections exist but aren't marked up). Rich snippets increase CTR 0.5-1.0%.
3
Fix homepage dead clicks
30-54 dead click sessions/month (47% of all). Make service cards fully clickable. Add "What do you need?" quick selector above fold.
4
Add UTMs + fix attribution
Manual UTM tagging on all campaigns. Add syndicatedsearch.goog + staging URL to GA4 referral exclusion list. Resolves the 762/478/285 Paid Search discrepancy.
5
Add CTAs to blog posts
Budget-friendly cities post gets 60% of organic clicks but zero conversions. Add "Moving to California? Get a free quote" CTA. Create bridge article to city pages.
P3
Growth — Q2 2026
1
Geographic bid adjustments
+25%: Joshua Tree ($48 CPA), Bermuda Dunes ($65 CPA). -25%: Yucca Valley ($242). -35%: Coachella ($329). -15%: Indio ($236).
2
Shift budget to car storage keywords
CSV-confirmed: car keywords convert 11.3% vs warehouse 4.8% (2.4x better). New targeting: car storage palm desert, vehicle storage near me, indoor car storage, climate controlled car storage.
3
Expand city pages + content hub
1,500+ words per city page. Inter-link between cities. "Moving to [City]" guides, snowbird storage content for Calgary/Toronto audience (67-88 sessions/month from Canada).
4
Consider CallRail ($45-95/mo)
Dynamic number insertion for full call attribution by campaign, keyword, and landing page.
5
Set up automated reporting cron job
GA4 + GSC APIs connected (pull_reports.py). Schedule monthly runs. Add Google Ads API. Squarespace/Clarity remain manual via Claude Cowork prompts.