Add small description of what this test is.
We will startup the URL specified with a normal browser for X iterations with different subtests. You specify the number of iterations to use in your settings.json file, 3 iterations or more are recommended to get most stable rating. The subtests we use are:
- Desktop (Configured as: Laptop size, full network speed of the system)
- Mobile (Configured as: Mobile size, 3G Fast network speed)
For every subtest we are using following metrics are used:
- SpeedIndex
- TTFB (Time to First Byte)
- TBT (Total Blocking Time) Alternative reference
- FCP (First Contentful Paint)
- LCP (Largest Contentful Paint)
- CLS (Cumulative Layout Shift)
- FirstVisualChange
- VisualComplete85
- Load
The URL are only rated on "Desktop" and "Mobile", the others are only there to give you hints on what can improve. We are using different values to rate the URL depending on it is for the subtest "Desktop" or "Mobile", you can read more about them below:
For SpeedIndex
, FirstVisualChange
, VisualComplete85
and Load
you will get 5.0 points if you are at or below 500ms
, after that you will get penalty for every ms you are above.
For CLS (Cumulative Layout Shift)
you will get 5.0 points if you are at or below 0.1ms
, 3.0 points if you are at or below 0.25ms
, else you will get 1.0.
For LCP (Largest Contentful Paint)
you will get 5.0 points if you are at or below 500ms
, 3.0 points if you are at or below 1000ms
, else you will get 1.0.
For FCP (First Contentful Paint)
you will get 5.0 points if you are at or below 1800ms
, 3.0 points if you are at or below 3000ms
, else you will get 1.0.
For TBT (Total Blocking Time)
you will get 5.0 points if you are at or below 200ms
, 3.0 points if you are at or below 600ms
, else you will get 1.0.
For TTFB (Time to First Byte)
you will get 5.0 points if you are at or below 250ms
, 3.0 points if you are at or below 450ms
, else you will get 1.0.
For SpeedIndex
, FirstVisualChange
, VisualComplete85
and Load
you will get 5.0 points if you are at or below 1500ms
, after that you will get penalty for every ms you are above.
For CLS (Cumulative Layout Shift)
you will get 5.0 points if you are at or below 0.1ms
, 3.0 points if you are at or below 0.25ms
, else you will get 1.0.
For LCP (Largest Contentful Paint)
you will get 5.0 points if you are at or below 1500ms
, 3.0 points if you are at or below 2500ms
, else you will get 1.0.
For FCP (First Contentful Paint)
you will get 5.0 points if you are at or below 1800ms
, 3.0 points if you are at or below 3000ms
, else you will get 1.0.
For TBT (Total Blocking Time)
you will get 5.0 points if you are at or below 200ms
, 3.0 points if you are at or below 600ms
, else you will get 1.0.
For TTFB (Time to First Byte)
you will get 5.0 points if you are at or below 800ms
, 3.0 points if you are at or below 1800ms
, else you will get 1.0.
This section has not been written yet.
- Fork this repository
Read more on the general page for github actions.
- Update apt-get
sudo apt-get update -y
( Not needed if you have latest version ) - Install image library
sudo apt-get install -y imagemagick libjpeg-dev xz-utils --no-install-recommends --force-yes
- Upgrade PIP
python -m pip install --upgrade pip
( Not needed if you have latest version ) - Install setuptools
python -m pip install --upgrade setuptools
- Install ...
python -m pip install pyssim Pillow image
- Install ffmpeg
sudo apt install ffmpeg
- Download and install Node.js (version 20.x)
- Download and install Google Chrome browser
- Install NPM packages (
npm install --omit=dev
) - Set
sitespeed_use_docker = False
in yourconfig.py
(You can always see GitHub Actions SiteSpeed for all steps required line by line)
- Upgrade PIP
python -m pip install --upgrade pip
( Not needed if you have latest version ) - Install setuptools
python -m pip install --upgrade setuptools
- Install ...
python -m pip install pyssim Pillow image
- Download and Install ffmpeg
https://ffmpeg.org/download.html#build-windows
- Download and install Node.js (version 20.x)
- Download and install Google Chrome browser
- Install NPM packages (
npm install --omit=dev
) - Set
sitespeed_use_docker = False
in yourconfig.py
- Make sure Docker command is globally accessible on your system.
- Set
sitespeed_use_docker = True
in yourconfig.py
No frequently asked questions yet :)