Webperf documentation
Webperf measures website quality: how fast a site is, whether it works for everyone, whether it protects visitors' privacy, and whether it follows web standards.
Where do you want to start?
-
You've been given a score and want to know what it means and what to do about it.
-
Run the tests yourself on your own machine, free, no account needed.
-
Automate the tests, read the API documentation, or contribute code.
-
Webperf Cloud tests your website daily, keeps the history and gives you support.
The three parts
| Part | What it is | Cost |
|---|---|---|
| Webperf Core | The test engine. Open source, run it anywhere. | Free |
| Webperf.se | Public comparison of Swedish websites. | Free to be listed |
| Webperf Cloud | Monitoring, history, reports, an API and support for your own sites. | From €49 a month |
All three use the same test engine. A score from your own laptop is calculated exactly like a score on Webperf.se.
Who is behind what?
Webperf Core is a community project. It started in 2019 and is built by volunteers under the MIT licence. The code belongs to no company. Anyone can read it, run it, change it and contribute to it.
Webperf.se and Webperf Cloud are run by Webperf AB. The company uses Webperf Core as its test engine on the same terms as everyone else, and contributes back to the project.
Behind both the company and, before it existed, the Swedish webperf community stands Marcus Österberg, who has worked with web performance, accessibility and web standards since the late 1990s.
What "we" means in this documentation
Where the text says "we", it means Webperf AB, and it only appears on the pages about Webperf.se and Webperf Cloud. The Webperf Core pages say "the project" or "the community" instead, because no single party speaks for it.
Webperf Cloud is called Premium in Swedish
The paid service is marketed as Webperf Cloud internationally and as Premium in Swedish. Same service, different name.
Test it in five minutes
You need Python 3.13 or later, Node.js 24, and a browser.
git clone https://github.com/Webperf-se/webperf_core.git
cd webperf_core
pip install -r requirements.txt
npm install --omit=dev
python default.py -u https://example.com -t 22 -r
docker run -it --rm \
--shm-size=4g \
-e MAX_OLD_SPACE_SIZE=3000 \
webperfse/webperf-core:latest \
python default.py -u https://example.com -t 22 -r
# .github/workflows/webperf.yml
name: Webperf test
on: [push]
jobs:
webperf:
runs-on: ubuntu-latest
steps:
- run: |
docker run --rm --shm-size=4g -e MAX_OLD_SPACE_SIZE=3000 \
webperfse/webperf-core:latest \
python default.py -u https://example.com -t 22 -r
If you'd rather not write YAML, fork webperf_core and use its built-in workflow instead. Here's how.
The -r flag prints a review in the terminal listing what should be fixed. Without it you only get the score.
The tests
Sixteen tests are in service. The number is what you pass to -t.
| No | Test | Measures |
|---|---|---|
| 2 | 404 (Page not Found) | That the error page responds correctly and says something useful |
| 9 | Standard files | robots.txt, sitemap, security.txt, feeds |
| 15 | Performance (Sitespeed.io) | Load time and number of requests |
| 18 | Accessibility (Pa11y) | WCAG errors, with Axe as a second opinion |
| 21 | HTTP & Network | HTTPS, TLS, HTTP/2 and /3, IPv6, security headers |
| 22 | Energy Efficiency | Data transferred and carbon per page view |
| 23 | Tracking and Privacy | Trackers, fingerprinting, ad servers, cookies |
| 24 | Email (Beta) | SPF, DKIM, DMARC, MTA-STS |
| 25 | Software | Which software runs the site, and known vulnerabilities |
| 26 | Accessibility Statement (Alfa) | The legal requirement under the Swedish DOS Act |
| 27 | CSS Lint (Stylelint) | Stylelint |
| 28 | HTML Lint (html-validate) | html-validate |
| 29 | JS Lint (ESLint) | ESLint |
| 30 | Lighthouse | Performance, accessibility, SEO and best practice |
| 31 | Privacy (Webbkoll) | What the page leaks about its visitors (self-hosted Webbkoll) |
| 32 | DNS (Zonemaster) | Delegation and DNSSEC via Zonemaster |
Contribute
Webperf Core is open source under the MIT licence.
- webperf_core on GitHub
- Webperf on Slack: the fastest route to an answer
- Contributing guide