Regressed: was passing, now failing
- Navigation promotes pages that earn money
Website audit report
1 critical and 4 high-severity issues found across 143 checks.
Scanned 2026-08-27T05:18:30+00:00 · 4 host IPs · cert expires in 83 days
This report is not offered to search engines. It is reachable by link only. If you own bouncezero.io you can publish or delete it.
A few checks regressed since the last audit. None are critical, but they were passing before. Score 0 unchanged.
Measured against every site SEOking has audited: a corpus that grows with each scan and cannot be reconstructed after the fact.
86th percentile of 28 sites audited. The average site scores 72, the median 69.
The page fits the screen
88% of the sites we have audited get this right and yours does not. Of everything on this report, it is the fault that most sets you apart from your competition, which makes it the first thing worth fixing.
Our own measure of whether your domain is trusted by the systems that decide if mail reaches an inbox. No other website audit reports this. It is built from BounceZero's deliverability platform.
Your domain is configured the way the top tier of senders are.
A high share of addresses we have tested at this domain hard-bounced. Mailbox quality at your domain ranks in the 22nd percentile of domains we have verified enough addresses at to judge.
First measured 2026-07-16.
Loaded in a real browser at phone size. This is close to what a visitor and Google's renderer see.

Oldest on the left. Every re-run is kept.
The 20 faults on this report come from 11 underlying causes. Fixing a cause fixes everything under it, so this is ordered by score returned per unit of work, not by severity alone.
The 4 quickest steps here take you from 86 to about 88. That is 2 points for changes measured in minutes and hours, not weeks.
One block of structured data in your site template carries all of these. It is what map and 'near me' results are assembled from.
Fixes 6 findings: Business marked up as a local business · Postal address is machine-readable · Opening hours are published · Review rating marked up · Geo coordinates published · Map or directions link present
A subdomain pointing at a service that released it can be claimed by anyone, who then publishes on your domain. Deleting the record costs nothing and closes it immediately.
Fixes 1 finding: No lookalike domain can send mail as your brand
These do not share a root cause with anything else on the report.
Fixes 3 findings: Title is the same before and after JavaScript · No phrase is repeated unnaturally · The writing is readable
Google indexes the mobile version of your site, and these are measured in a real phone-sized browser rather than inferred. A page that scrolls sideways or needs pinching to read loses the visitor before the content matters.
Fixes 2 findings: The page fits the screen · Tap targets are big enough to hit
Resilience and reputation work — lower urgency, but cheap while you are already in these systems.
Fixes 1 finding: No JavaScript errors on load
Internal links decide which of your pages search engines treat as important, and the decision is usually an accident of navigation design. It costs nothing to change and it changes what ranks.
Fixes 1 finding: Navigation promotes pages that earn money
All set in the same place — your web server or CDN. Half of them are single lines.
Fixes 1 finding: Cookies are protected
Images are what Largest Contentful Paint usually measures, and WebP is typically a third smaller than the same JPEG. On image-led pages this is the largest saving available.
Fixes 2 findings: Images use a modern format · Images are sized for the device
A growing share of questions are answered without a results page. Being quotable is a distribution channel, and it is usually blocked by a plugin default rather than a decision.
Fixes 1 finding: A curated summary is published for assistants
Image and script weight drive every speed metric you are failing. This is the slowest fix here and the one with the longest tail.
Fixes 1 finding: Images declare width and height
A canonical or noindex injected at runtime silently overrides what the server said, and the served HTML still looks correct to anyone reading the source.
Fixes 1 finding: The title survives rendering
Ranked by severity, then by how much score each returns.
No LocalBusiness structured data anywhere on the site. Google builds map and 'near me' results from this markup — without it you are relying entirely on your Google Business Profile and third-party directories to be found locally.
Treated as a local business because we found: a postal address; a phone number linked for tapping
How to fix: Add LocalBusiness JSON-LD with name, address, phone, opening hours and geo coordinates.
Reference: schema.org/LocalBusiness
An address appears in the page text but is not marked up, so Google has to guess at it.
How to fix: Add a PostalAddress block inside your LocalBusiness markup.
We generated and checked 60 plausible misspellings and variants of your domain. 1 of the 2 registered variants has mail servers configured, so it is technically able to send email that reads as yours to anyone skimming a sender address. Many such domains are entirely unrelated businesses that happen to have a similar name — this is a risk to be aware of and to defend against, not evidence that anyone is doing anything.
bouncezero.net [mail configured] bouncezero.com
How to fix: Publish DMARC at enforcement so mail claiming to be your domain is rejected outright — that is the defence that works regardless of who owns a lookalike. Then register the closest unregistered variants; they cost a few pounds a year and are the cheapest brand protection available.
No opening hours in structured data. Google shows 'Open now' and 'Closes soon' directly in results — without this markup you never qualify for it, and customers can't tell whether to travel to you.
How to fix: Add openingHoursSpecification covering every day of the week.
Content overflows the mobile viewport by 66 pixels, so the page scrolls sideways. It is one of the most visible signs of a broken mobile layout, and Google indexes the mobile version of your site.
scrollWidth exceeds viewport by 66px at 390px wide
How to fix: Find the element wider than the viewport — usually a fixed-width table, image or embed — and constrain it with max-width: 100%.
Whether the connection, certificate and headers hold up.
Cookies are set without the Secure and/or HttpOnly flags, so they can be read by scripts or sent over insecure connections.
_bz_vid=3fdcf74e-e286-45e3-990c-ce60201b94ff; expires=Sat, 26 Aug 2028 05:18:23 GMT; Max-Age=63072000; path=/; domain=.bouncezero.io; secure; SameSite=Lax
Add Secure, HttpOnly and SameSite to every cookie you set.
Secure connection working.
Plain HTTP requests are redirected to the secure version.
All resources load securely.
Certificate valid for another 83 days (expires 2026-11-18).
Negotiated TLSv1.3.
HSTS is set.
Content Security Policy is set.
MIME sniffing protection is set.
Clickjacking protection is set.
Referrer policy is set.
Whether your mail reaches inboxes or spam folders.
DKIM keys published on selector(s): mail.
1 mail server(s) configured.
Ends in -all (hard fail) — the strictest setting.
The record forces about 1 DNS lookups. Comfortably within the limit of 10.
Aggregate reports are being sent to a reporting address.
One SPF record, as required.
DMARC policy is p=reject.
MTA-STS is published, requiring encrypted delivery.
TLS-RPT configured.
BIMI record present — your logo can appear beside your emails.
How fast real visitors experience the site.
10 of 29 images declare dimensions. Images without dimensions cause the page to jump as they load, which is what Cumulative Layout Shift measures.
Set width and height attributes on every image.
All 14 image(s) are JPEG or PNG, with no WebP or AVIF alternative. WebP is typically 25-35% smaller at the same quality and is supported by every current browser — on image-led pages this is usually the single largest saving available, and images are what Largest Contentful Paint measures.
/video-poster.jpg, /img/csa-star-badge-official.png, /img/csa-star-badge-official.png, https://cdn.bouncezero.io/img/csa-star-badge-official.png
Serve WebP or AVIF with a <picture> element falling back to the original, or enable automatic conversion at your CDN.
0 of 87 image(s) provide a srcset. Without one, a phone downloads the full desktop image and then scales it down — paying for pixels it never shows.
Add srcset and sizes so each device downloads an appropriate image.
Not available: PageSpeed API returned 429. This usually means the site does not yet have enough Chrome traffic for Google to report field data. Lab measurements below still apply.
Served with gzip compression.
Median response across 12 page(s) was 108 ms.
Homepage HTML is 373 KB.
8 external script file(s) on the homepage.
Pages may be cached by browsers and CDNs.
18 of 29 images use lazy loading.
The tags, files and signals search engines read first.
No /llms.txt. It is a short, plain-text map of what a site is and which pages matter — a convention some assistants read to decide what to quote, and cheap to publish. It is not yet a standard anyone is obliged to honour, so treat it as a low-cost bet rather than a requirement.
Publish /llms.txt: a heading, one paragraph describing the business, and a linked list of your most important pages.
Not measured — not configured on this instance. Connecting Search Console adds what no crawl can see: the queries this site already appears for, where it ranks, and how many people click. It is read-only and can be disconnected at any time.
Not measured — ranking data is not configured on this instance.
Homepage is open to indexing.
Mobile viewport is declared.
Title is 61 characters.
Sitemap found listing 362 URLs.
Description is 165 characters.
Canonical points at this page.
Structured data found: Answer, BreadcrumbList, ContactPoint, DefinedTerm, DefinedTermSet, FAQPage, ImageObject, ListItem.
robots.txt present and open to search engines. 1 named crawler(s) are blocked, which is a deliberate choice rather than a fault.
Every canonical points at a page that is allowed to be indexed.
Every hreflang reference is reciprocated by the page it names.
Canonical targets all return 200.
No page is both listed in the sitemap and marked noindex.
All structured data blocks are valid JSON.
No page relies on a directive Google is blocked from reading.
Every hreflang value is a valid language or language-region code.
Every marked-up entity carries the properties Google requires.
12 of 12 crawled page(s) (100%) can actually be indexed.
Every page with hreflang annotations includes itself.
Every hreflang target is a live, indexable page.
Identified as Organization, Person.
No canonical points at a page that then canonicals somewhere else.
Every sitemap URL is its own canonical.
All structured data is present in the HTML the server sends.
Every major assistant is allowed to read and cite these pages.
BreadcrumbList markup is present.
Every crawled page sits within four levels of the homepage (deepest: 2).
9 Open Graph tags found.
An x-default version is declared for visitors whose language matches none of your versions.
URLs use lowercase, hyphenated, extension-free paths.
0 of 12 crawled URLs carry query parameters other than tracking tags.
Language attribute present.
WebSite markup is present.
4 twitter: tag(s) found.
224 structured data object(s) across 12 page(s): Answer, Blog, BlogPosting, BreadcrumbList, ContactPoint, DefinedTerm, DefinedTermSet, FAQPage, ImageObject, ListItem, and others.
No model-training crawler is blocked, so this content may be used to train future models. This is a business decision rather than an SEO one, and it is separate from being cited in answers: refusing training does not remove you from AI results, and allowing it does not put you in them.
Whether pages are unique, linked and crawlable.
89 link(s) appear on nearly every page — the site-wide navigation, which is where most internal authority is allocated. 4 of them point at legal, account or administrative pages, and 1 of those sits among the eight best-linked pages on the site — level with, or above, the pages you sell from. Nobody decides this: a crawler counts every footer link as an endorsement repeated on every page, while visitors ignore footers. Those pages must exist and should not be among the best-linked things you publish.
bouncezero.io/privacy 0.6% [utility] bouncezero.io/ 0.6% bouncezero.io/integrations-docs 0.6% bouncezero.io/pricing 0.6% bouncezero.io/tools 0.6% bouncezero.io/docs 0.6% bouncezero.io/blog 0.6% bouncezero.io/about 0.6%
1 phrase(s) make up more than 5% of a page's own words. Repetition at that level reads badly to a person and has not helped rankings in over a decade — it is now a signal in the wrong direction. Every page of this type that was checked has this fault, and your sitemap lists 2 pages built from the same template (/vi) — so this is most likely one template fix affecting up to 2 pages, not 1.
"kh ng" is 10% of the page https://bouncezero.io/vi
Write the phrase once where it belongs and use natural variations elsewhere.
Median reading ease is 43.5 — difficult. 4 page(s) score below 40, which is the range of academic and legal writing. That is correct for a terms page and costly on anything meant to sell, because the reader who bounces was the one who arrived.
-1.2 (very difficult) https://bouncezero.io/id 24.1 (very difficult) https://bouncezero.io/about 32.7 (difficult) https://bouncezero.io/es 33.7 (difficult) https://bouncezero.io/ 43.0 (difficult) https://bouncezero.io/de
Shorter sentences and plainer words in the pages that convert. Legal pages can stay as they are.
All 12 crawled pages have distinct titles.
Across 12 page(s), the median page is 54% its own content and the rest navigation, footer and legal text.
All 12 crawled pages are reachable by internal links.
All 12 crawled pages carry substantial content.
0 of 12 crawled pages have no meta description.
0 of 87 images across the crawl have no alt attribute. Alt text is how search engines read images and how screen readers describe them.
Every crawled page carries at least three internal links, so navigation is consistently rendered.
No two crawled pages share substantially the same text.
All 12 crawled pages returned successfully.
No page answers 200 while telling the visitor nothing was found.
No two crawled pages appear to target the same subject.
Every page's body covers the subject its title and heading announce.
All 12 descriptions found are distinct.
Authorship is declared.
39 of 1996 internal link(s) use text like 'click here' or no text at all.
Every crawled page is linked from at least one other page.
An about or contact page is linked.
1 of 12 crawled pages declare a date; the most recent is 2026-06-08.
0 of 12 pages do not have exactly one H1 heading.
No multi-step redirects found.
Sitemap lists 354 URLs; we reached 12 by crawling. 342 sitemap URLs were not linked from the pages we visited.
Every crawled page links onward.
Pages receive 11.0 internal links on average across the crawl, with no single page absorbing most of them.
Publisher is declared in structured data.
Internal links concentrate authority on the pages below, in order. This is the site's own ranking of itself, derived from how it links — read it against what the business actually sells, because search engines read it the same way. Only the crawled sample is modelled, so this describes the navigation rather than every page.
The terms that distinguish each page from the others on this site — not the most frequent words, but the ones this page uses and the others do not. Read them as what a search engine would take the page to be about, and check that it matches what it is for.
What Google needs to place you in map results.
No LocalBusiness structured data anywhere on the site. Google builds map and 'near me' results from this markup — without it you are relying entirely on your Google Business Profile and third-party directories to be found locally.
Treated as a local business because we found: a postal address; a phone number linked for tapping
Add LocalBusiness JSON-LD with name, address, phone, opening hours and geo coordinates.
An address appears in the page text but is not marked up, so Google has to guess at it.
Add a PostalAddress block inside your LocalBusiness markup.
No opening hours in structured data. Google shows 'Open now' and 'Closes soon' directly in results — without this markup you never qualify for it, and customers can't tell whether to travel to you.
Add openingHoursSpecification covering every day of the week.
No review markup. Genuine customer reviews marked up correctly can show star ratings in search results, which materially lifts clicks.
Mark up genuine reviews with AggregateRating. Only mark up reviews that are real and visible on the same page — fabricated ratings breach both Google's policies and UK consumer law.
No geo coordinates, so Google places you by address lookup alone.
Add a GeoCoordinates block with latitude and longitude.
No map or directions link found. It reduces friction for anyone deciding whether you are convenient to reach.
Embed a map or link to your Google Business Profile on the contact page.
1 tap-to-call link(s) found.
Visitors have a clear way to make contact.
Telephone published in structured data.
2 social platform(s) linked from the site.
DNS, hosting and delivery configuration.
We generated and checked 60 plausible misspellings and variants of your domain. 1 of the 2 registered variants has mail servers configured, so it is technically able to send email that reads as yours to anyone skimming a sender address. Many such domains are entirely unrelated businesses that happen to have a similar name — this is a risk to be aware of and to defend against, not evidence that anyone is doing anything.
bouncezero.net [mail configured] bouncezero.com
Publish DMARC at enforcement so mail claiming to be your domain is rejected outright — that is the defence that works regardless of who owns a lookalike. Then register the closest unregistered variants; they cost a few pounds a year and are the cheapest brand protection available.
Not checked: the blocklists declined queries from this resolver, so reputation could not be confirmed either way. This is excluded from your score rather than guessed at.
Not measured — the certificate transparency log was unavailable (returned 502).
Not measured — no log file supplied. Server logs are the only source that shows what Googlebot actually fetched rather than what it could fetch: which pages it spends its crawl on, which it has never asked for, and what it receives when it does.
Not measured — no whole-site crawl has been run for this domain. The audit above reasons from a sample of pages chosen to cover each template, which describes how the site is built. It cannot say how many of the site's pages are indexable, which templates are thin across every instance, or what sits too deep to be crawled — those are counts, and a sample cannot produce one.
2 nameserver(s) configured.
Checked 0 subdomain(s); none point at a cloud service that has released them.
No filter, session or calendar URLs that would generate an unbounded space were found.
Every page was reached directly or in a single hop.
0 of 12 URL(s) followed during this crawl returned a redirect or an error (0%).
Your certificate covers only your own domain.
Every sitemap file is within the 50,000 URL and 50 MB limits.
362 of 362 sitemap URL(s) carry a lastmod date across 18 distinct value(s).
0 internal link(s) are marked nofollow.
DNSSEC is signing this zone.
CAA record present.
No version numbers advertised in response headers.
Served from AS13335 (CLOUDFLARENET - Cloudflare, Inc.), announced in 104.21.80.0/20 — a block of 4,096 addresses.
12 page(s) were examined, chosen to cover 11 of the 38 distinct page templates found across 362 known URLs. Pages are sampled by template rather than in sitemap order, because the first pages of a sitemap are usually all the same kind — a sample of one template would describe that template rather than the site. Findings below therefore apply to the templates listed, and a fault in a template is normally a fault on every page built from it.
Who links to this site, with what text, and how that compares.
Not measured — off-page data is not configured on this instance.
The site loaded in a real browser, the way a visitor and a crawler get it.
Content overflows the mobile viewport by 66 pixels, so the page scrolls sideways. It is one of the most visible signs of a broken mobile layout, and Google indexes the mobile version of your site.
scrollWidth exceeds viewport by 66px at 390px wide
Find the element wider than the viewport — usually a fixed-width table, image or embed — and constrain it with max-width: 100%.
1 JavaScript error(s) fire when the page loads. Broken scripts commonly break booking forms, menus and tracking without anything looking wrong.
[JavaScript Error: "Content-Security-Policy: The page’s settings blocked a script (script-src-elem) at https://public.profitwell.com/js/profitwell.js?auth=paddletoken_live_5b34a94dc7efad6038fba2fe660 from being executed
Open your browser's console on the live site and fix what it reports.
162 of 244 tappable element(s) are smaller than 48x48 pixels, and 2 sit closer than 8 pixels to a neighbour. On a phone that means links and buttons that are hard to hit without zooming, and mis-taps on a checkout or contact button cost conversions directly.
Skip to main content (1x1) BounceZero (142x28) Toggle menu (36x31) New - HubSpot native integration (230x44) Trustpilot Read current reviews (170x46)
Give tappable elements at least 48x48 CSS pixels and 8 pixels of spacing — usually padding on the link rather than a bigger font.
JavaScript rewrites the page title after load. Google usually indexes the served title, so the one you see in the browser may not be the one shown in search results.
served: Email Verification API & Bulk Email Verifier | BounceZero rendered: Email Verification API & Bulk Email Verifier | BounceZero
Set the final title server-side rather than changing it in script.
The title tag changes after JavaScript runs. Google usually indexes the rendered title, but rendering is queued separately and can lag the first crawl, so for a while the served title is what appears in results.
served: Email Verification API & Bulk Email Verifier | BounceZero rendered: Email Verification API & Bulk Email Verifier | BounceZero
Render the final title server-side.
The served HTML contains 3244 words and the rendered page 3264 — the content is present before JavaScript runs.
What the server sends a phone matches what it sends a desktop browser.
The canonical and robots directives are the same before and after JavaScript runs.
Measured 1.1s on a simulated phone viewport. Google's threshold for 'good' is 2.5s.
232 links in the served HTML, 228 after rendering — navigation is discoverable.
Cumulative Layout Shift measured at 0.000 (good is 0.1 or less).
Every image, script and stylesheet loaded.
0 long JavaScript task(s) blocked the main thread while loading.
50 of 500 text block(s) render below 12px on a mobile viewport.
The page made 31 network requests to load.
| Final URL | https://bouncezero.io/ |
|---|---|
| Host IPs | 104.21.88.217, 172.67.153.139, 2606:4700:3030::6815:58d9, 2606:4700:3032::ac43:998b |
| Pages crawled | 12 of 12 attempted |
| Sitemap URLs | 362 |
| Nameservers | gerardo.ns.cloudflare.com, stephane.ns.cloudflare.com |
| Mail servers | _dc-mx.15147542b7c6.bouncezero.io |
| DKIM selectors | |
| Mail server IPs | 51.89.137.79 |
| TLS | TLSv1.3 · TLS_AES_256_GCM_SHA384 · issued by Let's Encrypt |
| Detected stack | custom / Cloudflare / Cloudflare · Google Analytics 4, Meta Pixel |
| Browser render | Camoufox (stealth Firefox) · 5.4s · 3264 words, 228 links after JavaScript |
BounceZero Ltd does this work: technical remediation, local SEO and email deliverability. Tell us what you want fixed and we'll reply with what it takes. No call required, no obligation.
We re-audit on a schedule and email you only when a check that was passing starts failing. That is usually a recent change to the site or its DNS, and it is findable while still fresh. No digest, no newsletter.
Monitoring means repeatedly fetching your site and emailing about it, so we ask you to prove you own bouncezero.io first.