Global Performance
6/6 locations ✓Acceptable global latency — average 400ms across 6 locations, fastest from New York (51ms), slowest from Singapore (782ms). No CDN detected. Cache-Control disables caching (no-store). 2 locations above the 500ms target.
Audit overview
Compliance needs attention; the rest of the categories are in good shape.
Fix Priority Matrix
5 findingsQuick Wins
3High impact, low effort — start here.
Strategic
2High impact, requires investment.
Easy Improvements
0Small gains, minimal effort.
Nothing in this quadrant — good news.
Deprioritize
0Low impact, high effort — do last.
Nothing in this quadrant — good news.
Screenshots
Top Priorities (5)
2 image-in-link without alt text
Image-only links with no alt create empty links — screen-reader users hear 'link' with no destination context.
3 image(s) missing alt attribute
Each image without alt text is a WCAG 1.1.1 failure — invisible to screen-reader users, lost from Google Image Search.
5 link(s) with no accessible text
Links with no accessible text (empty <a></a>, image-only no alt, icon-only no aria-label) are unidentifiable to screen readers.
6 button(s) with no accessible text
Buttons with no accessible text (icon-only, no aria-label) can't be activated by voice control or understood by screen readers.
23 `@font-face` rule(s) without `font-display` -- causes FOIT
Performance issues directly impact user engagement and conversion rates.
Business case
What fixing the audit's findings is worth -- and what ignoring them keeps costing.
Return on investment
AUD 550 investment → AUD 16,927/month returns + AUD 50,200,000 risk avoided
Figures combine localized regulatory fine ceilings, search/conversion value priced against local CPC, and bandwidth waste estimates. Results depend on implementation quality and audience composition. Not legal or financial advice.
Conversion barriers
8 barrier(s) likely increasing bounce by ~28%.
- Page takes 10.1s to loadUsers abandon at ~3s — you're 7.6s over the 2.5s threshold→ Optimize render-blocking resources, preload the hero image, and compress images
- 13 broken link(s) on the pageClicks land on 404s — trust drops and the session often ends→ Fix or remove the broken destinations surfaced on the Content tab
- No HSTS headerReturning visitors are briefly exposed to downgrade attacks on first request→ Set Strict-Transport-Security: max-age=31536000; includeSubDomains
- No Content-Security-Policy headerHigher XSS blast radius — one compromised script can exfiltrate the checkout form→ Ship a reporting-only CSP first, then enforce once violations are clean
- No structured dataNo rich-result eligibility in Google — lower SERP CTR vs competitors with stars and prices→ Add JSON-LD for your page type (Product, Article, FAQPage, LocalBusiness, …)
Preliminary CRO audit — each barrier links to the tab with detailed analysis.
Remediation cost
Start here for the best return on investment
Cost by category
Cost by effort level
Adjust assumptions
Team composition
Multiplier applied to dev hours to reflect QA, design, and PM overhead. Use Dev only for solo work; Full team for projects with formal review processes.
Rates reflect fully-loaded developer cost including overhead
Cost of inaction
Compliance Risk
AUD 50,200,000
- No privacy policy link detectedPrivacy Act 1988: AUD 66,000 – AUD 50,000,000
- Trackers detected but no cookie policy foundPrivacy Act 1988: AUD 66,000 – AUD 50,000,000
- Trackers detected but no privacy policy foundPrivacy Act 1988: AUD 66,000 – AUD 50,000,000
- Privacy Policy not detectedPrivacy Act 1988: AUD 66,000 – AUD 50,000,000
- 2 of 2 <nav> elements are unlabeledDDA: AUD 5,000 – AUD 200,000
- Skip navigation link is missing (WCAG 2.4.1)DDA: AUD 5,000 – AUD 200,000
- Multiple H1 headings (2 found)DDA: AUD 5,000 – AUD 200,000
- 3 image(s) missing alt attributeDDA: AUD 5,000 – AUD 200,000
- 2 image-in-link without alt textDDA: AUD 5,000 – AUD 200,000
Bounce-Rate Cost
AUD 9,895 /mo
+28.3pp bounce · ~2,827 lost visitors/mo
CPC: AUD 3.50
Bandwidth Waste
AUD 0.71 /mo
5791.7 MB/mo × 0.123 AUD/GB
- Optimize transfer: save ~579 KB per page loadSaves AUD 0.71/mo
Compliance figures represent the statutory maximum fine for the most severe triggered category, capped per regulation — not the sum of per-finding penalties. Based on published regulatory fine ranges. This is not legal advice.
Unique monthly visitors from your analytics
Purchases, signups, or key actions
Optional — for revenue estimation
more engaged visitors from reduced bounce
Fix 4 critical issues to capture this value
How this is calculated
Based on Google/Deloitte research ("Milliseconds Make Millions") showing a ~7% bounce rate increase per additional second of LCP above the 2.5s "Good" threshold.
Your site's LCP: → estimated after fixes.
These are estimates based on industry research — actual results vary
Your data stays in your browser — nothing is sent to our servers
Lighthouse
Mobile
First Contentful Paint First Contentful Paint — how long until the browser renders the first piece of content. Under 1.8s is good.
2.10 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
10.10 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
172 ms
Cumulative Layout Shift Cumulative Layout Shift — measures visual stability. How much the page layout shifts during loading. Under 0.1 is good.
0.007
Speed Index Speed Index — how quickly content is visually displayed during load. Under 3.4s is good.
2.96 s
Time to Interactive Time to Interactive — how long until the page is fully interactive and responds to user input. Under 3.8s is good.
10.31 s
Desktop
First Contentful Paint First Contentful Paint — how long until the browser renders the first piece of content. Under 1.8s is good.
813 ms
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
2.22 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
0 ms
Cumulative Layout Shift Cumulative Layout Shift — measures visual stability. How much the page layout shifts during loading. Under 0.1 is good.
0.001
Speed Index Speed Index — how quickly content is visually displayed during load. Under 3.4s is good.
1.12 s
Time to Interactive Time to Interactive — how long until the page is fully interactive and responds to user input. Under 3.8s is good.
2.23 s
Categories
8Performance
23 `@font-face` rule(s) without `font-display` -- causes FOIT
Security
All checks pass
Accessibility
2 image-in-link without alt text
SEO
All checks pass
Infrastructure
All checks pass
Compliance
All checks pass
Content
All checks pass
Sustainability
All checks pass
How you compare
Where this site stands against peers running the same stack.
Top 10% of Amazon Route 53 sites score 86+ on Compliance; you're at 65 — closing this gap is the highest-leverage improvement.
Technology stack
Duda production_6434, hosted on Snowplow Analytics, with Nginx CDN
Stack Architecture
All Detected Technologies (18)
Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.
Snowplow is an open-source behavioral data management platform for businesses.
Duda is a user-friendly website builder and CMS platform that enables businesses and individuals to create responsive, mobile-friendly websites without extensive coding knowledge.
HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.
Lodash is a JavaScript library which provides utility functions for common programming tasks using the functional programming paradigm.
Open Graph is a protocol that is used to integrate any web page into the social graph.
PhotoSwipe is an open-source gallery to support JavaScript-based image zooming.
Priority Hints exposes a mechanism for developers to signal a relative priority for browsers to consider when fetching resources.
Skrollr is a JavaScript library supporting parallax scrolling on mobile and desktop platforms in a compact 12k minified size.
jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.
Query Migrate is a javascript library that allows you to preserve the compatibility of your jQuery code developed for versions of jQuery older than 1.9.
Google Analytics is a free web analytics service that tracks and reports website traffic.
Google Tag Manager is a tag management system (TMS) that allows you to quickly and easily update measurement codes and related code fragments collectively known as tags on your website or mobile app.
Observations (2)
No build tool detected
A framework (Amazon Route 53) was detected but no bundler was identified. The build tool may not be detectable from output patterns, or the site may use the framework's built-in bundler.
Complex technology stack detected
18 technologies identified. A complex stack increases maintenance burden and attack surface. Consider whether all components are actively needed.
Show your score
Drop this badge on your README, marketing site, or status page. It auto-updates every time the audit re-runs and links back to this report.
This badge auto-updates with your latest scan result.
[](https://beavercheck.com/results/d7d71804-2800-4ca5-9d06-f566f0739396)<a href="https://beavercheck.com/results/d7d71804-2800-4ca5-9d06-f566f0739396"><img src="https://beavercheck.com/badge?url=https%3A%2F%2Fpassionfish.com.au" alt="BeaverCheck Score"></a>https://beavercheck.com/badge?url=https%3A%2F%2Fpassionfish.com.auFix Plan
Three-week roadmap to ship the audit's findings, with one-click copy targets for your tracker.
Three-week fix plan
2 sprints · 5h total → projected B (85)
Sprint 1: Quick Wins
+3Highest ROI — low effort, high impact
- · 2 image-in-link without alt text
- · 5 link(s) with no accessible text
- · 6 button(s) with no accessible text
Sprint 2: Core Fixes
+1Medium effort, high structural impact
- · 3 image(s) missing alt attribute
- · 23 `@font-face` rule(s) without `font-display` -- causes FOIT


