Individual Scores of the Four Metrics
There are four major metrics that define the overall score. Each of these are displayed here and may give you a view of where the biggest opportunities exist.
Detailed Audit Data
This detailed information is to help you better understand what opportunities are available for improvement. Most sections have a score and each section has a link that you can click on to learn more. We encourage you to lean as much about each of these as knowing how some of these things work will help you to be more successful.
Detailed Performace Data - 93%
First Contentful Paint
First Contentful Paint marks the time at which the first text or image is painted. https://web.dev/first-contentful-paint.
First Meaningful Paint
First Meaningful Paint measures when the primary content of a page is visible. https://web.dev/first-meaningful-paint.
Speed Index shows how quickly the contents of a page are visibly populated. https://web.dev/speed-index.
This is what the load of your site looked like.
Estimated Input Latency
Estimated Input Latency is an estimate of how long your app takes to respond to user input, in milliseconds, during the busiest 5s window of page load. If your latency is higher than 50 ms, users may perceive your app as laggy. https://web.dev/estimated-input-latency.
Total Blocking Time
Sum of all time periods between FCP and Time to Interactive, when task length exceeded 50ms, expressed in milliseconds.
Max Potential Fid
The maximum potential First Input Delay that your users could experience is the duration, in milliseconds, of the longest task. https://developers.google.com/web/updates/2018/05/first-input-delay.
Time To First Byte
Time To First Byte identifies the time at which your server sends a response. https://web.dev/time-to-first-byte.
First Cpu Idle
First CPU Idle marks the first time at which the page's main thread is quiet enough to handle input. https://web.dev/first-cpu-idle.
Time to interactive is the amount of time it takes for the page to become fully interactive. https://web.dev/interactive.
Consider instrumenting your app with the User Timing API to measure your app's real-world performance during key user experiences. https://web.dev/user-timings.
Critical Request Chains
The Critical Request Chains below show you what resources are loaded with a high priority. Consider reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load. https://web.dev/critical-request-chains.
Redirects introduce additional delays before the page can be loaded. https://web.dev/redirects.
Mainthread Work Breakdown
Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. https://web.dev/mainthread-work-breakdown
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. https://web.dev/bootup-time.
Uses Rel Preload
Consider using `<link rel=preload>` to prioritize fetching resources that are currently requested later in page load. https://web.dev/uses-rel-preload.
Uses Rel Preconnect
Consider adding `preconnect` or `dns-prefetch` resource hints to establish early connections to important third-party origins. https://web.dev/uses-rel-preconnect.
Leverage the font-display CSS feature to ensure text is user-visible while webfonts are loading. https://web.dev/font-display.
Collection of useful page vitals.
Lists the network requests that were made during page load.
Network round trip times RTT have a large impact on performance. If the RTT to an origin is high, it's an indication that servers closer to the user could improve performance. https://hpbn.co/primer-on-latency-and-bandwidth/.
Network Server Latency
Server latencies can impact web performance. If the server latency of an origin is high, it's an indication the server is overloaded or has poor backend performance. https://hpbn.co/primer-on-web-performance/#analyzing-the-resource-waterfall.
Main Thread Tasks
Lists the toplevel main thread tasks that executed during page load.
Collects all available metrics.
Keep the quantity and size of network requests under the targets set by the provided performance budget. https://developers.google.com/web/tools/lighthouse/audits/budgets.
To set budgets for the quantity and size of page resources, add a budget.json file. https://developers.google.com/web/tools/lighthouse/audits/budgets.
Third Party Summary
Uses Long Cache Ttl
A long cache lifetime can speed up repeat visits to your page. https://web.dev/uses-long-cache-ttl.
Total Byte Weight
Large network payloads cost users real money and are highly correlated with long load times. https://web.dev/total-byte-weight.
Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. https://web.dev/offscreen-images.
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. https://web.dev/render-blocking-resources.
Minifying CSS files can reduce network payload sizes. https://web.dev/unminified-css.
Unused Css Rules
Remove dead rules from stylesheets and defer the loading of CSS not used for above-the-fold content to reduce unnecessary bytes consumed by network activity. https://web.dev/unused-css-rules.
Uses Webp Images
Image formats like JPEG 2000, JPEG XR, and WebP often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. https://web.dev/uses-webp-images.
Uses Optimized Images
Optimized images load faster and consume less cellular data. https://web.dev/uses-optimized-images.
Uses Text Compression
Text-based resources should be served with compression gzip, deflate or brotli to minimize total network bytes. https://web.dev/uses-text-compression.
Uses Responsive Images
Serve images that are appropriately-sized to save cellular data and improve load time. https://web.dev/uses-responsive-images.
Efficient 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. https://web.dev/efficient-animated-content
A large DOM will increase memory usage, cause longer [style calculations]https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations, and produce costly [layout reflows]https://developers.google.com/speed/articles/reflow. https://web.dev/dom-size.
Detailed Accessibility Data - 93%
Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. https://web.dev/accesskeys/.
Aria Allowed Attr
Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. https://web.dev/aria-allowed-attr/.
Aria Required Attr
Some ARIA roles have required attributes that describe the state of the element to screen readers. https://web.dev/aria-required-attr/.
Aria Required Children
Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. https://web.dev/aria-required-children/.
Aria Required Parent
Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. https://web.dev/aria-required-parent/.
ARIA roles must have valid values in order to perform their intended accessibility functions. https://web.dev/aria-roles/.
Aria Valid Attr Value
Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. https://web.dev/aria-valid-attr-value/.
Aria Valid Attr
Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. https://web.dev/aria-valid-attr/.
Captions make audio elements usable for deaf or hearing-impaired users, providing critical information such as who is talking, what they're saying, and other non-speech information. https://web.dev/audio-caption/.
When a button doesn't have an accessible name, screen readers announce it as "button", making it unusable for users who rely on screen readers. https://web.dev/button-name/.
Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. https://web.dev/bypass/.
Low-contrast text is difficult or impossible for many users to read. https://web.dev/color-contrast/.
When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. https://web.dev/definition-list/.
Definition list items `<dt>` and `<dd>` must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. https://web.dev/dlitem/.
The value of an id attribute must be unique to prevent other instances from being overlooked by assistive technologies. https://web.dev/duplicate-id/.
Screen reader users rely on frame titles to describe the contents of frames. https://web.dev/frame-title/.
Html Has Lang
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. https://web.dev/html-has-lang/.
Html Lang Valid
Specifying a valid [BCP 47 language]https://www.w3.org/International/questions/qa-choosing-language-tags#question helps screen readers announce text properly. https://web.dev/html-lang-valid/.
Input Image Alt
When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. https://web.dev/input-image-alt/.
Labels ensure that form controls are announced properly by assistive technologies, like screen readers. https://web.dev/label/.
A table being used for layout purposes should not include data elements, such as the th or caption elements or the summary attribute, because this can create a confusing experience for screen reader users. https://web.dev/layout-table/.
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. https://web.dev/link-name/.
Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. https://web.dev/list/.
Screen readers require list items `<li>` to be contained within a parent `<ul>` or `<ol>` to be announced properly. https://web.dev/listitem/.
Users do not expect a page to refresh automatically, and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. https://web.dev/meta-refresh/.
Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. https://web.dev/meta-viewport/.
Screen readers cannot translate non-text content. Adding alt text to `<object>` elements helps screen readers convey meaning to users. https://web.dev/object-alt/.
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. https://web.dev/tabindex/.
Td Headers Attr
Screen readers have features to make navigating tables easier. Ensuring `<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. https://web.dev/td-headers-attr/.
Th Has Data Cells
Screen readers have features to make navigating tables easier. Ensuring table headers always refer to some set of cells may improve the experience for screen reader users. https://web.dev/th-has-data-cells/.
Specifying a valid [BCP 47 language]https://www.w3.org/International/questions/qa-choosing-language-tags#question on elements helps ensure that text is pronounced correctly by a screen reader. https://web.dev/valid-lang/.
When a video provides a caption it is easier for deaf and hearing impaired users to access its information. https://web.dev/video-caption/.
Audio descriptions provide relevant information for videos that dialogue cannot, such as facial expressions and scenes. https://web.dev/video-description/.
Custom Controls Labels
Custom interactive controls have associated labels, provided by aria-label or aria-labelledby. https://web.dev/custom-controls-labels/.
Custom Controls Roles
Custom interactive controls have appropriate ARIA roles. https://web.dev/custom-control-roles/.
A user can tab into and out of any control or region without accidentally trapping their focus. https://web.dev/focus-traps/.
Custom interactive controls are keyboard focusable and display a focus indicator. https://web.dev/focusable-controls/.
Headings are used to create an outline for the page and heading levels are not skipped. https://web.dev/heading-levels/.
Interactive Element Affordance
Interactive elements, such as links and buttons, should indicate their state and be distinguishable from non-interactive elements. https://web.dev/interactive-element-affordance/.
Logical Tab Order
Tabbing through the page follows the visual layout. Users cannot focus elements that are offscreen. https://web.dev/logical-tab-order/.
If new content, such as a dialog, is added to the page, the user's focus is directed to it. https://web.dev/managed-focus/.
Offscreen Content Hidden
Offscreen content is hidden with display: none or aria-hidden=true. https://web.dev/offscreen-content-hidden/.
Landmark elements <main>, <nav>, etc. are used to improve the keyboard navigation of the page for assistive technology. https://web.dev/use-landmarks/.
Visual Order Follows Dom
DOM order matches the visual order, improving navigation for assistive technology. https://web.dev/visual-order-follows-dom/.
Detailed Best Practices Data - 79%
Is On Https
All sites should be protected with HTTPS, even ones that don't handle sensitive data. 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. https://web.dev/is-on-https.
Errors In Console
Errors logged to the console indicate unresolved problems. They can come from network request failures and other browser concerns. https://web.dev/errors-in-console
Image Aspect Ratio
Image display dimensions should match natural aspect ratio. https://web.dev/image-aspect-ratio.
Deprecated APIs will eventually be removed from the browser. https://web.dev/deprecations.
Application Cache is deprecated. https://web.dev/appcache-manifest.
Specifying a doctype prevents the browser from switching to quirks-mode. https://web.dev/doctype.
External Anchors Use Rel Noopener
Add `rel="noopener"` or `rel="noreferrer"` to any external links to improve performance and prevent security vulnerabilities. https://web.dev/external-anchors-use-rel-noopener.
Geolocation On Start
Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to a user action instead. https://web.dev/geolocation-on-start.
No Document Write
For users on slow connections, external scripts dynamically injected via `document.write` can delay page load by tens of seconds. https://web.dev/no-document-write.
No Vulnerable Libraries
Some third-party scripts may contain known security vulnerabilities that are easily identified and exploited by attackers. https://web.dev/no-vulnerable-libraries.
Notification On Start
Users are mistrustful of or confused by sites that request to send notifications without context. Consider tying the request to user gestures instead. https://web.dev/notification-on-start.
Password Inputs Can Be Pasted Into
Preventing password pasting undermines good security policy. https://web.dev/password-inputs-can-be-pasted-into.
HTTP/2 offers many benefits over HTTP/1.1, including binary headers, multiplexing, and server push. https://web.dev/uses-http2.
Uses Passive Event Listeners
Consider marking your touch and wheel event listeners as `passive` to improve your page's scroll performance. https://web.dev/uses-passive-event-listeners.
Detailed SEO Data - 92%
Add a `<meta name="viewport">` tag to optimize your app for mobile screens. https://web.dev/viewport.
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. https://web.dev/document-title/.
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. https://web.dev/image-alt/.
Meta descriptions may be included in search results to concisely summarize page content. https://web.dev/meta-description.
Http Status Code
Pages with unsuccessful HTTP status codes may not be indexed properly. https://web.dev/http-status-code.
Font sizes less than 12px are too small to be legible and require mobile visitors to “pinch to zoom” in order to read. Strive to have >60% of page text ≥12px. https://web.dev/font-size.
Descriptive link text helps search engines understand your content. https://web.dev/link-text.
Search engines are unable to include your pages in search results if they don't have permission to crawl them. https://web.dev/is-crawable.
If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. https://web.dev/robots-txt.
Interactive elements like buttons and links should be large enough 48x48px, and have enough space around them, to be easy enough to tap without overlapping onto other elements. https://web.dev/tap-targets.
hreflang links tell search engines what version of a page they should list in search results for a given language or region. https://web.dev/hreflang.
Search engines can't index plugin content, and many devices restrict plugins or don't support them. https://web.dev/plugins.
Canonical links suggest which URL to show in search results. https://web.dev/canonical.
Run the [Structured Data Testing Tool]https://search.google.com/structured-data/testing-tool/ and the [Structured Data Linter]http://linter.structured-data.org/ to validate structured data. https://web.dev/structured-data.
How is this score calculated?
This score is calculated using Lighthouse testing. Lighthouse testing is a developer tool that is provided by Google. There are 4 SEO impacting metrics included in this test. The total score listed above is the average of 4 these metrics. The formula is the sum of the 4 scores divided by 4. While the individual calculations that make up the total of each of the four scores are weighted accordingly, the total score does not necessarily reflect a weighted calculation. This means that in real world scenarios the 'actual' total score may not be the same as what is displayed above. However, each is still a genuine opportunity for improvement when individual scores fall below 100 and because we know that a perfect score of 100 is reliably achievable in all but the 'Performance' metric, Performance is the only metric that will significantly impact the total score of www.greyhoundlife.org once all other optimizations are completed.
If you provided a URL with a specific internal page (e.g. https://www.example.com/some-page/), you have probably noticed that only the base URL was tested. For more detailed testing of individual pages within www.greyhoundlife.org, please contact us.
You can also view a prettier version of this specific report including the runtime emulation that was used by clicking here.
There are many other tests that should be checked manually. SEO is important and these as well as other metrics can really make a difference when attention to detail is given to keep these scores high. Regular testing should be performed so that new opportunities can be revealed and action can be taken. These results do not represent every opportunity for improved SEO.
If you have any questions about these results and would like to know how you can run these tests on your own and get more detailed information, please contact us for a No Obligation Strategic Talk. If you would like to view the detail of these results click here.