Before touching anything: what you need and what you won’t be able to measure
Setting up free analytics to understand a website’s traffic is feasible, but it’s worth knowing upfront where the limits are. With no-cost tools you can find out how many visits you receive, which countries they come from, which pages they view, and which channels they arrive through. What you won’t get with a free plan is reliable long-term attribution (data expires or is sampled), nor business metrics cross-referenced with a CRM, nor unlimited historical reports. If you need that, the free plan serves as a thermometer, not as accounting.
Minimum requirements: access to the site’s HTML (or the CMS dashboard), the ability to edit the <head>, and a browser with the ad blocker disabled for testing.
Step 1. Choose the measurement tag and place it correctly
The most widespread option is still Google Analytics 4 in its free version. Create a web data stream, copy the measurement ID (format G-XXXXXXX), and paste the global snippet right before the closing </head>.
If your CMS is WordPress, a header insertion plugin saves you from touching the theme. In Shopify or Webflow there are native fields for the ID. On hand-built sites with templates, be careful about duplicating the tag when including a partial: two active tags generate visits counted twice and inflated sessions.
Quick check
- Open the page in an incognito window and check the real-time report in the GA4 admin panel.
- Verify with the official tag assistant extension that the tag fires only once.
- If you use a tag manager, publish the container before testing; it’s the most common mistake and costs you half an hour.
Step 2. Define what counts as a useful visit (and what doesn’t)
A default configuration counts any page load as a session, including bounces of less than two seconds from error pages. Filter out your own IP and the office IP, and enable internal traffic exclusion. On small projects, that filter can change the report by 20-30% without the business having changed at all.
Mark at least one event as a conversion: form submission, phone click, or checkout start. Without a key event, the traffic report remains pure vanity.
Step 3. Cross-reference with Search Console to see real organic traffic
Link the Search Console property with the analytics tool. This gives you queries, impressions, and CTR, data that the analytics tag doesn’t capture because it doesn’t see the prior search. Linking is free and takes between a few hours and a couple of days to reflect data.
Watch out for a practical limitation: Search Console hides queries with very low volume and applies sampling over long ranges. If your site receives 200 clicks a month, many keywords will appear grouped together. It’s not a configuration error, it’s how the tool works.
Step 4. Add a second free source for cross-checking
Don’t put all your eggs in one basket. A lightweight, cookie-free alternative (for example, privacy-focused analytics solutions with a free plan) serves as a cross-check when GA4 blocks visits due to consent or blockers. On sites with a lot of traffic from browsers with anti-tracking protection, the difference between the two sources can be significant.
Document which tool you consider the source of truth. Mixing figures from two dashboards in the same report is the fast track to wrong conclusions.
Step 5. Five-minute monthly review
- Check that the tag is still active after every deployment or theme change.
- Verify that the key events are recording data.
- Compare organic sessions with Search Console clicks; a large and sustained divergence usually indicates an indexing or tagging problem.
- Note template or campaign changes in a log, so you don’t attribute drops to the wrong causes.
This setup doesn’t guarantee results nor replace a technical audit, but with these five steps you’ll have a reasonable reading of your traffic without spending a single euro on licenses.