Google Ads and GA4 tracking for WordPress
The Google problem on WordPress is usually a form that submits over AJAX and a conversion trigger waiting for a thank-you page that never loads. Add a caching plugin that serves a stale page and an optimisation plugin that defers the container, and the tag is fine while the conversion never fires.
Free30 minutesNo obligation
WordPress + Google · what breaks
What goes wrong on WordPress
- 01
Forms submitting over AJAX
No navigation, so a thank-you-page trigger can never fire.
- 02
Caching plugins serving stale pages
Including a stale data layer, which looks exactly like a broken tag.
- 03
Optimisation plugins deferring the container
So it loads after the event it was supposed to catch.
- 04
Several pixels from several sources
Theme, plugin, builder field, pasted widget.
WordPress + Google · the fix
What changes — WordPress + Google
Events bound to the plugin's real success hook
Not to a navigation that doesn't happen.
One tracking path
After a full inventory of what's installed.
Caching and deferral accounted for
Rather than blamed on the tag.
WordPress + Google · architecture
How the Google destinations behave on WordPress
Check the form's submission behaviour before anything else — it explains most WordPress conversion failures.
- 1
Trigger bound to the form's success event
Not to a URL change. Test by submitting and watching the address bar.
- 2
Counting set to one for lead forms
Repeat submitters otherwise inflate everything.
- 3
Click IDs in hidden fields
All four, populated on landing, not merely present.
- 4
Caching excluded from confirmation pages
Or the event sourced server-side.
- 5
Enhanced Conversions for leads from the submission
Where the form collects an email.
WordPress + Google · diagnose
Where WordPress tracking breaks, in diagnostic order
Each check rules out a class of cause, so by the last one there is usually a single explanation standing.
- 01
Submit a form and watch the URL
No change means a page-view trigger can never fire.
- 02
List every plugin with a tracking field
Including SEO, security and builder plugins.
- 03
Disable optimisation temporarily and retest
Deferred JavaScript is a common invisible cause.
- 04
Check whether the confirmation page is cached
A cached page can carry another visitor's values.
- 05
Reconcile submissions against CRM records
For a closed month.
WordPress + Google · prove
The QA evidence — WordPress + Google
Run on WordPress specifically, on a live conversion rather than in preview mode.
Source of truth
your CRM or form submission records
- A live form submission captured with the payload read, not previewed.
- Trigger confirmed firing on the form's real success state.
- Only one pixel path confirmed active after inventory.
- Click identifiers confirmed present in the submitted data.
- Submissions reconciled against CRM records for a closed month.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
WordPress + Google · free audit
What we check in the free audit
- Submit a form and watch the URL
- List every plugin with a tracking field
- Disable optimisation temporarily and retest
- Check whether the confirmation page is cached
- Reconcile submissions against CRM records
Checked against
your CRM or form submission records
Free30 minutesNo obligation
WordPress + Google · when not to buy
When you don't need this on WordPress
Worth reading before you buy anything, from us or anyone.
- If your form conversions fire reliably and your counts reconcile against your CRM, the WordPress plugin lottery hasn't bitten you and there's nothing here to buy.
- Most of this is inventory work you can do yourself in an afternoon: list the plugins, submit a test form, watch what fires.
- If you run WooCommerce, the ecommerce side has its own page and different failure modes — this one is about WordPress as a lead-generation site.
- Server-side matters most here when caching or optimisation plugins are interfering. If neither is installed, browser-side may be perfectly adequate.
WordPress + Google · what we deliver
What gets built for Google on WordPress
GA4 ecommerce events in the recommended shape
Correct names, transaction_id present, currency per order, an items array that agrees with the value.
Click identifiers captured and persisted
gclid, gbraid and wbraid — not just the first, because iOS traffic arrives with the others.
Enhanced Conversions from the data layer
Not from CSS selectors, which break on every redesign silently.
Conversion action settings reviewed
Counting, primary status and attribution window — free to change and more consequential than most tag work.
Written guarantee
95%+ tracking accuracy
Measured against your CRM or form submission records. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.
- Root cause fixed, not worked around
- Verified on a live conversion
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds and cancellations corrected wherever each platform allows it
- Monitoring on every destination
FAQ
WordPress + Google questions, answered
One, for lead forms. Repeat submitters otherwise inflate the count and bidding chases them.
Often a page-view trigger plus a form-success trigger both live, or two plugins both configured with the same conversion.
Hidden fields on every form, populated on landing. The field existing isn't the same as it having a value.
Yes, where the form collects an email. Source it from the submission rather than DOM selectors.
Free · 30 min
Get Google Ads and GA4 right on WordPress
Free30 minutesNo obligation
