https://eb.dk
Insights
Google Lighthouse Performance
The Google Lighthouse performance score is a metric that measures the speed and performance of a website. It’s an overall score that ranges from 0 to 100 and is generated based on a number of different performance metrics, such as the time it takes for a website to load, the time it takes for a website to become interactive, the size of the resources used by the website, and other factors that impact the user experience.
A high performance score in Google Lighthouse indicates that a website is fast and responsive, which can lead to a better user experience and improved search engine rankings. On the other hand, a low performance score can indicate that a website is slow and unresponsive, and can negatively impact the user experience.
- Mobile
- 0%
- Desktop Performance
- 31%
Core Web Vitals
Core Web Vitals are a set of specific factors that Google considers important in a webpage’s overall user experience. Core Web Vitals are made up of three specific page speed and user interaction measurements: Largest Contentful Paint, First Input Delay, and Cumulative Layout Shift.
Pass or fail?
Mobile | Pass |
---|---|
Desktop | Fail |
CWV Breakdown
Vital | Mobile | Desktop | Target |
---|---|---|---|
Largest Contentful Paint | 3.5 s | < 2.5 s | |
First Input Delay | 1,810 ms | < 100ms | |
Cumulative Layout Shift | 0.005 | 0.1 |
Opportunities
Remove autoplaying or preloaded media files3 videos2.7 MB0.7g CO2
By removing 3 autoplaying or preloaded videos, roughly 2.7 MB could be removed from the page load.
This would reduce the page transfer size by 66% and reduce the pages emissions from 1.07 grams of CO2 to 0.37 grams of CO2.
Autoplaying videos can have a negative impact on the user experience for several reasons:
- Increased data usage: Autoplaying videos can consume a lot of data, especially if they are set to play in high definition. This can be a problem for users with limited data plans or slow connections, who may experience slow or interrupted playback.
- Annoyance factor: Autoplaying videos can be annoying for users, especially if they are accompanied by sound. This can lead to a negative perception of the website and decreased engagement.
- Reduced accessibility: Autoplaying videos can be a problem for users with accessibility needs, such as users who are blind or have hearing difficulties.
- Increased page load time: Autoplaying videos can increase the overall page load time, leading to a slower user experience.
- Decreased battery life: Autoplaying videos can consume a lot of battery power, especially on mobile devices, leading to reduced battery life.
In order to minimise the impact of autoplaying videos on the user experience, it is recommended to use them sparingly and only when necessary. It is also important to provide users with the option to turn off autoplaying videos and to allow them to control the playback of videos on the page. Additionally, videos should be optimised for performance and should be accompanied by captions or transcripts to improve accessibility.
View details
nerMZJlV-33461795.mp4 | 1 MB | 28% |
xkIBevt9-33461795.mp4 | 1 MB | 25% |
sQLb3ODo-33461794.mp4 | 517 KB | 12% |
Assets that need text compression enabled107 KB0.028g
By enabling text compression on 4 items, , roughly 107.3 KB could be removed from the page load.
View details
manuel-top | 101 KB | 90 KB |
graphql | 10 KB | 7 KB |
graphql | 7 KB | 7 KB |
eb-cmp.js | 5 KB | 4 KB |
Subset large font files82 KB0.021g
Fonts should be subsetted to reduce the file size, improve performance, and reduce emissions. Subsetting a font involves removing any characters that are not needed for a particular use case, resulting in a smaller file size and faster page load times. Some specific reasons why fonts should be subsetted include:
- Reduced file size: Subsetting a font removes any unused characters, which can result in a smaller file size. This can help to reduce the amount of data that needs to be downloaded, leading to faster page load times and lower emissions.
- Improved performance: Fonts that are subsetted are faster to load and render than fonts that are not subsetted. This can help to improve the overall performance of a website, leading to a better user experience.
Overall, subsetting fonts is a good practice for anyone looking to optimize the performance and reduce the emissions of a website of a website.
View details
WorkSans-BoldItalic.woff2 | ~69 KB | ~52 KB |
work-sans.woff2 | ~47 KB | ~30 KB |
Remove third party font files
Font files should be loaded from the same hosting as the website because
- Increased loading time: Third-party sub-resources, such as scripts, fonts, or images, need to be downloaded from a separate server before they can be displayed on the website. This can increase the overall loading time of the page, leading to a slower user experience.
- Dependence on external servers: The loading of third-party subresources is dependent on the availability and performance of the external servers that host them. If these servers are slow or unavailable, it can result in slow page loading times or even errors.
- Increased risk of security threats: Third-party subresources can introduce security risks to a website, as they can contain malicious code or be used to track user activity.
View details
smooth-storage.aptoma.no | WorkSans-BoldItalic.woff2 |
First Contentful Paint
First Contentful Paint (FCP) is a performance metric that measures the time it takes for the first piece of content to be rendered on the screen when a user navigates to a web page. This content can be any visual element on the page, such as text, images, or a background color.
FCP is important because it directly affects the perceived speed of a website, and can impact user engagement and conversion rates. A faster FCP can lead to a better user experience and improved performance.
Here are a few ways you can optimise your FCP:
- Optimise images: Large, unoptimised images can slow down a page’s FCP. You can optimise images by compressing them, reducing their dimensions, and choosing the right format for each image.
- Minimise HTTP requests: Each resource requested by a web page, such as images, scripts, and stylesheets, requires a separate HTTP request. Minimising the number of HTTP requests can help to reduce the time it takes for a page to render.
- Prioritize critical content: Prioritizing critical content, such as above-the-fold content, can help to ensure that users see something on the screen quickly, even if the rest of the page is still loading.
- Reduce server response time: A slow server response time can significantly impact FCP. Optimizing server-side code and server settings can help to reduce response times and improve FCP.
- Use a performance monitoring tool: There are many tools available that can help you monitor your website’s performance, including FCP. These tools can help you identify performance issues and track your progress as you implement optimizations.
Mobile | Desktop | |
---|---|---|
Score | 0% | 6% |
Timing | 3.0 s |
Largest Contentful Paint
Largest Contentful Paint marks the time at which the largest text or image is painted. Learn more about the Largest Contentful Paint metric
Mobile | Desktop | |
---|---|---|
Score | 0% | 23% |
Timing | 3.5 s |
Total Blocking Time
Sum of all time periods between FCP and Time to Interactive, when task length exceeded 50ms, expressed in milliseconds. Learn more about the Total Blocking Time metric.
Mobile | Desktop | |
---|---|---|
Score | 0% | 0% |
Timing | 1,840 ms |
Cumulative Layout Shift
Cumulative Layout Shift measures the movement of visible elements within the viewport. Learn more about the Cumulative Layout Shift metric.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Timing | 0.005 |
Speed Index
Speed Index shows how quickly the contents of a page are visibly populated. Learn more about the Speed Index metric.
Mobile | Desktop | |
---|---|---|
Score | 0% | 0% |
Timing | 6.5 s |
Time to Interactive
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
Mobile | Desktop | |
---|---|---|
Score | 0% | 25% |
Timing | 6.1 s |
Max Potential First Input Delay
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
Mobile | Desktop | |
---|---|---|
Score | 0% | 0% |
Timing | 1,810 ms |
First Meaningful Paint
First Meaningful Paint measures when the primary content of a page is visible. Learn more about the First Meaningful Paint metric.
Mobile | Desktop | |
---|---|---|
Score | 0% | 5% |
Timing | 3.2 s |
Eliminate render-blocking resources
Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. Learn how to eliminate render-blocking resources.
Mobile | Desktop | |
---|---|---|
Score | 0% | 63% |
Insight | Potential savings of 560 ms |
Properly size images
Serve images that are appropriately-sized to save cellular data and improve load time. Learn how to size images.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Defer offscreen images
Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. Learn how to defer offscreen images.
Mobile | Desktop | |
---|---|---|
Score | 0% | 94% |
Insight | Potential savings of 190 KiB |
Minify CSS
Minifying CSS files can reduce network payload sizes. Learn how to minify CSS.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Insight | Potential savings of 7 KiB |
Minify JavaScript
Minifying JavaScript files can reduce payload sizes and script parse time. Learn how to minify JavaScript.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Reduce unused CSS
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS.
Mobile | Desktop | |
---|---|---|
Score | 0% | 78% |
Insight | Potential savings of 94 KiB |
Reduce unused JavaScript
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript.
Mobile | Desktop | |
---|---|---|
Score | 0% | 64% |
Insight | Potential savings of 264 KiB |
Efficiently encode images
Optimized images load faster and consume less cellular data. Learn how to efficiently encode images.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Serve images in next-gen formats
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. Learn more about modern image formats.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Insight | Potential savings of 66 KiB |
Enable text compression
Text-based resources should be served with compression (gzip, deflate or brotli) to minimize total network bytes. Learn more about text compression.
Mobile | Desktop | |
---|---|---|
Score | 0% | 76% |
Insight | Potential savings of 107 KiB |
Preconnect to required origins
Consider adding preconnect
or dns-prefetch
resource hints to establish early connections to important third-party origins. Learn how to preconnect to required origins.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Initial server response time was short
Keep the server response time for the main document short because all other requests depend on it. Learn more about the Time to First Byte metric.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Insight | Root document took 260 ms |
Avoid multiple page redirects
Redirects introduce additional delays before the page can be loaded. Learn how to avoid page redirects.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Insight | Potential savings of 230 ms |
Use video formats for animated content
Large GIFs are inefficient for delivering animated content. Consider using MPEG4/WebM videos for animations and PNG/WebP for static images instead of GIF to save network bytes. Learn more about efficient video formats
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Remove duplicate modules in JavaScript bundles
Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity.
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Avoid serving legacy JavaScript to modern browsers
Polyfills and transforms enable legacy browsers to use new JavaScript features. However, many aren't necessary for modern browsers. For your bundled JavaScript, adopt a modern script deployment strategy using module/nomodule feature detection to reduce the amount of code shipped to modern browsers, while retaining support for legacy browsers. Learn how to use modern JavaScript
Mobile | Desktop | |
---|---|---|
Score | 0% | 100% |
Insight | Potential savings of 19 KiB |
Avoid enormous network payloads
Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes.
Mobile | Desktop | |
---|---|---|
Score | 0% | 45% |
Insight | Total size was 4,147 KiB |
Serve static assets with an efficient cache policy
A long cache lifetime can speed up repeat visits to your page. Learn more about efficient cache policies.
Mobile | Desktop | |
---|---|---|
Score | 0% | 0% |
Insight | 15 resources found |
Avoid an excessive DOM size
A large DOM will increase memory usage, cause longer style calculations, and produce costly layout reflows. Learn how to avoid an excessive DOM size.
Mobile | Desktop | |
---|---|---|
Score | 0% | 0% |
Insight | 34,451 elements |
Reduce JavaScript execution time
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to reduce Javascript execution time.
Mobile | Desktop | |
---|---|---|
Score | 0% | 76% |
Timing | 2.0 s |
Minimize main-thread work
Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to minimize main-thread work
Mobile | Desktop | |
---|---|---|
Score | 0% | 20% |
Timing | 6.2 s |
Ensure text remains visible during webfont load
Leverage the font-display
CSS feature to ensure text is user-visible while webfonts are loading. Learn more about font-display
.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Reduce the impact of third-party code
Third-party code can significantly impact load performance. Limit the number of redundant third-party providers and try to load third-party code after your page has primarily finished loading. Learn how to minimize third-party impact.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Insight | Third-party code blocked the main thread for 3,010 ms |
Does not use passive listeners to improve scrolling performance
Consider marking your touch and wheel event listeners as passive
to improve your page's scroll performance. Learn more about adopting passive event listeners.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Avoids document.write()
For users on slow connections, external scripts dynamically injected via document.write()
can delay page load by tens of seconds. Learn how to avoid document.write().
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Image elements do not have explicit width
and height
Set an explicit width and height on image elements to reduce layout shifts and improve CLS. Learn how to set image dimensions
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Has a <meta name="viewport">
tag with width
or initial-scale
A <meta name="viewport">
not only optimizes your app for mobile screen sizes, but also prevents a 300 millisecond delay to user input. Learn more about using the viewport meta tag.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Insights
Carbon footprint
The carbon footprint of a website can be calculated by estimating the amount of energy consumed by the data center hosting the website, as well as the energy consumed by users accessing the site. Factors that can influence a website’s carbon footprint include the size of the site, the amount of traffic it receives, and the technology and hosting infrastructure used to host the site.
Mobile | Desktop | |
---|---|---|
Grade | A+ | F |
Green Hosting | No | No |
Dirtier than | 0% | 77% |
CO2 per page load | ? | 1.07g |
CO2 wasted per page load | ~ | ~0.9g |
Transfer size | ? | 4.05MB |
Transfer size percentile | 1% | 70% |
Size wasted | 0 | 3.16 MB |
Opportunities
Remove autoplaying or preloaded media files3 videos2.7 MB0.7g CO2
By removing 3 autoplaying or preloaded videos, roughly 2.7 MB could be removed from the page load.
This would reduce the page transfer size by 66% and reduce the pages emissions from 1.07 grams of CO2 to 0.37 grams of CO2.
Autoplaying videos can have a negative impact on the user experience for several reasons:
- Increased data usage: Autoplaying videos can consume a lot of data, especially if they are set to play in high definition. This can be a problem for users with limited data plans or slow connections, who may experience slow or interrupted playback.
- Annoyance factor: Autoplaying videos can be annoying for users, especially if they are accompanied by sound. This can lead to a negative perception of the website and decreased engagement.
- Reduced accessibility: Autoplaying videos can be a problem for users with accessibility needs, such as users who are blind or have hearing difficulties.
- Increased page load time: Autoplaying videos can increase the overall page load time, leading to a slower user experience.
- Decreased battery life: Autoplaying videos can consume a lot of battery power, especially on mobile devices, leading to reduced battery life.
In order to minimise the impact of autoplaying videos on the user experience, it is recommended to use them sparingly and only when necessary. It is also important to provide users with the option to turn off autoplaying videos and to allow them to control the playback of videos on the page. Additionally, videos should be optimised for performance and should be accompanied by captions or transcripts to improve accessibility.
View details
nerMZJlV-33461795.mp4 | 1 MB | 28% |
xkIBevt9-33461795.mp4 | 1 MB | 25% |
sQLb3ODo-33461794.mp4 | 517 KB | 12% |
Assets that need text compression enabled107 KB0.028g
By enabling text compression on 4 items, , roughly 107.3 KB could be removed from the page load.
View details
manuel-top | 101 KB | 90 KB |
graphql | 10 KB | 7 KB |
graphql | 7 KB | 7 KB |
eb-cmp.js | 5 KB | 4 KB |
Subset large font files82 KB0.021g
Fonts should be subsetted to reduce the file size, improve performance, and reduce emissions. Subsetting a font involves removing any characters that are not needed for a particular use case, resulting in a smaller file size and faster page load times. Some specific reasons why fonts should be subsetted include:
- Reduced file size: Subsetting a font removes any unused characters, which can result in a smaller file size. This can help to reduce the amount of data that needs to be downloaded, leading to faster page load times and lower emissions.
- Improved performance: Fonts that are subsetted are faster to load and render than fonts that are not subsetted. This can help to improve the overall performance of a website, leading to a better user experience.
Overall, subsetting fonts is a good practice for anyone looking to optimize the performance and reduce the emissions of a website of a website.
View details
WorkSans-BoldItalic.woff2 | ~69 KB | ~52 KB |
work-sans.woff2 | ~47 KB | ~30 KB |
Remove third party font files
Font files should be loaded from the same hosting as the website because
- Increased loading time: Third-party sub-resources, such as scripts, fonts, or images, need to be downloaded from a separate server before they can be displayed on the website. This can increase the overall loading time of the page, leading to a slower user experience.
- Dependence on external servers: The loading of third-party subresources is dependent on the availability and performance of the external servers that host them. If these servers are slow or unavailable, it can result in slow page loading times or even errors.
- Increased risk of security threats: Third-party subresources can introduce security risks to a website, as they can contain malicious code or be used to track user activity.
View details
smooth-storage.aptoma.no | WorkSans-BoldItalic.woff2 |
Dirty hosting0.14g CO2
This page generated ~1.07grams of CO2
By moving to a host using renewable energy, this could be reduced to ~0.93grams of CO2.
Sustainable web hosting refers to hosting services that are designed to minimise their impact on the environment and to promote sustainability. This can include using renewable energy sources, reducing waste and emissions, and implementing best practices for energy efficiency.
Sustainable web hosting providers aim to reduce their carbon footprint by using energy-efficient server hardware, data centres, and networking equipment, as well as implementing environmentally friendly policies and practices. For example, some providers may use renewable energy sources, such as wind or solar power, to power their data centres, or they may use high-efficiency cooling systems to reduce energy consumption.
Insights
Google Lighthouse Accessibility
The accessibility score in Google Lighthouse is a metric that measures how well a website is designed for users with disabilities. The score ranges from 0 to 100, with higher scores indicating better accessibility.
Google Lighthouse evaluates a website’s accessibility based on a number of different factors, such as the presence of alternative text for images, the use of semantic HTML, the ability to navigate the page using only a keyboard, and the use of appropriate color contrasts.
A high accessibility score in Google Lighthouse indicates that a website is well-designed for users with disabilities and provides an inclusive user experience. On the other hand, a low accessibility score can indicate that a website has barriers that make it difficult or impossible for some users to access and use the content.
In automated testing, this page scored 80% for accessibility on desktop. Keep in mind that automated accessibility testing is not perfect and that manual tests, use case testing, or usability testing should be completed as well.
- Mobile
- 0%
- Desktop Accessibility
- 82%
Opportunities
[accesskey]
values are unique
Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. Learn more about access keys.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[aria-*]
attributes do not match their roles
Each ARIA role
supports a specific subset of aria-*
attributes. Mismatching these invalidates the aria-*
attributes. Learn how to match ARIA attributes to their roles.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Values assigned to role=""
are valid ARIA roles.
ARIA role
s enable assistive technologies to know the role of each element on the web page. If the role
values are misspelled, not existing ARIA role
values, or abstract roles, then the purpose of the element will not be communicated to users of assistive technologies. Learn more about ARIA roles.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Elements with role="dialog"
or role="alertdialog"
have accessible names.
ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. Learn how to make ARIA dialog elements more accessible.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[role]
s have all required [aria-*]
attributes
Some ARIA roles have required attributes that describe the state of the element to screen readers. Learn more about roles and required attributes.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Elements with an ARIA [role]
that require children to contain a specific [role]
have all required children.
Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. Learn more about roles and required children elements.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[role]
s are contained by their required parent element
Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. Learn more about ARIA roles and required parent element.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[role]
values are valid
ARIA roles must have valid values in order to perform their intended accessibility functions. Learn more about valid ARIA roles.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[aria-*]
attributes have valid values
Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. Learn more about valid values for ARIA attributes.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[aria-*]
attributes are valid and not misspelled
Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. Learn more about valid ARIA attributes.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Background and foreground colors do not have a sufficient contrast ratio.
Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Document has a <title>
element
The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. Learn more about document titles.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[id]
attributes on active, focusable elements are not unique
All focusable elements must have a unique id
to ensure that they're visible to assistive technologies. Learn how to fix duplicate id
s.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
ARIA IDs are unique
The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. Learn how to fix duplicate ARIA IDs.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Heading elements appear in a sequentially-descending order
Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. Learn more about heading order.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
<html>
element has a [lang]
attribute
If a page doesn't specify a lang
attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. Learn more about the lang
attribute.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
<html>
element has a valid value for its [lang]
attribute
Specifying a valid BCP 47 language helps screen readers announce text properly. Learn how to use the lang
attribute.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Image elements do not have [alt]
attributes
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the alt
attribute.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Image elements do not have [alt]
attributes that are redundant text.
Informative elements should aim for short, descriptive alternative text. Alternative text that is exactly the same as the text adjacent to the link or image is potentially confusing for screen reader users, because the text will be read twice. Learn more about the alt
attribute.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Elements with visible text labels have matching accessible names.
Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. Learn more about accessible names.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Form elements have associated labels
Labels ensure that form controls are announced properly by assistive technologies, like screen readers. Learn more about form element labels.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Links are distinguishable without relying on color.
Low-contrast text is difficult or impossible for many users to read. Link text that is discernible improves the experience for users with low vision. Learn how to make links distinguishable.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Links do not have a discernible name
Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. Learn how to make links accessible.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Lists contain only <li>
elements and script supporting elements (<script>
and <template>
).
Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. Learn more about proper list structure.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
List items (<li>
) are contained within <ul>
, <ol>
or <menu>
parent elements
Screen readers require list items (<li>
) to be contained within a parent <ul>
, <ol>
or <menu>
to be announced properly. Learn more about proper list structure.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[user-scalable="no"]
is not used in the <meta name="viewport">
element and the [maximum-scale]
attribute is not less than 5.
Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. Learn more about the viewport meta tag.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
No element has a [tabindex]
value greater than 0
A value greater than 0 implies an explicit navigation ordering. Although technically valid, this often creates frustrating experiences for users who rely on assistive technologies. Learn more about the tabindex
attribute.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
[lang]
attributes have a valid value
Specifying a valid BCP 47 language on elements helps ensure that text is pronounced correctly by a screen reader. Learn how to use the lang
attribute.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Insights
Google Lighthouse Best Practices
Google Lighthouse evaluates a website’s best practices based on a number of different factors, such as the use of HTTPS encryption, the use of efficient caching policies, the implementation of modern web technologies, and the avoidance of deprecated technologies.
A high best practices score in Google Lighthouse indicates that a website is well-designed and follows best practices for web development, which can lead to better performance, security, and accessibility. On the other hand, a low best practices score can indicate that a website has room for improvement in terms of following best practices.
- Mobile
- 0%
- Desktop Best Practices
- 95%
Google Lighthouse SEO
Google Lighthouse evaluates a website’s SEO based on a number of different factors, such as the presence of title and description tags, the use of header tags, the presence of structured data, the use of image alt tags, and the use of crawlable links.
A high SEO score in Google Lighthouse indicates that a website is well-optimized for search engines, which can help to improve its visibility in search results and increase its organic traffic. On the other hand, a low SEO score can indicate that a website has room for improvement in terms of its optimization for search engines.
While a high SEO score can help to improve a website’s visibility in search results, it’s not a guarantee of higher rankings, as search engine algorithms take many other factors into account when determining the ranking of a website.
- Mobile
- 0%
- Desktop SEO
- 92%
Google Lighthouse PWA
The Progressive Web App (PWA) score in Google Lighthouse is a metric that measures the quality of a website as a progressive web app. The score ranges from 0 to 100, with higher scores indicating better performance and functionality as a PWA.
A progressive web app is a type of web application that combines the best features of both web and native apps, providing users with a fast, reliable, and engaging experience on any device.
Google Lighthouse evaluates a website’s PWA performance based on several key factors, such as the availability of a service worker, the presence of a web app manifest, the ability to install the app on the home screen, and the performance of the app under poor network conditions.
- Mobile
- 0%
- Desktop PWA
- 29%
Opportunities
Security headers to set2/6
HTTP security headers are special HTTP headers that can be added to a website’s response to help improve its security. They are important because they can help to protect a website and its users from various security threats, such as cross-site scripting (XSS) attacks, cross-site request forgery (CSRF) attacks, and other types of malicious activity.
It’s important to note, however, that implementing HTTP security headers is just one aspect of a comprehensive security strategy, and that other measures, such as regular software updates, secure coding practices, and regular security audits, are also important for maintaining a secure website.
View details
It's important to note, however, that implementing HTTP security headers is just one aspect of a comprehensive security strategy, and that other measures, such as regular software updates, secure coding practices, and regular security audits, are also important for maintaining a secure website.
Has a <meta name="viewport">
tag with width
or initial-scale
A <meta name="viewport">
not only optimizes your app for mobile screen sizes, but also prevents a 300 millisecond delay to user input. Learn more about using the viewport meta tag.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Document has a <title>
element
The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. Learn more about document titles.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Document has a meta description
Meta descriptions may be included in search results to concisely summarize page content. Learn more about the meta description.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Page has successful HTTP status code
Pages with unsuccessful HTTP status codes may not be indexed properly. Learn more about HTTP status codes.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Links have descriptive text
Links with descriptive text can provide users with more context about the content they are clicking on, which can help them to make informed decisions about whether to follow the link or not. This is especially important for users with disabilities, as screen readers can use the link text to provide an audio description of the content.
In addition, links with descriptive text can also improve the overall user experience, as users are more likely to know what to expect when they follow a link. This can reduce the likelihood of users bouncing back from a page after finding that it’s not what they were looking for, which can help to improve the user engagement and retention on a website.
Furthermore, descriptive links can also help to improve a website\’s search engine optimisation (SEO). Search engines use the link text and surrounding context to understand the content of a page, and this information is used to determine the relevance of a page for specific search queries. Descriptive links can help search engines to understand the content of a page more accurately, which can improve its visibility and ranking in search results.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Links are crawlable
Search engines may use href
attributes on links to crawl websites. Ensure that the href
attribute of anchor elements links to an appropriate destination, so more pages of the site can be discovered. Learn how to make links crawlable
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Page isn’t blocked from indexing
Search engines are unable to include your pages in search results if they don't have permission to crawl them. Learn more about crawler directives.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
robots.txt is valid
If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. Learn more about robots.txt.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Image elements do not have [alt]
attributes
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the alt
attribute.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Document has a valid hreflang
hreflang links tell search engines what version of a page they should list in search results for a given language or region. Learn more about hreflang
.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Document has a valid rel=canonical
Canonical links suggest which URL to show in search results. Learn more about canonical links.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Document avoids plugins
Search engines can't index plugin content, and many devices restrict plugins or don't support them. Learn more about avoiding plugins.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Uses HTTPS
All sites should be protected with HTTPS, even ones that don't handle sensitive data. This includes avoiding mixed content, where some resources are loaded over HTTP despite the initial request being served over HTTPS. HTTPS prevents intruders from tampering with or passively listening in on the communications between your app and your users, and is a prerequisite for HTTP/2 and many new web platform APIs. Learn more about HTTPS.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Avoids requesting the geolocation permission on page load
Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to a user action instead. Learn more about the geolocation permission.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Avoids requesting the notification permission on page load
Users are mistrustful of or confused by sites that request to send notifications without context. Consider tying the request to user gestures instead. Learn more about responsibly getting permission for notifications.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Allows users to paste into input fields
Preventing input pasting is a bad practice for the UX, and weakens security by blocking password managers.Learn more about user-friendly input fields.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Displays images with correct aspect ratio
Image display dimensions should match natural aspect ratio. Learn more about image aspect ratio.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Serves images with appropriate resolution
Image natural dimensions should be proportional to the display size and the pixel ratio to maximize image clarity. Learn how to provide responsive images.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Page has the HTML doctype
Specifying a doctype prevents the browser from switching to quirks-mode. Learn more about the doctype declaration.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Properly defines charset
A character encoding declaration is required. It can be done with a <meta>
tag in the first 1024 bytes of the HTML or in the Content-Type HTTP response header. Learn more about declaring the character encoding.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Avoids unload
event listeners
The unload
event does not fire reliably and listening for it can prevent browser optimizations like the Back-Forward Cache. Use pagehide
or visibilitychange
events instead. Learn more about unload event listeners
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Avoids deprecated APIs
Deprecated APIs will eventually be removed from the browser. Learn more about deprecated APIs.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Browser errors were logged to the console
Errors logged to the console indicate unresolved problems. They can come from network request failures and other browser concerns. Learn more about this errors in console diagnostic audit
Mobile | Desktop | |
---|---|---|
Grade | Fail | Fail |
Page has valid source maps
Source maps translate minified code to the original source code. This helps developers debug in production. In addition, Lighthouse is able to provide further insights. Consider deploying source maps to take advantage of these benefits. Learn more about source maps.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
No issues in the Issues
panel in Chrome Devtools
Issues logged to the Issues
panel in Chrome Devtools indicate unresolved problems. They can come from network request failures, insufficient security controls, and other browser concerns. Open up the Issues panel in Chrome DevTools for more details on each issue.
Mobile | Desktop | |
---|---|---|
Grade | Fail | Pass |
Insights
Sync site
Last sync: 8:01 pm, November 16, 2023
Edit site
Sitemap
Please provide a path for the sitemap