Google Tag Manager for Law Firm Websites: What to Track (and What to Ignore)
Here's the thing nobody tells law firms when they hire a web developer: "we've got Google Tag Manager installed" and "we can tell you how many new matters the website generated last month" are two completely different sentences. We've audited dozens of firm websites with a GTM container sitting there, verified and published, doing almost nothing useful — no conversion events, no phone tracking, sometimes not even connected to Google Analytics properly.
The container being installed is not the same as the tracking working. 💖 And for firms spending real money on SEO or Google Ads, that gap is where marketing budget quietly disappears without anyone noticing, because the reports still look fine — they're just measuring the wrong things.
What most law firms get wrong
The most common mistake is treating GTM like a "track everything" box instead of a "track what matters" box. We see firms with tags firing on scroll depth, every outbound link, every PDF download, every button hover — and not one single tag that reliably says "this visitor called us" or "this visitor booked a consult." The dashboard is busy. The one number the partners actually want — cost per new matter — is nowhere to be found.
The second mistake is even sneakier: firing the "lead" conversion on the click of the submit button rather than on a successful, confirmed submission. That means every accidental double-click, every validation error, and every bot that hits the form counts as a new lead. We've seen firms report a 40% jump in "leads" after a website redesign that was actually just duplicate tags firing twice per real submission. The marketing looked like it was working. It wasn't.
- GA4 configuration tag — fires on All Pages, sends base pageview and session data to GA4.
-
Phone click trigger — Click URL contains
tel:, fires aphone_clickevent. This is your primary conversion if you take calls. -
Form submission trigger — fires only on the confirmed thank-you page load (or a dataLayer push after successful submit, never on button click), sends a
generate_leadevent. -
Consultation booking trigger — fires on the booking confirmation page from your scheduling tool (Calendly, LawTap, Acuity), sends a
book_consultevent. - Google Ads conversion linking — import the two or three events above into Google Ads as conversions, via GA4's built-in linking, so your ad spend actually optimises toward them.
How to actually set this up
Start in GTM's Preview mode before publishing anything — it shows you exactly which tags fire on which click or page, which catches duplicate or broken tags before they pollute your data. Set up the GA4 configuration tag first, confirm it in GA4's Realtime report, then layer in the phone click trigger using a Click Trigger filtered to Click URL containing tel:. For forms, resist the urge to trigger on the submit button — use a proper thank-you/confirmation page trigger or a dataLayer push your developer adds after a successful submission. Test everything in GA4's DebugView, then link your two or three real conversion events into Google Ads under Tools → Conversions → Import. Set a recurring 90-day habit of checking GTM's version history — nothing should change without you knowing.
Mistakes to avoid
- Firing a "lead" conversion on button click instead of a confirmed, successful submission — it inflates numbers with errors and bot traffic.
- Not excluding staff, client portal logins, or your own office IP from conversion goals, which quietly inflates your "new enquiry" count.
- Tracking every scroll and outbound click and calling it "engagement" without ever tying it back to an actual enquiry.
- Letting a web developer install GTM once and never touching it again — tags break silently when a form plugin updates or a page gets redesigned.
- Running Google Ads without linking GA4 conversions into the ads account, so the algorithm has no idea which clicks actually turned into enquiries.
- Duplicate base tags firing — one hardcoded in the theme, one added again in GTM — which double-counts every single pageview and conversion.
Frequently asked questions
Do we need Google Tag Manager if GA4 is already installed directly on the site?
You can run GA4 through its own gtag.js snippet without GTM at all, and plenty of smaller firm sites do exactly that. The advantage of GTM is being able to add, adjust or remove tags — a new phone tracking trigger, a new ad platform pixel — without asking a developer to touch the site's code every time. The trade-off is one more system to understand and test properly, so it's only worth the switch if you'll actually use the flexibility.
How long does this actually take to set up properly?
If your site already has a GTM container and clean, dedicated thank-you pages after forms and bookings, the five-tag map above is a couple of hours' work. It takes longer if your booking tool is a third-party widget that doesn't redirect to a confirmation page, or if your forms live inside an embedded iframe — both need a slightly different tracking approach.
Should we bother tracking things like time on page or pages per session?
Honestly, not yet. Those metrics are genuinely useful once your core lead tracking is accurate and trusted — they can help explain why a page underperforms. But most firms reach for them as a distraction from the fact that their actual lead numbers aren't being tracked properly at all. Fix the plumbing first.
What about call tracking numbers that show which channel a call came from?
Dynamic number insertion (swapping the displayed phone number based on traffic source) is a genuinely useful next step once the basics above are working, and it's the only reliable way to attribute phone calls to a specific campaign. It's usually a paid add-on tool rather than something GTM does natively, though — and even then, it tells you a call happened, not whether that call turned into a paying client. That last mile still needs a chat with your intake team.
Keep reading 🤍
I help Gold Coast and Brisbane businesses grow with branding, websites and marketing that actually works.
Work with me ✦