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)

  1. Navigate to Reports > Engagement > Pages and screens

  2. In the search bar at the top of the data table, type: 404 or not found (depending on your page title format)

  3. Add a secondary dimension: Page path and screen class

  4. 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)

  1. Go to Explore > Create a new exploration > Free form

  2. Under Dimensions, add:

    • Event name

    • Page title

    • Page path and screen class

    • Page referrer

  3. Under Metrics, add:

    • Event count

  4. 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

  1. Open a browser in Incognito mode

  2. Navigate to your website and manually type a non-existent URL (e.g., yoursite.com/this-page-does-not-exist)

  3. Check the browser tab title—does it clearly say "404" or "Not Found"?

  4. Open Reports > Realtime in GA4

  5. Look for the event in the Event count by Event name card

  6. 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

  1. In GTM, go to Triggers > New

  2. Name it: 404 Error Trigger

  3. Trigger type: Custom Event

  4. Event name: 404_not_found (must match the data layer event name exactly)

  5. Save

Step 3: Create a GA4 Event Tag

  1. Go to Tags > New

  2. Name it: GA4 - 404 Error Event

  3. Tag type: Google Analytics: GA4 Event

  4. Configuration Tag: Select your GA4 configuration tag

  5. Event name: 404_error (this is what appears in GA4 reports)

  6. Optional: Add event parameter:

    • Parameter name: error_page_path

    • Value: {{Page Path}} (built-in variable)

  7. Triggering: Select the 404 Error Trigger created in Step 2

  8. Save and Submit the GTM container

Step 4: Test in GTM Preview Mode

  1. Click Preview in GTM

  2. Enter a broken URL on your site

  3. Verify the 404_not_found event appears in the GTM debugger

  4. Check that the GA4 tag fires

Step 5: Verify in GA4 DebugView

  1. In GA4, go to Admin > DebugView (under Property settings)

  2. Visit a 404 page while in GTM preview mode

  3. Confirm the 404_error event appears in the stream

Fix 3: Audit and Redirect Broken URLs

Use GA4 data to prioritize fixes:

  1. Export your 404 report from the Exploration created earlier

  2. 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.

👉 Explore Watson Analytics Detective

Previous
Previous

High Bounce Rate Landings in GA4: Diagnosis and Solution

Next
Next

PII in GA4: Diagnosis and Solution