Get Instant Visibility into Internet Outages Affecting Your Sites. Try Internet Sonar for Free

Menu:

Save Test Results with a Free Account Sign Up & Save Test Result

Webpage Performance Test Result

Screenshot

Opportunities & Experiments New

WebPageTest helps identify opportunities to improve a site's experience. Select one or more No-Code Experiments below and submit to test their impact.

Is it Quick?

Needs Improvement. This site was quick to connect and deliver initial code. It began rendering content with considerable delay. There were 3 render-blocking requests.

WebPageTest ran 12 diagnostic checks related to this category and found 7 opportunities.

  1. This test had a reasonably quick first-byte time.

    A fast time to first byte is essential for delivering assets quickly.

    • 2 JavaScript files are blocking page rendering.

      By default, references to external JavaScript files will block the page from rendering while they are fetched and executed. Often, these files can be loaded in a different manner, freeing up the page to visually render sooner.

      • /svg4everybody.min.js
      • /static/js/main.b7ff81bb.js

      Relevant Experiments

      • Defer Render-Blocking Scripts

        This experiment adds a defer attribute to render-blocking scripts, causing the browser to fetch them in parallel while showing the page. Deferred scripts still execute in the order they are defined in source. Example implementation: <script src="/svg4everybody.min.js" defer></script>

        Assets included in experiment:
      • Async Render-Blocking Scripts

        This experiment adds an async attribute to render-blocking scripts, causing the browser to fetch them in parallel while showing the page. Async scripts are not guaranteed to execute in the order they are defined in source. Example implementation: <script src="/svg4everybody.min.js" async></script>

        Assets included in experiment:
      • Inline Render-Blocking Scripts

        This experiment embeds the contents of specified external scripts directly into the HTML within a script element. This increases the size of the HTML, but can often allow page page to display sooner by avoiding server round trips.Example implementation: <script>/* contents from /svg4everybody.min.js here...*/</script>

        Assets included in experiment:
      • 1 externally-referenced CSS file is blocking page rendering.

        By default, references to external CSS files will block the page from rendering while they are fetched and executed. Sometimes these files _should_ block rendering, but can be inlined to avoid additional round-trips while the page is waiting to render. Sometimes, such as with stylesheets that are only used for loading custom fonts, inline or async CSS can greatly improve perceived performance.

        • /static/css/main.bc2d3b44.css

        Relevant Experiments

        • Inline external CSS

          This experiment embeds the contents of specified external stylesheets directly into the HTML within a style element. This increases the size of the HTML, but can often allow page page to display sooner by avoiding server round trips. Note: The inline experiment may break relative references to images and other assets in the CSS. These would need proper path changes in production.

          Assets included in experiment:
          1. /static/css/main.bc2d3b44.css
        • Load CSS Asynchronously

          This experiment loads specified stylesheets in a way that allows the page to begin rendering while they are still loading. Note that this may cause a flash of unstyled content.

          Assets included in experiment:
          1. /static/css/main.bc2d3b44.css
        • Zero render-critical images are lazy-loaded.

          When images are lazy-loaded using loading="lazy", they will be requested after the layout is established, which is too late for images in the critical window.

          • Images outside the critical viewport can be lazy-loaded.

            When images are lazy-loaded using loading="lazy", when they scroll into the viewport, freeing up early load for other tasks.

            • /static/media/logo-mass.4cb33ca7.png
            • /static/media/logo-snap.120de9f3.png

            Relevant Experiments

            • Add loading="lazy" to images

              This experiment adds loading="lazy" attributes to images that are outside the viewport at load.

              Assets included in experiment:
            • Several fonts are loaded with settings that hide text while they are loading.

              When fonts are loaded with default display settings, like font-display="block", browsers will hide text entirely for several seconds instead of showing text with a fallback font.

              • Source Sans Pro 700 normal
              • Source Sans Pro 400 normal

              Relevant Experiments

            • Zero third-party fonts found.

              Fonts on 3rd party domains may take longer to load due to DNS and connection steps that are not necessary when fonts are hosted on the same domain.

              • Zero unused preloads were found.

                Preloaded resources are fetched at a high priority, delaying the arrival of other resources in the page. In the case where a preloaded resource is never actually used by the page, that means potentially critical requests will be delayed, slowing down the initial loading of your site.

                • 3 files were hosted without using a CDN.

                  A Content Delivery Network (CDN) distributes a website's files throughout the world, reducing request latency. These files do not use a CDN:

                  • https://dtaconnect.eohhs.mass.gov/svg4everybody.min.js
                  • https://dtaconnect.eohhs.mass.gov/static/css/main.bc2d3b44.css
                  • https://dtaconnect.eohhs.mass.gov/static/js/main.b7ff81bb.js
                  • 8 static files have inadequate cache settings.

                    Cache settings can instruct browsers and intermediaries to store recent versions of a site's static files (JavaScript, CSS, Images, fonts...) for reuse, reducing page weight and latency.

                    • FAILED (No max-age or expires): https://dtaconnect.eohhs.mass.gov/svg4everybody.min.js
                    • FAILED (No max-age or expires): https://dtaconnect.eohhs.mass.gov/static/css/main.bc2d3b44.css
                    • FAILED (No max-age or expires): https://dtaconnect.eohhs.mass.gov/static/js/main.b7ff81bb.js
                    • WARNING (1.4 hours): https://www.google-analytics.com/analytics.js
                    • FAILED (15.0 minutes): https://www.googletagmanager.com/gtag/js?id=G-TYZK686PZ2&cx=c&_slc=1
                    • FAILED (15.0 minutes): https://www.googletagmanager.com/gtag/js?id=G-SW2TVH2WBY&cx=c&_slc=1
                    • FAILED (15.0 minutes): https://www.googletagmanager.com/gtag/js?id=G-TYZK686PZ2
                    • FAILED (15.0 minutes): https://www.googletagmanager.com/gtm.js?id=GTM-PNR87FP
                    • Zero requests were found that resulted in an HTTP redirect.

                      HTTP redirects can result in additional DNS resolution, TCP connection and HTTPS negotiation times, making them very costly for performance, particularly on high latency networks.

                      • Final HTML (DOM) size is significantly larger than initially delivered HTML (24.17kb larger, or 93.67% of total HTML).

                        Typically this is due to over-reliance on JavaScript for generating content, but increases can also happen as a result of browsers normalizing HTML structure as well. When critical HTML content is generated with JavaScript in the browser, several performance bottlenecks can arise:

                        • Before content can be generated client-side, the browser must first parse, evaluate, and sometimes also request JavaScript over the network. These steps occur after the HTML is initially delivered, and can incur long delays depending on the device.
                        • If the generated HTML contains references to external assets (images for example), the browser will not be able to discover and request them as early as desired.

                        Relevant Experiments

                        • Mimic Pre-rendered HTML

                          This experiment mimics server-generated HTML by swapping the initial HTML with the fully rendered HTML from this test run. Note: this will very likely break site behavior, but is potentially useful for comparing early metrics and assessing whether moving logic to the server is worth the effort.

                          Assets included in experiment:
                          1. 240804_AiDcFG_31Y

                        Is it Usable?

                        Not bad... This site had good layout stability. It took little time to become interactive. Some HTML was generated after delivery, potentially delaying usability.

                        WebPageTest ran 5 diagnostic checks related to this category and found 1 opportunities.

                        1. Zero major layout shifts detected.

                          This is great. Layout shifts hinder usability and reducing layout shifts will improve your CLS metric score.

                          • The main thread was not blocked for any significant time.

                            When files block the main thread, users are unable to interact with the page content. Typically, parsing and executing large JavaScript files, as well as running long JavaScript tasks can block the main thread and should be avoided.

                            • Meta Viewport tag is configured properly.

                              A meta viewport tag will help a mobile-friendly site scale and display properly on small screen devices.

                              • Zero Accessibility Issues were Detected

                                Axe found no accessibility issues.

                                • Final HTML (DOM) size is significantly larger than initially delivered HTML (24.17kb larger, or 93.67% of total HTML).

                                  Typically this is due to over-reliance on JavaScript for generating content, but increases can also happen as a result of browsers normalizing HTML structure as well. When critical HTML content is generated with JavaScript in the browser, it can increase the time it takes for content to be made accessible to assistive technology such as screen readers.

                                  Relevant Tips

                                  • Look for ways to deliver more HTML content from the start

                                    Many modern frameworks offer patterns for generating useful HTML on the server.

                                  Is it Resilient?

                                  Not bad... This site had no render-blocking 3rd party requests that could be a single point of failure. It had no security issues. Some HTML was generated after delivery, which can cause fragility.

                                  WebPageTest ran 4 diagnostic checks related to this category and found 1 opportunities.

                                  1. Zero render-blocking third-party requests found.

                                    By default, references to external JavaScript and CSS files will block the page from rendering. Third-party blocking requests are particularly risky, as your page's access relies on their response time and availability.

                                    • Zero security vulnerabilies were detected by Snyk

                                      Snyk has found 0 security vulnerabilities with included packages.

                                      • Zero resources were found that were loaded over an insecure connection.

                                        Loading requests over HTTPS necessary for ensuring data integrity, protecting users personal information, providing core critical security, and providing access to many new browser features.

                                        • Final HTML (DOM) size is significantly larger than initially delivered HTML (24.17kb larger, or 93.67% of total HTML).

                                          Typically this is due to over-reliance on JavaScript for generating content, but increases can also happen as a result of browsers normalizing HTML structure as well. Common issues such as JavaScript errors and third-party network delays and outages can present potential single points of failure.

                                          Relevant Experiments

                                          • Disable Scripts

                                            This experiment makes all scripts (inline and external) unrecognizable as javascript by the browser in order to demonstrate whether the site will still be usable if JavaScript fails to properly run.

                                            Assets included in experiment:
                                          • Make Scripts Timeout

                                            This experiment directs specified requests to WebPageTest's blackhole server, which will hang indefinitely until timing out. Use this experiment to test your site's ability to serve content if these services hang.

                                            Assets included in experiment:
                                          • Block Script Requests

                                            This experiment causes specified requests to fail immediately. Use this experiment to test your site's ability to serve content if these services are unavailable.

                                            Assets included in experiment:

                                          Create Experiments

                                          Advanced. Use this section to create custom experiments to add to your test.

                                          1. Add HTML to document

                                            These experiments allow you to add arbitrary html to a page, which can for example, enable to you test the impact of adding scripts, 3rd-party tags, or resource hints.

                                            Relevant Experiments

                                            • Add HTML to start of head

                                              This experiment adds arbitrary HTML text to the start of the head of the tested website.

                                            • Add HTML to end of head

                                              This experiment adds arbitrary HTML text to the end of the head of the tested website.

                                            • Add HTML to end of body

                                              This experiment adds arbitrary HTML text to the end of the body of the tested website.

                                            • Find and Replace Text

                                              This experiment allows you to find and replace arbitrary text or html in a request.

                                              Relevant Experiments

                                              • Find/Replace Text

                                                This experiment will find and replace occurrences of text in the page, with the option of using regular expressions, capturing parentheses, and flags as well

                                              • Delivery Optimizations

                                                These experiments allow you change attributes and manipulate how assets are delivered. Note expected syntax examples when using.

                                                Relevant Experiments

                                                • Defer Render-Blocking Scripts

                                                  This experiment adds a defer attribute to render-blocking scripts, causing the browser to fetch them in parallel while showing the page. Deferred scripts still execute in the order they are defined in source.

                                                • Async Blocking Scripts

                                                  This experiment adds a async attribute to render-blocking scripts, causing the browser to fetch them in parallel while showing the page. Async scripts are not guaranteed to execute in the order they are defined in source.

                                                • Disable JavaScript

                                                  This experiment effectively disables JavaScript (and enables noscript elements) to test a site's JavaScript dependence. It works by changing script elements into scrapt elements, and noscript elements into noscrapt elements so that the page weight remains and behaviors mimic a JS-disabled environment.

                                                  Assets included in experiment:
                                                • Load CSS Async

                                                  This experiment loads specified stylesheets in a way that allows the page to begin rendering while they are still loading. Note that this may cause a flash of unstyled content.

                                                • Add Image Aspect Ratio

                                                  This experiment adds width="..." and height="..." attributes to specified images, matching their natural width and height, to provide an aspect ratio.

                                                • Inline External Files

                                                  This experiment embeds the contents of specified external scripts or stylesheets directly into the HTML. This increases the size of the HTML, but can often allow page page to display sooner by avoiding server round trips. Note: The inline experiment may break relative references to images and other assets inside the file. These would need proper path changes or absolute URLs in production.

                                                • Preload Files

                                                  This experiment adds a <link rel="preload" type="image" href="..."> to the head of your HTML document, causing browsers to request a file earlier and at a higher priority than they otherwise might.

                                                • Remove Preloads

                                                  This experiment removes specified unused preloads from the page, allowing other critical resources to be requested earlier.

                                                • Preconnect Domains

                                                  This experiment will add a link with rel="preconnect" for specified hosts, which saves time for those steps when the resource is later requested.

                                                • Lazy Load Images

                                                  This experiment adds loading="lazy" attributes to specified images.

                                                • Remove Lazy Loading

                                                  This experiment removes loading="lazy" attributes from specified images.

                                                • Minify CSS

                                                  This experiment removes whitespace from same-domain CSS files.

                                                  Assets included in experiment:
                                                • Add Priority Hint

                                                  (Chromium-only) This experiment adds an fetchpriority="high" attribute to specified images, causing them to request earlier at a higher priority.

                                                • Remove Priority Hint

                                                  (Chrome-only) This experiment removes an existing fetchpriority attribute to specified images, causing them to request at their default priority.

                                                • Add font-display: swap

                                                  This experiment changes the way a custom font loads so that text can appear while fonts are loading

                                                  Assets included in experiment:
                                                • Make Hosts Timeout

                                                  This experiment directs specified hosts to WebPageTest's blackhole server, which will hang indefinitely until timing out. Use this experiment to test your site's ability to serve content if these services hang.

                                                • Block Requests

                                                  This experiment causes specified requests to fail immediately. Use this experiment to test your site's ability to serve content if these services are unavailable.

                                                • Self-Host Requests

                                                  This experiment will fetch these requests server-side and reference them on the same domain. Note: the overrides happen at the host level, so any requests from that host will now be self-hosted.