Your GTM tags aren’t firing. The preview panel shows nothing. Your data is disappearing into the void. We’ve seen this thousands of times—here’s how to fix it.
Step 1: Verify the Container is Actually Loading
Before debugging individual tags, confirm GTM itself is running:
- Open Chrome DevTools (F12)
- Go to Network tab
- Filter by “gtm”
- Reload the page
You should see a request to googletagmanager.com with status 200. If not, your container snippet is missing or broken.
Common Container Issues
- Snippet in wrong location: Must be immediately after
<head>tag - Duplicate containers: Two GTM snippets with different IDs
- JavaScript errors blocking execution: Check Console tab for errors before GTM loads
Step 2: Use Preview Mode Correctly
GTM’s Preview mode is your primary debugging tool, but many people misuse it:
- In GTM, click Preview (top right)
- Enter your site URL
- Open your site in the new tab (not a different browser)
- Keep both tabs open
Critical: Preview mode uses cookies. If you’re testing in incognito, you need to reconnect preview mode in that window. If preview mode itself isn’t working, see our dedicated GTM preview mode troubleshooting guide.
What Preview Mode Shows You
- Tags Fired: Tags that executed
- Tags Not Fired: Tags that exist but didn’t trigger
- Data Layer: All events and variables
If a tag shows “Not Fired,” click it to see which trigger condition failed.
Step 3: Check Your Triggers
90% of “tag not firing” issues are trigger problems. For each trigger, verify:
Page View Triggers
- Is it set to “All Pages” or specific pages?
- If using regex or contains, test your pattern at regex101.com
- DOM Ready vs Page View vs Window Loaded—are you using the right one?
Click Triggers
- Is “Just Links” vs “All Elements” correct?
- Are you clicking the right element? Use “Click Element” variable to verify
- Is the link handling preventing the click from registering?
Custom Event Triggers
// Your code should push exactly this:
dataLayer.push({
'event': 'your_event_name' // Matches your trigger exactly
});
Check spelling, case sensitivity, and timing. The push must happen AFTER GTM loads. If the data layer push itself is the problem, see our complete data layer debugging guide.
Step 4: Consent Mode Issues
If you implemented Google Consent Mode, tags may be blocked until consent is granted:
- In Preview mode, check the Consent tab
- Verify consent signals are being set
- Tags with
require_consent: ['analytics_storage']won’t fire without explicit consent
Quick test: Temporarily set default consent to “granted” and see if tags fire.
Step 5: Variable Problems
Tags often fail because variables return undefined:
- In Preview mode, click on Variables tab
- Find the variable your tag uses
- Check its value at the moment your trigger fires
Common issues:
- Data layer variable name mismatch
- Variable trying to read DOM element that doesn’t exist
- Timing: variable evaluated before data is available
Step 6: Tag Configuration Errors
Even with correct triggers, tag configuration can fail:
Google Analytics 4
- Missing Measurement ID (starts with G-)
- Using “Tag ID” instead of “Measurement ID”
- Configuration tag not firing before event tags
Meta Pixel
- Pixel ID not a number
- Trying to fire events before base pixel
Google Ads
- Conversion ID vs Conversion Label confusion
- Missing conversion value for value-based bidding
The Nuclear Option: Console Debugging
When Preview mode isn’t enough, use the console:
// Check if GTM loaded
console.log(google_tag_manager);
// View entire data layer
console.log(dataLayer);
// Watch for specific events
dataLayer.push = function(e) {
console.log('Data Layer Push:', e);
Array.prototype.push.call(dataLayer, e);
};
Still Stuck?
If you’ve gone through all this and tags still aren’t firing, the issue is likely:
- Server-side blocking: Ad blockers, corporate firewalls, or privacy extensions
- Race conditions: Complex timing issues between scripts
- Third-party conflicts: Other scripts interfering with GTM
If you’re on WordPress, caching plugins are a frequent cause of GTM failures — see our WordPress GTM setup guide. And if you’re trying to set up form tracking specifically, GTM form tracking has its own set of common issues.
At this point, you need an expert eye. We’ve debugged thousands of containers and can usually identify the issue in minutes.
Get a free GTM scan and we’ll tell you exactly what’s broken.