Dana DiTomaso brought 25 years of experience to Tech SEO Connect with a simple premise: “It’s almost 2026. Why am I looking for problems instead of having problems come to me?” She wants issues to pop up and say “hello, I’m a problem, please fix me” rather than requiring manual crawls to discover them.
Her solution: use Google Tag Manager to listen to what visitors are experiencing and surface technical issues in real-time. Your visitors are already on your site breaking things—why not use that as intel?
While the presentation used GTM and GA4, DiTomaso emphasized the principles work anywhere: Matomo, Amplitude, Segment, whatever. “I don’t really care what tool you use. Just do something and make sure you’re measuring this stuff.”
Why Events and Count Metrics Matter
DiTomaso recommends using events rather than just looking at page view counts for error pages. Events give you specific spikes showing exactly when issues occurred. She showed a chart of JavaScript errors where the spike clearly identified the exact day a developer pushed bad code.
A GA4-specific tip: add a custom metric to count how many times each event occurred. The GA4 interface doesn’t let you easily see event counts in saved reports—the dropdown for event count can’t be saved. Her workaround: add an event parameter with a value of 1 to every event, then register it as a custom metric. “It is ridiculous that I have to do this. But here we are in almost 2026, making silly workarounds.”
This unlocks the ability to see counts in Looker Studio and create calculated metrics like “content consumed rate” (consumed events divided by page views).
Tracking Technical Issues
DiTomaso walked through specific GTM setups for common technical SEO issues. She consulted with Sam Torres on what technical SEOs actually want surfaced, resulting in a comprehensive list.
404 Errors
For WordPress sites, check if the body class contains “error 404″—it’s there by default unless a developer removed it. Use a DOM element variable to read the body class, trigger on page view DOM ready (the DOM must exist before you can listen to it).
Important: name your event “page_view_404” not “404_page_view”—GA4 can’t start event names with numbers. Also: all lowercase, no spaces, use underscores. “If I’m complaining about event names that other people make… all lowercase, no spaces, underscores. Thank you.”
To distinguish internal vs. external link 404s, use a lookup table on the referrer URL. This tells you whether broken links are on your site or coming from external sources.
URL Encoding Issues
When someone creates a URL with spaces (because the CMS let them), you get percentage signs in URLs. Simple trigger: page path contains “%”. For multilingual sites with accented characters, add exception triggers for allowed entities—accents will encode as things like “%C3%A9” which are legitimate.
Uppercase in URLs
A regex trigger checking if page path contains uppercase letters. Important: trigger on page path, not full URL—Google Ads click IDs contain uppercase, and you don’t want false positives.
UTMs on Internal Links
“Don’t do it ever,” DiTomaso said. “It’s even worse in GA4 than it was in UA.” The problem: if someone arrives via paid, clicks an internal link with a UTM, then returns via direct the next day, GA4 attributes that session to the internal UTM—not the original paid source. To catch this, create a click trigger where click URL is internal and contains “utm”.
Trailing Slash Inconsistency
If your URLs should always have trailing slashes (or never have them) but the developer’s fix keeps getting undone, track it. A regex lookup table can identify whether pages have trailing slashes or not, then fire events when the wrong pattern appears.
Redirect Chains
The JavaScript variable “window.performance.navigation.redirectCount” tells you how many redirects occurred before landing on the current page. Add this to your page view tag as a parameter to catch accidental daisy chains.
Wrong Hostname Rendering
After site redos, sometimes development URLs get missed in search-and-replace, and the dev site renders for real visitors. Use a lookup table on page hostname to flag when the wrong domain is serving content.
Core Web Vitals (Real Data)
DiTomaso showed a Core Web Vitals chart from Search Console: “Nothing happened here. This is horrible garbage.” The data is too smoothed to be useful.
Instead, use Simo Ahava’s GTM template that records real-world CWV values from actual visitor experiences. You can configure it to record all metrics or only fire when values exceed thresholds (like LCP over 2.5 seconds). One note: if you have an e-commerce site, don’t use “value” as the parameter name—it will interfere with e-commerce tracking.
JavaScript Errors
GTM has a built-in trigger for JavaScript error capture—just turn it on. Built-in variables capture the error message, line number, and URL. “It’s shocking the amount of JavaScript errors developers are just totally okay with. There should be none.”
User Agent
Capture user agent on the configuration tag (parameters that don’t change during session). Watch out for the 100-character limit in GA4—DiTomaso is working on a custom template to capture parts of the user agent string.
Implementation Tips
Separate page view tag: Don’t just let GA4 fire page views from the configuration tag. Create a separate page view tag so you can add custom parameters—redirect count, CWV values, and other useful data.
Reuse triggers: “You can use the same trigger for multiple tags. You don’t need to make a new trigger for every tag in Google Tag Manager. Stop doing that.”
Use AI for regex: “Regex is horrible. I don’t know who came up with it… AIs are really good at building regex because regex is horrible.” (This sparked a lively debate in the room about whether regex is actually bad.)
Consider a separate GA4: If you’re sending lots of technical tracking data, you might be polluting your marketing team’s GA4. A separate property for technical monitoring is fine—the load impact is imperceptible after initial configuration.
My Takeaways
DiTomaso’s talk was the most immediately implementable of the conference. Every technique had screenshots showing exactly how to set it up, and she’s publishing the slides.
What I’m implementing:
1. Add count metrics to all events. The workaround is annoying but necessary for useful reporting in Looker Studio.
2. Track 404s with internal/external distinction. Knowing whether broken links are on your site or from external sources changes the response.
3. Monitor JavaScript errors. The built-in GTM trigger is easy to enable. Developers should know about errors in real-time.
4. Use Simo Ahava’s CWV template. Real visitor data beats Search Console’s smoothed charts.
5. Track redirect counts on page views. One JavaScript variable catches daisy chains automatically.
6. Watch for UTMs on internal links. The attribution problems are worse than most marketers realize.
The philosophy is powerful: stop hunting for problems and let problems find you. Your visitors are already encountering issues—you just need to listen. With these GTM configurations, technical problems surface as event spikes the moment they occur, not weeks later when you finally run a crawl.







