1 Choosing a design
Nothing matches all the filters at once. One of them has to go.
Custom design
Shape and colours are free; the preview updates instantly.
Classics since 2006 (0)
1 Options
The 2006 bitmap variant - 50 fonts, 15 templates. Keeps existing counters editable.
Shows one flag per country and how many visitors came from there. How many countries fit follows from layout and size.
Multiple selection with Ctrl or ⌘. Hidden countries are still counted, they just do not appear in the image.
Shows next to the number how the last seven days went. Measured, that costs 120 bytes over the wire – on the pill the line sits behind the number, on the plain counter beneath it. A counter without history shows no line and stays the same size.
The counter carries both versions and shows the one matching the visitor's setting – the device's setting, not this page's. Measured, that costs about a quarter more, not twice as much: gzip sees the same drawing twice. The figures are on "What the counter weighs".
Everything here is optional – the counter works without it.
If the link gets lost
Anyone who knows the counter number can come back to these statistics. Anyone who would rather not remember it can enter an e-mail address: we send exactly one message with the link inside. Only the click in it stores the address – whoever did not enter it themselves throws the message away, and nothing is stored.
The address serves one single purpose: to send this link again on request. No advertising, no passing on, no newsletter. It can be removed here again at any time.
Google reCAPTCHA checks this submission against abuse; data is sent to Google. The script loads only when this form is opened.
Every click on a link is counted as an event, named after its target – not after the link text. Pages on the site itself are named by their path ("kontakt"), outgoing links by their host ("ex-facebook-com"). The usual limit applies: at most 50 different names; once it is reached, no new one is added.
On by default – clearing the box switches it off. Counts which page follows which, as a total and not as one person’s path. Two views belong together if less than half an hour lies between them. A transition appears in the report only from 5 times on.
More options
Hits count every page view, unique visitors count each person once per day. The visitor figure is the sum of the daily values; it has been recorded since 1 January 2026 and is therefore lower than the hit count on older counters.
2 to 20 characters, letters, digits, "-" and "_" only. /live/<number> keeps working alongside it. Empty field = no alias.
Empty field = no password. With one, /live/<number> asks for it before showing the numbers. At least 6 characters, and it cannot be recovered – worth writing down.
A single address or a whole range (83.10.1.0/24). A range is usually the better choice: most connections get a new address every day, but the network around it stays the same. What goes in here is stored in the clear and can be removed at any time. This request is coming from right now.
2 Adding the code
Markdown, BBCode and HTML <img> embed the plain image. It counts just the same and does report which page it was on – the server reads that from the referrer. The only thing left open is where the visitor came to the site from: that is known to the browser alone, and only the HTML version with the script can ask.
Without a script the counter does not know which page it is on, so the page list stays empty. With the address here, the page gets a line; a leading slash is enough, the counter takes the rest from the origin. Better left empty if the same code sits on many pages, in a forum signature for instance – a fixed entry would be wrong for every other page.
Where does it go?
chomikuj.pl
The counter goes into the chomik description ("opis"). Descriptions do not accept scripts, so the "HTML <img>" tab replaces the first line, and the page address goes into the field below, so the statistics know where the counting happens.
WordPress
Appearance → Widgets, or anywhere in the block editor: a „Custom HTML" block takes the code. It has to be the „Custom HTML" block, not „Paragraph" – a paragraph shows the code as text instead of running it.
Download the plugin (zip) – shortcode [stats4u] or automatically in the footer
WordPress.com
Careful, this is not the same as a self-hosted WordPress: on the free plan WordPress.com strips script, iframe and embed out of the „Custom HTML" block. The counter then simply does not appear, with no error. Scripts need a paid plan with hosting features switched on. The Markdown tab is the one to use here – the plain image gets through on any plan.
Blogger
Layout → Add a Gadget → HTML/JavaScript. The code goes in there and gets saved – done.
Ghost
Settings → Code injection → Site footer. If the counter should sit somewhere specific rather than at the very bottom, it belongs in the theme instead.
Wix
Add → Embed → Embed HTML → Enter code, paste, update. Two things to know: Wix puts the code into a sandboxed frame, so the counter sees the address of that frame and not of the page it sits on – the page list stays empty here. And the address has to be https, Wix will not accept http.
Squarespace
Edit page → Add block → Code. JavaScript and iframes need the Core plan or higher there; on Personal and Basic the block stays empty. HTML and Markdown work on every plan though – the block switches to Markdown, and the Markdown tab supplies the code.
Neocities
index.html opens in the editor and the code goes in before </body>. That is all there is to it – custom HTML is allowed there without restrictions.
Hugo, Jekyll, Astro
Into the template, not into the post: layouts/partials/footer.html (Hugo), _includes/footer.html (Jekyll) or src/components/Footer.astro (Astro). If the counter should appear in one single post only, the Markdown tab does it, written straight into the text.
Count clicks and downloads too
An event is something someone does – a click on "Contact", a submitted form, a download. The attribute goes on the element, or the function gets called:
<a href="/kontakt" data-s4u-event="kontakt">…</a>
<script>s4u.ereignis('formular-abgeschickt');</script>
At most 50 different names per counter and 300 events per hour and address. The name is lowercased, spaces become hyphens.
Moving from another counter
What comes along: nothing. The old total cannot be carried over – no counter service hands its numbers to another, and a number we simply set would be made up. The new counter starts at zero. Anyone wanting to keep the old total can leave the old image beside it as a quiet memento, or write the old number into the text.
Checking that it works
Address of the page the counter should be on. It is fetched once, and whatever turns up is reported here.