Umami Not Tracking Visitors (No Data Showing)
Quick answer
If Umami shows no visits, the script is usually missing or blocked, data-domains doesn't match your exact hostname, or a proxy breaks the /api/send request with CORS errors or redirects. Check the page source and the Network tab for a 200 response from /api/send.
Most likely fix: Confirm the script is on the page
How to fix it
Try these in order — the most common fix is first.
1. Confirm the script is on the page
- Open your site and view the page source
- Search for data-website-id and check the ID matches Settings > Websites in Umami
- Purge your CMS, CDN and Cloudflare caches and reload in a private window
Did this fix it?2. Check data-domains matches the hostname exactly
- If the script tag has data-domains, compare it with the hostname in the address bar
- Add both forms, e.g. data-domains="example.com,www.example.com"
- Or remove data-domains to track every host
Did this fix it?3. Watch the request in DevTools
- Open DevTools > Network and reload the page
- Find the request to /api/send (or your COLLECT_API_ENDPOINT) and check it returns 200
- If it's marked blocked, disable your ad blocker or Brave Shields and try again
- If you see a CORS error or 301/302 responses, fix your proxy (next fix)
Did this fix it?4. Fix proxy redirects and CORS (self-hosted)
- If Cloudflare SSL mode is Flexible and Nginx redirects HTTP to HTTPS, switch Cloudflare to Full (strict) to stop the redirect loop
- Test the endpoint with curl -i -X OPTIONS https://your-umami/api/send and check for a 200 with CORS headers
- Make sure your proxy doesn't strip or override CORS headers on the preflight request
Did this fix it?5. Check consent banners and self-exclusion
- Test with the consent banner disabled; if tracking works, set the correct consent category for the Umami script
- In the browser console run localStorage.getItem('umami.disabled'); if it returns 1, run localStorage.removeItem('umami.disabled')
Did this fix it?
Symptoms
The dashboard shows zero visitors or nothing in Realtime after adding the tracking code, or tracking stopped after a site or server change.
Why it happens
- Tracking script not in the page, or an old cached page is served
- data-domains set to example.com while the site loads on www.example.com (or the reverse)
- Your own ad blocker, Brave Shields or a privacy extension blocks the script
- A cookie consent banner only loads the script after consent, or in the wrong consent group
- CORS errors or redirect loops when Umami is behind Cloudflare and Nginx
- Wrong data-website-id or data-host-url after moving the Umami instance
- localStorage umami.disabled set in your browser (you excluded yourself)
This guide also covers
- umami not tracking
- umami not working
- umami no data
- umami analytics not showing visitors
- umami realtime not showing
Still not working?
If Umami keeps failing, you're not alone. See every Umami problem users report or the alternatives people switch to.
Done fighting Umami? Our small team builds your own Umami alternative, made for how you work. On your domain or hosted by us. Price agreed together.
Get a quoteOther Umami errors
- Umami Blocked by Ad Blockers (uBlock Origin, Brave)
- Umami v3 Upgrade: MySQL Not Supported
- Umami Migration Failed (Prisma P3009 / P3018 Error)
- Umami Docker "Unable to Connect to the Database"
- Umami Default Login and Forgot Password Reset
- Umami Shows Wrong Country or "Unknown" Location
- Umami Custom Events Not Showing
- How to Exclude Your Own Visits in Umami