GoatCounter documentation

Other documentation pages:
GDPR consent notices | Site integration code | API | Privacy policy | Terms of use



I don’t see my pageviews? §
For reasons of efficiency the statistics are updated once every 10 seconds.
What does (no data) mean in the referrers list? §
No Referer was sent; this can mean that the user directly accessed the URL (e.g. from their bookmarks or typing it), that they disabled sending the Referer header, or that the link they clicked on disabled the Referer header with rel="noreferer".
How are bots and crawlers counted? §
They’re not; all bots and crawlers that identify themselves as such are ignored.
It’s easy for a malicious script to disguise itself as Firefox or Chrome, and it’s hard to reliably detect this. In practice it’s unlikely that 100% of all bots are ignored (this is a general problem with analytics, and not specific to GoatCounter).
How is the Do-Not-Track header handled? §
It’s ignored for several reasons: it’s effectively abandoned with a low adoption rate, mostly intended for persistent cross-site tracking (which GoatCounter doesn’t do), and I feel there are some fundamental concerns with the approach. See Why GoatCounter ignores Do Not Track for a more in-depth explanation.

You can still implement it yourself by putting this at the start of the GoatCounter script:
	window.goatcounter = {
		no_onload: ('doNotTrack' in navigator && navigator.doNotTrack === '1'),
<script data-goatcounter="[..]"
        async src="//gc.zgo.at/count.js"></script>
What about GDPR consent notices? §
You probably don’t need them. The the GDPR page goes in to some detail about this.
How do I set up a custom domain? §
Add a CNAME record pointing to your GoatCounter subdomain:
stats   IN CNAME    mine.goatcounter.com.
Then update the GoatCounter settings with your custom domain. It might take a few hours for everything to work. mine.goatcounter.com will continue to work.

You will need a Business plan to set up a custom domain.

Note that Custom domains will not prevent adblockers from recognizing GoatCounter; it’s only intended as a “vanity domain”.
How do adblockers deal with GoatCounter? §
Most of them block goatcounter.com; there’s not much that can be done about that, and there’s also not much I want to do about this. If people decide they want to block GoatCounter then they’re free to do so.

By my estimate about a third of pageviews are missed due to adblockers; but this can vary greatly on the type of site and audience.

That said, there are some options:

  1. Self-host GoatCounter; when self-hosting GoatCounter nothing is served from goatcounter.com or associated domains, and adblockers will not block it.
  2. Import pageviews from logfiles; GoatCounter can import pageviews from web server logfiles; you can send this data to goatcounter.com. See the documentation for details.
Is there any way to record HTTP status codes? §
Not directly, but if you include the status code in your error page’s title you can filter by it. Also see issue #3.
Why do I need to verify my email? §
Having some means of contact is useful in case of questions, problems, or other reasons for communicating.
For example, if you’re sending many (millions) of pageviews then I’d rather contact you to discuss options than just shut down the account. Not having any means to get in touch would leave me in an awkward position.

Pricing and billing

What happens if I go over the monthly pageviews? §
I’ll be in touch if you consistently go over the number over pageviews; there is no automated process to shut down accounts. It’s not a problem if you go over the pageviews in a single spike of traffic because you wrote something that got shared a lot. It’s a flexible limit within the bounds of reason.
How does “maximum pageviews” work? §
It’s the total amount of pageviews that can be stored for your site. The oldest pageviews will be deleted if you try to store more. There is no timelimit on pageviews: just a maximum total.

If you’ve reached the maximum amount of pageviews you will get an email where you can make a choice:
  1. I’m okay with this, just delete older pageviews and stop bothering me.
  2. Update your plan.
  3. Manually delete older pageviews, which might be useful if you have a lot of “junk” data that’s not really needed.

It will keep sending you this email every week until you make a decision. If you haven’t done anything after a month then it will assume option 1.

New pageviews will never be rejected if you go over your limit.

The limits are calibrated as such:
  • Free plan: two years at maximum pageviews.
  • Starter and business plans: four years at maximum pageviews.

Many sites will never reach these limits, as they send far fewer than the maximum pageviews.
How does purchasing extra pageviews work? §
Additional pageviews can be added for €0.20 per 10k pageviews, so 100k pageviews would be €2, 1 million pageviews €20, and 10 million pageviews €200. This can be added to every plan excluding the free one. For example if you want ~200k pageviews on the Starter plan then you’ll be charged €5 + €2.

This is charged based on actual usage, rounded to the nearest 10k. So for example for the Starter plan you’ll be charged €5 + €0.20 × 10 = €7 if you have 200k pageviews.

This does not affect the maximum pageview limit; this remains the same. You need to update your plan if you want a higher limit for this.

Extra charges will only be made if you set it up on the billing page, where you can also set a maximum. I’ll be in touch if you don’t set this up or set the maximum too low. Pageviews will never be rejected if you go over a limit. I generally use a bit of a “grace margin” for this as getting in touch over a few thousand pageviews is a bit silly, and I’m not a big fan of automating these kind of things as I feel takes away some humanity of the company/customer relationship.

Going over the allotted amount of pageviews for only 1 or 2 months is fine; sometimes websites get shared a lot for a short period of time and calm back down afterwards. It makes no sense to upgrade your plan for just this. Skirting the pageviews is fine too; if you have 950k one month and 1050k the next then that’s fine; as long as it roughly averages out to the limit.
What is “Commercial Use”? §
A website is considered “commercial” if the primary goal is to sell or advertise paid products or services.

There is a large amount of grey area between strictly ‘personal’ and ‘commercial’; for example selling a service as a side-project which provides just a little bit of pocket money is ‘commercial’, but also ‘personal’. As a rule, things like “pocket-money side-projects” are considered personal, especially if they’re open source. Just get in touch if you’re unsure and I’ll tell you if it’s considered personal.
What is the advantage of a custom domain? §
It’s just intended as a nice “vanity domain”; other than that there are no real technical advantages. It will not prevent adblockers from recognizing GoatCounter and this was never the intended use case. See How do adblockers deal with GoatCounter? for more details.
Is there any discount for charities, non-profit organisations, startups, etc? §
The short answer is ”not really”. The longer answer is that it depends on the individual case.

To give an example, Amnesty International is undoubtedly a charity doing great work, and I’d be honoured to facilitate that. But they also have a ~€300 million/year income and asking them for €30/month so I can make a living seems reasonable to me, regardless of their charitable work. After all, people employed by Amnesty are getting paid too, and I also need to pay my rent, food, etc. 😅

Most charities don’t have the kind of endowment Amnesty has, so if you’re running a small charity, non-profit, or one-person startup where GoatCounter’s costs would be prohibitive then feel free to get in touch and we’ll see what we can arrange. Generally I’m pretty flexible.

I’ll be happy to revisit this policy once GoatCounter starts becoming financially sustainable, but right now it’s still quite far from that.