The deco guide to performance
Example: deco offers components likeImage
that help accelerate the efficient delivery of images, but users can still use theimg
element if they prefer.
Important: the most important thing (the golden rule) is the user experience. Sometimes the system may not deliver the best performance, as long as it is a conscious decision to deliver the best experience to the user.
Metric | Meaning | example of good value |
---|---|---|
FCP | First Contentful Paint | up to 1.8s |
LCP | Largest Contentful Paint | up to 2.5s |
TBT | Total Blocking Time | 200ms |
Speed Index | Performance index of the page’s most popular content | up to 3.4 |
CLS | Cumulative Layout Shift | up to 0.1 |
source (adapted)Google aggregates these metrics into an index between 0 and 100, generating the pagespeed score. Since it is a test executed in a production environment, it is subject to variations. However, a sudden drop in the pagespeed score implies looking at the page’s performance as soon as possible.
Metric | Meaning |
---|---|
Config LCP | Loading configuration of the largest content of the page |
Page HTML | Page size in bytes |
Page Islands | Number of islands on the page |
Islands Props | Size in bytes of the island’s properties |
Loaders latencies | Response time of the page’s loaders |
100 kb/s
will take 5s
to download a 500 kb
page.
This is especially impactful for mobile users operating on low-bandwidth
networks or situations.
Access through the Google CrUX website or directly from the CrUX App on your deco site.Since it is a collected metric, it only has aggregated meaning. Google categorizes the values typically on a month-to-month basis, so it is more of a monitoring metric to diagnose any behavior issues that have gone unnoticed over time or that reflect a change in the page’s audience.
sections
until the page returns to good
performance. The most recently deleted section
(or its loaders
or
islands
) may be the cause of the problem.Tip: Use deco image components, such as<Image>
and<Picture>
, and configure them correctly, including width and height.
Tip: Use standard fonts offered by Google. If necessary, use smaller fonts (preferably woff/woff2).
Tip: Try to only use what is strictly necessary or replace third-party scripts with lighter versions. If not possible, postpone the execution of the script until after the page has already loaded and the user is interacting with it.
Tips:
- Use
inline loaders
to transform data to be sent to a section and/or island- Consider deferring the display (
Deferred
) of sections with expensive loaders- Change the loader’s props to reduce the amount of data loaded in the loaders
- Save loaders that are reused on different pages/sections
Tips: Prefer pure CSS to avoid islands. Usechildren
to pass JSX into an island. Reduce the scope of the island as much as possible (e.g., prefer a button as an island rather than an entireform
).