Audit Result

UUID: 019e355f-93fc-702a-8f4f-8c141f8d4ccb

bonnie.ai

https://bonnie.ai/

Scanned 3 months ago

76
Fair Score
39 total checks
Passed
23
Warnings
13
Errors
3

Meta Information

  • Title Tag Pass

    Found 51 characters. Length is optimal.

  • Found 113 characters. Good snippet length.

  • Canonical found: https://bonnie.ai/

  • Favicon Pass

    Favicon found and reachable: https://bonnie.ai/wp-content/uploads/2025/12/favicon.svg (HTTP 200).

    Favicon
  • Viewport configured: width=device-width, initial-scale=1, maximum-scale=1

  • HTML Lang Pass

    Language declared as "en-US".

Content Structure

  • H1 Tag Pass

    Exactly one H1 found: "The AI host that keeps your business available.".

  • Detected 1 heading level jumps.

    • • Skipped from h2 to h4: "Answer every call. Even when you can’t." -> "Join our newsletter".

    Fix: Follow semantic order (h1 -> h2 -> h3) and avoid skipping heading levels.

  • 10 of 73 images are missing alt text.

    Fix: Add meaningful alt attributes to all informative images for accessibility and image SEO.

Technical Optimization

  • HTTPS Pass

    Page is served over HTTPS.

  • 2 HTTPS hardening issues detected.

    • • Missing Strict-Transport-Security header.
    • • Could not probe the HTTP version of this page.

    Fix: Set Strict-Transport-Security with a long max-age, add includeSubDomains, and redirect all HTTP requests to HTTPS.

  • Missing: strict-transport-security, content-security-policy, x-frame-options, x-content-type-options, referrer-policy.

    Full HTTP headers (11)
    • • content-encoding: br
    • • content-type: text/html; charset=UTF-8
    • • date: Sun, 17 May 2026 09:58:17 GMT
    • • host-header: 6b7412fb82ca5edfd0917e3957f05d89
    • • link: <https://bonnie.ai/wp-json/>; rel="https://api.w.org/" <https://bonnie.ai/wp-json/wp/v2/pages/2>; rel="alternate"; title="JSON"; type="application/json" <https://bonnie.ai/>; rel=shortlink
    • • permissions-policy: private-state-token-redemption=(self "https://www.google.com" "https://www.gstatic.com" "https://recaptcha.net" "https://challenges.cloudflare.com" "https://hcaptcha.com"), private-state-token-issuance=(self "https://www.google.com" "https://www.gstatic.com" "https://recaptcha.net" "https://challenges.cloudflare.com" "https://hcaptcha.com")
    • • server: nginx
    • • vary: Accept-Encoding
    • • x-httpd-modphp: 1
    • • x-proxy-cache: MISS
    • • x-proxy-cache-info: 0 NC:000000 UP:SKIP_CACHE_SET_COOKIE

    Fix: Add the missing security headers at your reverse proxy or application layer.

  • CSP Quality Warning

    Content-Security-Policy header is missing.

    • • Missing Content-Security-Policy header.

    Fix: Define a restrictive Content-Security-Policy and avoid unsafe directives such as unsafe-inline and unsafe-eval.

  • No first-party cookies were set during the initial page load.

  • Server response headers do not expose version tokens.

  • Domain does not appear to be behind Cloudflare.

  • Loaded in 1.87s (perceived).

    Fix: Reduce payload size, cache static assets, and remove non-critical JS from initial load.

  • 10 scripts and 34 styles may block rendering.

    • • script: https://js-eu1.hs-scripts.com/143915986.js
    • • script: https://js-eu1.hs-banner.com/v2/143915986/banner.js
    • • script: https://js-eu1.hs-analytics.net/analytics/1779006600000/143915986.js
    • • script: https://js-eu1.hscollectedforms.net/collectedforms.js
    • • script: https://bonnie.ai/wp-includes/js/jquery/jquery.min.js?ver=3.7.1
    • • script: https://bonnie.ai/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1
    • • script: https://bonnie.ai/wp-content/plugins/handl-utm-grabber/js/js.cookie.js?ver=6.9.4
    • • script: https://bonnie.ai/wp-content/plugins/handl-utm-grabber/js/handl-utm-grabber.js?ver=6.9.4
    • • script: https://bonnie.ai/wp-content/plugins/translatepress-multilingual/assets/js/trp-frontend-language-switcher.js?ver=3.1.9
    • • script: https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/intlTelInput.min.js
    • • style: https://bonnie.ai/wp-content/plugins/fluentform/assets/css/fluent-forms-elementor-widget.css?ver=6.2.2
    • • style: https://bonnie.ai/wp-content/plugins/wp-job-openings/assets/css/general.min.css?ver=4.0.0
    • • style: https://bonnie.ai/wp-content/plugins/wp-job-openings/assets/css/style.min.css?ver=4.0.0
    • • style: https://bonnie.ai/wp-content/themes/hello-elementor/assets/css/reset.css?ver=3.4.7
    • • style: https://bonnie.ai/wp-content/themes/hello-elementor/assets/css/theme.css?ver=3.4.7
    • • style: https://bonnie.ai/wp-content/themes/hello-elementor/assets/css/header-footer.css?ver=3.4.7
    • • style: https://bonnie.ai/wp-content/themes/hello-elementor-child/style.css?ver=6.9.4
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/uploads/elementor/css/post-8.css?ver=1778997567
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/widget-icon-box.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor-pro/assets/css/widget-mega-menu.min.css?ver=4.0.4
    • • style: https://bonnie.ai/wp-content/plugins/elementor-pro/assets/css/modules/sticky.min.css?ver=4.0.4
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/lib/animations/styles/fadeInUp.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/widget-icon-list.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/widget-social-icons.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/conditionals/apple-webkit.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/widget-image-gallery.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/lib/animations/styles/slideInUp.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/lib/swiper/v8/css/swiper.min.css?ver=8.4.5
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/conditionals/e-swiper.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor-pro/assets/css/widget-nested-carousel.min.css?ver=4.0.4
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/widget-nested-tabs.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/plugins/elementor/assets/css/widget-image-box.min.css?ver=4.0.8
    • • style: https://bonnie.ai/wp-content/uploads/elementor/css/post-2.css?ver=1778997568
    • • style: https://bonnie.ai/wp-content/uploads/elementor/css/post-18.css?ver=1778997569
    • • style: https://bonnie.ai/wp-content/uploads/elementor/css/post-304.css?ver=1778997569
    • • style: https://bonnie.ai/wp-content/plugins/translatepress-multilingual/assets/css/trp-language-switcher-v2.css?ver=3.1.9
    • • style: https://bonnie.ai/wp-content/plugins/pro-pack-for-wp-job-openings/assets/css/flatpickr.min.css?ver=4.6.9
    • • style: https://bonnie.ai/wp-content/plugins/pro-pack-for-wp-job-openings/assets/css/intlTelInput.min.css?ver=17.0.16
    • • style: https://bonnie.ai/wp-content/plugins/pro-pack-for-wp-job-openings/assets/css/style.min.css?ver=3.4.5
    • • style: https://fonts.googleapis.com/css?family=Inter:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&display=swap
    • • style: https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/css/intlTelInput.css

    Fix: Defer non-critical scripts and inline critical CSS to improve first paint speed.

  • Compression Warning

    4 text resources look uncompressed.

    • • https://tag.trovo-tag.com/ldc.js?pid=fCs6bbqraywwiljw&aid=123103c7 (application/javascript)
    • • blob:https://bonnie.ai/f4e0b19e-5914-4d2d-a039-3218fbc8e85f (text/javascript)
    • • https://cdn-cookieyes.com/client_data/e8755cd644c9542fb7919a6c/BpyfSdfh.json (application/json)
    • • https://tag.trovo-tag.com/fCs6bbqraywwiljw?rurl=https%3A%2F%2Fbonnie.ai%2F&ref=&v=js-0.1.0&aid=123103c7&rid=d076f44a-dfdc-400c-add7-e810401437e5 (text/html)

    Fix: Enable Brotli or Gzip compression for HTML, CSS, JS, and JSON responses.

  • Robots.txt Pass

    Found robots.txt (200).

  • Found sitemap (200) at https://bonnie.ai/sitemap_index.xml.

  • Robots meta found: index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1

Accessibility Basics

  • Form Labels Error

    3 of 11 controls are missing labels.

    • • input[type="tel"]#ff_3_phone.ff-el-form-control.ff-el-phone (phone)
    • • input[type="email"]#ff_2_5_email.ff-el-form-control (email)
    • • input[type="tel"]#bonnie-phone (bonnie-phone)

    Fix: Associate each form control with a visible label, aria-label, or aria-labelledby.

  • Landmarks Pass

    Header, nav, main, and footer landmarks are present.

  • Tap Target Size Warning

    23 interactive elements appear smaller than 48px.

    • • a.skip-link.screen-reader-text (Skip to content) - 1x1px
    • • a - 96x26px
    • • a.e-n-menu-title-container.e-focus (Business types) - 117x24px
    • • button#e-n-menu-dropdown-icon-2091.e-n-menu-dropdown-icon.e-focus (Close Business types Open Business types) - 16x24px
    • • a.e-n-menu-title-container.e-focus (Product) - 60x24px
    • • a.e-n-menu-title-container.e-focus (Pricing) - 53x24px
    • • a.e-n-menu-title-container.e-focus (Resources) - 81x24px
    • • button#e-n-menu-dropdown-icon-2094.e-n-menu-dropdown-icon.e-focus (Close Resources Open Resources) - 16x24px
    • • a.e-n-menu-title-container.e-focus (Company) - 74x24px
    • • button#e-n-menu-dropdown-icon-2095.e-n-menu-dropdown-icon.e-focus (Close Company Open Company) - 16x24px
    • • a.elementor-button.elementor-button-link (Try Bonnie for free) - 185x40px
    • • a.elementor-button.elementor-button-link (Get a call from Bonnie) - 208x40px
    • • a.elementor-button.elementor-button-link (Learn more) - 135x40px
    • • button.iti__selected-country (Selected country) - 44x46px
    • • button#e-n-tab-title-2289220901.e-n-tab-title (Restaurants) - 117x44px
    • • button#e-n-tab-title-2289220902.e-n-tab-title (Hotels) - 74x44px
    • • button#e-n-tab-title-2289220903.e-n-tab-title (Local Businesses) - 158x44px
    • • a.elementor-button.elementor-size-sm (+15% on avg) - 129x31px
    • • a.elementor-button.elementor-button-link (Learn more about restaurants) - 263x40px
    • • a.elementor-button.elementor-button-link (Learn more) - 108x24px
    • • a.elementor-button.elementor-button-link (Learn more) - 108x24px
    • • a.elementor-button.elementor-button-link (Learn more) - 108x24px
    • • a.elementor-button.elementor-button-link (Learn more) - 108x24px

    Fix: Increase target size to at least 48x48 CSS pixels for touch interactions.

Social & Rich Results

  • Core Open Graph tags are present.

  • og:image is present and absolute.

    Open Graph Image
  • twitter:card set to summary_large_image.

  • JSON-LD schema detected.

  • PWA Metadata Warning

    Manifest or Apple touch icon is missing.

    Fix: Link your web app manifest and apple-touch-icon for improved install/share experiences.

  • 1 social preview quality issues detected.

    • • ISSUE: Failed to fetch preview image: network error.
    • • GUIDELINE: Optimal og:title length: 40-60 characters (acceptable: 10-70).
    • • GUIDELINE: Optimal og:description length: 110-160 characters (acceptable: 50-200).
    • • GUIDELINE: Optimal preview image size: 1200x630 pixels.
    • • GUIDELINE: Optimal preview image aspect ratio: 1.91:1.
    • • GUIDELINE: Optimal preview image file size: under 5 MB.
    • • GUIDELINE: Recommended twitter:card: summary_large_image.

    Fix: Use absolute OG/Twitter URLs, keep metadata lengths in recommended ranges, and provide a preview image near 1200x630 under 5MB.

Links Analysis

  • Checked 28 links. No broken internal links found.

  • No broken external links found in checked URLs.

  • Link Format Warning

    73 links are empty, invalid, or placeholder-only.

    • • href="#" text="Business types"
    • • href="#" text="Resources"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="FAQ"
    • • href="#" text="Company"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="News"
    • • href="#" text="Business types"
    • • href="#" text="Resources"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="FAQ"
    • • href="#" text="Company"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="News"
    • • href="#" text="Get a call from Bonnie"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="Sounds like a real person"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="Answers the phone 24/7"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="WhatsApp follow-ups"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="Personalised dashboard"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="Sounds like a real person"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="Answers the phone 24/7"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="WhatsApp follow-ups"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#"
    • • href="#" text="Personalised dashboard"
    • • href="#" text="Learn more"
    • • href="(empty)" text="+15% on avg"
    • • href="#" text="+20% on avg"
    • • href="#" text="+15% on avg"
    • • href="#" text="Try Bonnie"
    • • href="#" text="Testimonials"

    Fix: Replace empty/#/javascript href values with real destinations or use buttons for non-navigation actions.

Performance & Runtime

  • Largest Contentful Paint: 2.22s.

  • Cumulative Layout Shift: 0.006.

  • Total Blocking Time estimate: 24ms.

  • 1 asset requests failed.

    • • https://a.remarketstats.com/px/smart/?c=24d1add2443e239&type=img&partner_id=fCs6bbqraywwiljw&partner_rid=d076f44a-dfdc-400c-add7-e810401437e5 (net::ERR_BLOCKED_BY_ORB)

    Fix: Fix missing files, update asset URLs, and ensure static assets return HTTP 200.

  • 8 JavaScript runtime issues detected.

    • • Request failed: https://wvbknd.leadsy.ai/v1/website-visitors/test (HTTP 400, type: fetch)
    • • Request failed: https://analytics.google.com/g/collect?a=adblocker_check (net::ERR_ABORTED, type: fetch)
    • • Request failed: https://cdn-cookieyes.com/client_data/e8755cd644c9542fb7919a6c/config/5-K1ZqfG.json (net::ERR_FAILED, type: fetch)
    • • Failed to load resource: the server responded with a status of 400 () [https://wvbknd.leadsy.ai/v1/website-visitors/test:1]
    • • Access to fetch at 'https://cdn-cookieyes.com/client_data/e8755cd644c9542fb7919a6c/config/5-K1ZqfG.json' from origin 'https://bonnie.ai' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. [https://bonnie.ai/:1]
    • • Failed to load resource: net::ERR_FAILED [https://cdn-cookieyes.com/client_data/e8755cd644c9542fb7919a6c/config/5-K1ZqfG.json:1]
    • • TypeError: Failed to fetch at https://sst.bonnie.ai/7tu8ihsnbkmx.js?8=EQlWJTo%2BRSIiJSwyIz0vTw5QWUxfVQwHRQ8EDAAaDUcZBA%3D%3D:1:672 at https://sst.bonnie.ai/7tu8ihsnbkmx.js?8=EQlWJTo%2BRSIiJSwyIz0vTw5QWUxfVQwHRQ8EDAAaDUcZBA%3D%3D:883:628 at window.fetch (<anonymous>:1:396) at c (https://cdn-cookieyes.com/client_data/e8755cd644c9542fb7919a6c/banner.js:1:1197) at se (https://cdn-cookieyes.com/client_data/e8755cd644c9542fb7919a6c/banner.js:1:22658) at le (https://cdn-cookieyes.com/client_data/e8755cd644c9542fb7919a6c/banner.js:1:24203) [https://cdn-cookieyes.com/client_data/e8755cd644c9542fb7919a6c/banner.js:1]
    • • undefined

    Fix: Fix JS files returning 404/failed requests and resolve the listed runtime exceptions.