404 Errors in GA4: Diagnosis and Solution
The Case File
Your GA4 property is collecting page views, but you're flying blind on broken links. 404 error tracking measures how many page_view events hit pages with titles containing "Not Found" or "404"—the digital equivalent of sending customers into locked rooms.
This check identifies when your 404 error rate exceeds 0.1% of total page views. If you're hitting that threshold, users are encountering dead ends at an alarming rate, and your analytics should be screaming red flags.
The core question: Are your page view events capturing 404 pages with identifiable titles, or are broken links invisible in your data?
The Root Causes (Why This Happens)
404 tracking failures don't stem from a single misconfiguration—they're the result of multiple technical breakdowns across your implementation stack.
1. Generic or Missing Page Titles
The most common culprit: Your 404 error page lacks a descriptive <title> tag. If your 404 page title is "Home," "Welcome," or simply inherits the site name, GA4's page_view event will track it as a normal page. Without a clear identifier like "404 | Page Not Found" in the title, automated detection is impossible.
Edge case: Some CMS platforms (WordPress, Shopify) use dynamic titles that don't consistently include "404" text, especially on custom error pages.
2. Soft 404 Errors (Server Misconfiguration)
A soft 404 occurs when your web server returns a 200 OK status code for non-existent pages instead of a proper 404 Not Found response. GA4 sees this as a successful page load, not an error.
Why it happens:
Server redirects broken URLs to the homepage (with 200 status)
CMS platforms serve "Page Not Found" content without changing the HTTP status code
Single-page applications (SPAs) handle routing client-side without server-level error codes
The detection problem: Soft 404s often have generic page titles like "Home" or "Search Results," making them indistinguishable from legitimate pages in GA4 reports.
3. GTM/Data Layer Implementation Gaps
If you're relying on a custom event approach (pushing a 404_not_found event to the data layer), failures occur when:
Developer implementation is incomplete: The data layer push code isn't added to the 404 template
Trigger misconfiguration: GTM's custom event trigger doesn't match the exact event name (case-sensitive)
Tag firing order issues: The GA4 event tag fires before the data layer push completes (race condition)
Code example of what should exist:
javascriptCopy code
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': '404_not_found'
});
Open in CodePen
If this code is missing from your 404 error page template, GA4 will never receive the signal.
4. URL Redirect Chains
The silent killer: Broken links get automatically redirected (301/302) to the homepage or a category page instead of serving a 404 response. Users never see an error page, so GA4 never logs the broken URL.
Common scenario: An old blog post URL (/old-article) redirects to /blog instead of returning a 404. Your analytics show traffic to /blog, but you've lost visibility into the broken link source.
5. Platform-Specific Quirks
GA4 data thresholding: If 404 page views fall below Google's thresholding limits (typically <50 events), they may not appear in standard reports
Enhanced Measurement limitations: GA4's automatic page_view tracking relies entirely on the <title> tag—there's no built-in HTTP status code detection
BigQuery export timing: 404 events may be delayed in BigQuery exports, causing temporary reporting gaps
The "So What?" (Business Impact)
SEO Degradation
Search engines like Google crawl your site and encounter 404 errors. While Google has stated that 404s themselves aren't a direct ranking penalty, excessive broken links signal poor site maintenance. Crawl budget gets wasted on dead pages instead of indexing valuable content.
Industry benchmark: Webmaster forums suggest well-maintained sites should stay under 0.25% 404 error rate. The Watson threshold of 0.1% is even more stringent, ensuring proactive detection.
User Experience Collapse
Every 404 error is a conversion opportunity lost. Research indicates that for every 100 visitors hitting a 404 page, you lose approximately 1% of potential sales or leads. Users who encounter broken links:
Experience higher bounce rates (often 80%+ on 404 pages)
Lose trust in your brand's professionalism
Rarely return to retry their search
Attribution Breakdown
Broken links from marketing campaigns create data fragmentation. If a UTM-tagged email link leads to a 404, you'll see:
Inflated bounce rates for that campaign
Session breakage (users may re-enter via a working URL, creating duplicate sessions)
Inaccurate conversion path reporting
Example: A paid search ad sends traffic to a deleted product page. GA4 logs the click, but the 404 prevents the purchase event. Your ROAS calculations become meaningless.
Hidden Technical Debt
Without 404 tracking, you can't identify:
Referral sources sending traffic to broken URLs (external backlinks)
Internal navigation issues (broken menu links, outdated sitemaps)
Migration failures (old URLs not properly redirected after a redesign)
The Investigation (How to Debug)
You don't need Watson to confirm this issue exists—but manual detection requires forensic work.
Method 1: Standard GA4 Reports (Page Title Detection)
Navigate to Reports > Engagement > Pages and screens
In the search bar at the top of the data table, type: 404 or not found (depending on your page title format)
Add a secondary dimension: Page path and screen class
Review the results:
Views column shows total 404 page views
Page path reveals which broken URLs users are hitting
Red flag: If you see zero results but know broken links exist, your 404 page title isn't descriptive enough.
Method 2: GA4 Explorations (Advanced Filtering)
Go to Explore > Create a new exploration > Free form
Under Dimensions, add:
Event name
Page title
Page path and screen class
Page referrer
Under Metrics, add:
Event count
In Tab Settings:
Rows: Drag Page referrer and Page path and screen class
Values: Drag Event count
Filters:
Event name exactly matches page_view
Page title contains 404 (click Apply)
This report shows:
Which broken URLs are being accessed (Page path)
Where users came from (Page referrer)—critical for identifying external broken backlinks
Volume of each 404 error
Method 3: Real-Time Testing
Open a browser in Incognito mode
Navigate to your website and manually type a non-existent URL (e.g., yoursite.com/this-page-does-not-exist)
Check the browser tab title—does it clearly say "404" or "Not Found"?
Open Reports > Realtime in GA4
Look for the event in the Event count by Event name card
Click on page_view and check if the 404 page appears with a recognizable title
If the title is generic (e.g., "Home"), you've found the root cause.
The Solution (How to Fix)
Fix 1: Ensure Descriptive 404 Page Titles (No-Code Solution)
Best practice: Your 404 error page's <title> tag must include identifiable keywords.
Recommended format:
htmlCopy code
<title>404 - Page Not Found | [Your Site Name]</title>
Open in CodePen
Platform-specific instructions:
WordPress: Edit your theme's 404.php file or use a plugin like Yoast SEO to customize the 404 title
Shopify: Edit theme.liquid and locate the 404 template section
Custom sites: Modify your server's 404 error page template
Verification: After updating, test by visiting a broken URL and checking the browser tab title.
Fix 2: Implement Custom Event Tracking via GTM (Advanced Solution)
If you need more granular control (e.g., tracking 404 errors as a separate event), use Google Tag Manager.
Step 1: Add Data Layer Code to 404 Page
Work with your developer to add this JavaScript to your 404 error page template:
javascriptCopy code
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': '404_not_found',
'page_path': window.location.pathname
});
</script>
Open in CodePen
Step 2: Create a Custom Event Trigger in GTM
In GTM, go to Triggers > New
Name it: 404 Error Trigger
Trigger type: Custom Event
Event name: 404_not_found (must match the data layer event name exactly)
Save
Step 3: Create a GA4 Event Tag
Go to Tags > New
Name it: GA4 - 404 Error Event
Tag type: Google Analytics: GA4 Event
Configuration Tag: Select your GA4 configuration tag
Event name: 404_error (this is what appears in GA4 reports)
Optional: Add event parameter:
Parameter name: error_page_path
Value: {{Page Path}} (built-in variable)
Triggering: Select the 404 Error Trigger created in Step 2
Save and Submit the GTM container
Step 4: Test in GTM Preview Mode
Click Preview in GTM
Enter a broken URL on your site
Verify the 404_not_found event appears in the GTM debugger
Check that the GA4 tag fires
Step 5: Verify in GA4 DebugView
In GA4, go to Admin > DebugView (under Property settings)
Visit a 404 page while in GTM preview mode
Confirm the 404_error event appears in the stream
Fix 3: Audit and Redirect Broken URLs
Use GA4 data to prioritize fixes:
Export your 404 report from the Exploration created earlier
For each broken URL, decide:
Redirect (301) if the page moved to a new location
Fix internal links if the broken URL is linked from your site
Leave as 404 if the URL was never valid (e.g., spam bots, typos)
Tools for bulk redirects:
WordPress: Redirection plugin
Shopify: Built-in URL redirects (Settings > Apps and sales channels > Online Store > URL Redirects)
Custom sites: Server-level redirect rules in .htaccess or nginx.conf
Case Closed
Finding 404 errors manually—filtering page titles, cross-referencing referrers, exporting explorations—takes 15-30 minutes per audit. And that's assuming your 404 page titles are even configured correctly.
The Watson Analytics Detective dashboard spots this Warning-level error instantly, alongside 60+ other data quality checks. It automatically calculates your 404 error percentage, flags the threshold breach, and surfaces the exact broken URLs—no manual digging required.
Stop chasing broken links in the dark. Let Watson illuminate the data quality issues that cost you traffic and conversions.