Webnode is a managed website builder with multi-language support and built-in ecommerce. Analytics troubleshooting on Webnode is constrained by the platform's plan-based feature restrictions: custom code injection is only available on premium plans, and the platform's built-in statistics can create confusion when compared with third-party analytics data.
Webnode-Specific Debugging Approach
Webnode provides analytics through its built-in Statistics panel and through custom code injection on premium plans.
Verify Code Injection Availability
- Webnode Dashboard > Settings > SEO and Analytics: Check for the Google Analytics field
- Webnode Dashboard > Settings > Header/Footer Code: Available on premium plans for custom script injection
// In browser console, check what analytics loaded
console.log('GA loaded:', typeof gtag === 'function');
document.querySelectorAll('script').forEach(s => {
if (s.src?.includes('gtag') || s.src?.includes('gtm') || s.src?.includes('analytics') ||
s.textContent?.includes('gtag')) {
console.log('Analytics script:', s.src || '(inline)');
}
});
// Check for Webnode's own analytics
console.log('Webnode stats:', document.querySelector('script[src*="webnode"]')?.src || 'none');
Check Plan-Level Feature Access
Webnode restricts custom code injection by plan:
- Free plan: No custom code, no GA integration
- Limited/Mini: Basic GA Measurement ID field only
- Standard/Profi: Full header/footer code injection
- Business: All features including ecommerce tracking
Most Common Webnode Analytics Issues
1. Plan Does Not Support Analytics Integration
Symptoms: No "Analytics" or "Header Code" option in the Webnode settings.
Root cause: Webnode's free and lowest-tier plans do not include analytics integration. The settings fields simply do not appear.
Fix: Upgrade to a plan that includes analytics support. The "Limited" plan typically provides a GA Measurement ID field, while "Standard" and above provide full code injection capabilities.
2. Built-in GA Field vs Custom Code Duplication
Symptoms: Double pageview counts. GA loads twice.
Root cause: Webnode's SEO and Analytics section has a dedicated Google Analytics field that auto-injects the GA script. If you also paste GA code in the Header Code section, both fire.
Fix: Use one method:
# Option A: Use the built-in GA field
# Settings > SEO and Analytics > Google Analytics > enter G-XXXXXXX
# Leave Header Code empty
# Option B: Use Header Code for full control
# Settings > SEO and Analytics > Google Analytics > leave empty
# Settings > Header/Footer Code > Header > paste your full GA/GTM snippet
3. AJAX Page Transitions Not Tracked
Symptoms: Only the first page load fires analytics. Navigating through the site shows no additional pageviews.
Root cause: Webnode uses client-side page transitions for smooth navigation. These do not trigger full page reloads.
Fix: Add a MutationObserver to detect Webnode's page transitions:
// Detect Webnode page transitions
var lastTrackedPath = window.location.pathname;
var observer = new MutationObserver(function() {
if (window.location.pathname !== lastTrackedPath) {
lastTrackedPath = window.location.pathname;
gtag('event', 'page_view', {
page_path: lastTrackedPath,
page_title: document.title
});
}
});
observer.observe(document.querySelector('main') || document.body, {
childList: true, subtree: true
});
4. Multi-Language Subdomains Splitting Sessions
Symptoms: Analytics shows separate sessions for en.yourdomain.com and de.yourdomain.com. Cross-language navigation breaks the session.
Root cause: Webnode's multi-language feature creates language-specific subdomains. Each subdomain has its own cookie jar, so GA sessions do not persist across languages.
Fix: Configure cross-domain tracking for language subdomains:
gtag('config', 'G-XXXXXXX', {
cookie_domain: '.yourdomain.com', // Note the leading dot for subdomain coverage
linker: {
domains: ['en.yourdomain.com', 'de.yourdomain.com', 'fr.yourdomain.com'],
accept_incoming: true
}
});
5. Webnode Editor Inflating Pageviews
Symptoms: Pageview counts spike during content editing sessions.
Root cause: Webnode's editor loads the actual site in a preview mode. If analytics executes in the editor, editing sessions generate tracking data.
Fix:
// Detect Webnode editor
var isWebnodeEditor = window.parent !== window ||
document.referrer.includes('webnode.com') ||
window.location.hostname.includes('editor.webnode');
if (isWebnodeEditor) {
window['ga-disable-G-XXXXXXX'] = true;
}
Environment Considerations
- Managed hosting: No server access, FTP, or SSH. All changes through the Webnode dashboard
- CDN-served: Webnode uses a CDN. Changes propagate after publishing, with a short delay
- SSL included: All Webnode sites include SSL on custom domains
- Ecommerce plans: Webnode's ecommerce features (product pages, cart, checkout) require the "Business" plan. Ecommerce analytics tracking is only relevant on this tier
- Mobile-responsive: Webnode auto-generates mobile layouts. Test analytics on both views
Performance Issues
- LCP Issues - Builder-generated layout rendering and CDN delivery timing
- CLS Issues - Layout shifts from dynamic widgets and AJAX content loading
Tracking Issues
- Events Not Firing - Debug plan restrictions, AJAX transitions, and multi-language subdomain tracking
Related Resources
- Webnode help center
- Global Issues Hub for platform-agnostic solutions