How we measure, and where we are wrong

This is the page that decides whether the rest of the site is worth anything. If something here is wrong, every number on the site is wrong with it.

Check a site

The population we sample

A statistic is only as good as the list it is drawn from, so we name ours. For .cz the population is the CZ.NIC open data at stats.nic.cz, published under CC BY 3.0 CZ and attributed here and in SOURCES.md.

For .sk the authoritative file is the daily register export at sk-nic.sk, and its licence is not stated on the page. Until that licence is settled in writing, the .sk panel is not drawn and no .sk figure is published. If it turns out not to permit our use, the fallback is a .sk subset of the Common Crawl host index together with Majestic Million under CC BY 3.0, and this page will then say plainly that the .sk population is crawl based and not the full register.

The panel

From the population we draw a stratified random sample of 75 000 domains per top level domain, with the random seed and the draw date recorded. The panel then stays fixed, because a trend line drawn over a changing sample is not a trend line.

It is redrawn once a quarter with at least eighty percent overlap with the previous panel, and the redraw date is printed on every chart that crosses it.

How often we measure

5 000 domains a day, 2 500 per top level domain, spread over roughly six night hours at about two requests a second in total. The whole panel is refreshed once every thirty days and no single domain is touched more than once in thirty days.

What we leave out, and where it is printed

Four groups are excluded from the aggregates: domains that redirect to a different registrable domain, counted once under the target and never twice; parked pages matched against registrar parking templates; empty or default hosting pages; and domains we could not reach.

All four counts are printed next to every table. A denominator you cannot see is a denominator you cannot check.

How the numbers are computed

Usage is detected divided by successfully scanned. Market share is detected divided by the number scanned with any technology known in that category. The third column, change over thirty days in percentage points, is the one the comparable tools do not put in the main table.

Every value carries n, the number of domains behind it, and a standard error of the square root of p times one minus p, all divided by N. Anything with fewer than thirty detections is published as too few rather than as a falsely precise small number.

Only directly detected findings count; implied ones are excluded. The series is weekly and the caption says weekly in words, because our cadence is weekly and pretending to daily resolution would be the exact dishonesty we criticise.

Confidence levels

certain
A direct self declaration, for example a generator meta tag or a vendor header.
likely
Two or more independent weak signals agree.
hint
One weak signal. Useful, not proof, and labelled as such.
implied
Derived from a dependency rule, for example WordPress implies PHP. Shown as implied and excluded from the statistics, so no language is inflated by a rule instead of a measurement.

The signals we read, category by category

Content management
meta tag, file path, response header, cookie name
E-commerce platform
file path, response header, cookie name, script URL
Server side language
response header, cookie name, file path
JavaScript framework
script URL, markup marker, version banner
CSS framework
stylesheet or class, script URL
Web server
response header
CDN and reverse proxy
DNS record, response header
Hosting provider
IP allocation (ASN)
DNS provider
DNS record
E-mail provider
DNS record
Certificate authority
certificate field
Analytics
script URL, markup marker

Sources and licences

webappanalyzer
GPL-3.0. The open ruleset for international technologies. We pin one release and keep it on our own volume.
Public Suffix List
MPL 2.0. Mozilla snapshot, pinned. It decides what a registrable domain is, with no network call.
iptoasn.com
PDDL 1.0. The IP to ASN dump behind the hosting provider and the country of the IP allocation. Refreshed daily.
CZ.NIC open data
CC BY 3.0 CZ. The .cz population we draw the panel from. Attributed here and in SOURCES.md.
SK-NIC domains.txt
open question. The daily .sk register file. Its licence is not stated on the page, so the operator must settle it before the first survey run. Until then the .sk panel is not drawn.
Cloudflare Radar
CC BY-NC 4.0. Non commercial only, so it never enters this product. Internal reading at most.
RIPEstat
no redistribution. Its terms forbid redistribution and commercial use. Excluded for the same reason.

Weaknesses, said first

  • We read one homepage. Not subpages, not subdomains, not anything behind a login.
  • We do not execute JavaScript. Anything rendered only in the browser or loaded after an interaction is invisible to us.
  • Detection fails on custom builds, on sites that strip their headers, and behind a CDN that hides the origin. We say so in the result instead of filling the gap with a guess.
  • HTTP/3 is reported as advertised, because we read the Alt-Svc header and do not open a QUIC connection to verify it.
  • Server country is the country of the IP allocation, not proof of where the machine physically stands.
  • Content language without a lang attribute is an estimate with a score, never presented as a declaration.
  • The ASN table is refreshed daily while the upstream refreshes hourly, so an IP that moved in the last day can be attributed to the wrong provider.
  • History begins the day we first measure a domain and we never backfill, so for the first month the change columns say there is not enough history yet.
  • The panel is 150 000 domains, not the whole Slovak and Czech web, and that is printed above every table with the draw date.

If we are wrong

Write to andrej@arling.sk with the domain and what is wrong. We check it, we correct it, and the correction is visible like any other change. A correction is not an embarrassment. A number nobody can question is.

Check a siteStatisticsComparisons