Most Nepali businesses that install Google Analytics assume the numbers are right. Frequently they are not — and the failure is silent. There is no error, no warning, just a dashboard quietly reporting fewer visitors than you actually have, attributing them to the wrong sources, and showing sessions that end after five seconds.
We found this on a live site recently, and the cause was not Analytics at all. It was the caching plugin.
The problem: your caching plugin is delaying the tracking tag
Speed plugins like LiteSpeed Cache and WP Rocket offer a setting usually called Delay JavaScript or Load JS Delayed. It holds every script until the visitor interacts with the page — a mouse move, a scroll, a tap. It genuinely improves PageSpeed scores, because the score is measured before any interaction happens.
The catch: your Google Analytics tag is a script. If it only loads after interaction, then a visitor who lands, reads the top of the page and leaves is never recorded at all. Not as a bounce — as nothing. They were never there.
How to check your own site in 30 seconds
- Open your homepage in a private window.
- Right-click and choose View Page Source.
- Search the source for
gtagorgoogletagmanager.
Look at how the tag is written. A healthy tag looks roughly like this:
<script src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX">A delayed tag looks like this — note the type attribute and that the real URL has been moved into a data attribute:
<script type="litespeed/javascript" data-src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX">If you see the second form, your analytics are undercounting, and every decision you have made from that dashboard rests on incomplete data.
The second problem: guest-mode page reloads
LiteSpeed also has a Guest Mode option. It serves first-time visitors a generic cached page, then quietly reloads it once it knows more about the browser. Search your page source for guest.vary — if it is there, this is running on your site.
That reload does two things to your data. It restarts the page while the visitor is on it, which truncates session duration. And it can lose the referrer, so visitors who arrived from Google get filed under Direct instead.
There is a distinctive fingerprint for this, and it is worth knowing because it is easy to misread as a content problem. Only first-time visitors get reloaded — returning visitors already carry the cookie that skips it. So in GA4 you see new visitors with poor pages-per-session and short visits, while returning visitors look healthy. That gap is not your homepage failing to engage people. It is a measurement artefact.
Fixing collection
- In LiteSpeed Cache, go to Page Optimization → JS Settings and change Load JS Deferred from Delayed to Deferred. You keep most of the speed benefit without the interaction gate. Alternatively, add
googletagmanager.comto the JS delay exclusion list. - In Cache → General, turn Guest Mode and Guest Optimization off. Guest Optimization overrides other settings for exactly the visitors you are losing, so leaving it on undoes the first fix.
- Purge all caches, then view source again and confirm the tag no longer carries
type="litespeed/javascript".
One consequence worth planning for: your numbers will jump afterwards. That is not growth, it is visitors you were always getting and never counting. Treat the fix date as a new baseline and do not compare across it.
Now track leads, not just pageviews
With collection working, the next gap is that GA4 does not know what a lead is on your site. Out of the box it records pageviews and some automatic interactions, but not the things that actually matter: a contact form succeeding, someone tapping your WhatsApp button, someone clicking your phone number.
Two events cover most Nepali business sites:
generate_lead— fires when a contact form reports success.contact_click— fires on WhatsApp, phone and email link clicks, with a parameter recording which one.
The form event has a wrinkle. Most modern forms submit in the background without reloading the page, so there is no “thank you” page for GA4 to notice. The reliable approach is to watch for the visual success state the form itself produces — the confirmation message appearing — and fire the event from that, rather than trying to intercept the submission.
WhatsApp and phone clicks are simpler: listen for clicks on links starting wa.me, tel: or mailto:. On a Nepali business site these often outnumber form submissions, and untracked they are invisible.
Finally, mark both as key events in GA4 under Admin → Data display → Events. Until you do, they are recorded but not treated as conversions, so they will not appear in your reporting where you need them. Note that a new event name takes up to 24 hours to appear in that list before you can mark it.
The order matters
Fix collection first, then add lead events, then judge results — and only after two clean weeks. Optimising pages against broken analytics is how businesses end up rewriting a page that was working and leaving alone one that was not.
If you want a second pair of eyes on whether your own numbers are trustworthy, send us your site and we will tell you what we find.