New Audit
History

Robbies

Ciao Bella of Islamorada Salon, Day Spa, Wellness and Yoga

https://ciaobellaislamorada.com/

Audited 2026-03-23

80

Overall

2 Critical 13 High 15 Medium 6 Low
We have completed a comprehensive audit of the website and identified several opportunities to improve both search engine visibility and the overall user experience. The most critical issues involve performance-related technical errors and accessibility barriers that directly impact how visitors interact with the site on mobile devices. I recommend we prioritize addressing these high-impact items immediately to ensure the site is fully optimized and accessible to all potential clients.
90
SEO
86
Performance
89
Accessibility
74
UI / Visual
66
Content
74
Technical

Screenshots

Desktop (1440px)

Desktop screenshot

Mobile (375px)

Mobile screenshot

SEO

2 high
high

Multiple H1 tags (2)

Found 2 H1 tags: "Voted The #1 Salon & Spa"; "Voted The #1 Salon & Spa". Confuses search engines about the page topic.

Keep only one H1 — the primary page heading. Remove or demote the others to H2.
high

Heading hierarchy skip

Heading jumps from H2 to H4: "Experience the power of the Gong in an intimate setting"

Use H3 instead of H4 here.

Performance

2 high 2 medium
high

5 render-blocking scripts

Scripts in <head> without async/defer block HTML parsing.

Add async or defer attributes to non-critical scripts.
high

25 images missing width/height attributes

Images without explicit dimensions cause Cumulative Layout Shift as they load.

Add width and height attributes to all <img> tags.
medium

TTFB is 442ms

TTFB is 442ms. Google recommends ≤200ms.

Optimize server, enable HTTP/2, use edge caching.
medium

25 images missing loading="lazy"

Images without native lazy loading: logo-blanco.png-1.webp, CiaoBella_Web_Home_award_BUK25.webp, CiaoBella_Web_Home_award_BUK25.webp…. The browser fetches all of them on page load regardless of whether they're visible.

Add loading="lazy" to non-hero <img> tags. Keep the first/hero image as-is (no loading attribute, or loading="eager") to avoid an LCP penalty.

Accessibility

2 high 1 low
high

58 interactive elements below 44×44px touch target size

WCAG 2.5.5 recommends at least 44×44px for touch targets.

Increase padding on small buttons and links.
high

1 video(s) without captions

Videos without captions are inaccessible to deaf and hard-of-hearing users. WCAG 1.2.2.

Add <track kind='captions'> to all video elements.
low

axe-core could not run

axe-core injection failed: Page.evaluate() got an unexpected keyword argument 'timeout'. May be blocked by CSP.

Test accessibility manually or via Chrome DevTools.

UI / Visual

3 high 5 medium 1 low
high

Horizontal overflow on mobile (375px)

Content overflows the viewport horizontally on mobile. This causes unwanted horizontal scrolling.

Fix CSS to prevent overflow: check for fixed widths, max-width on containers, and overflow:hidden on body.
high

[Visual] Mobile Responsiveness

The mobile navigation menu (in the second screenshot) displays an extremely cluttered and poorly organized drop-down list. Elements like 'PRICE LIST' and 'PACKAGES' are cramped, and the overall vertical stacking is chaotic, detracting from the user experience.

Implement a proper hamburger menu component that collapses these items into an accordian or a clean, drawer-style navigation menu rather than just stacking them vertically in plain text.
high

[Visual] Visual Hierarchy

In the desktop screenshot, the 'GONG SOUND IMMERSION' section has a CTA button ('BOOK NOW') that is visually isolated from the descriptive text because it is pushed to the far bottom, while the image takes up the right column. There is a lack of cohesive grouping between content and action.

Tighten the vertical spacing between the event description text and the button. Group the header, paragraph, bullet points, and CTA button into a single flex container without excessive gaps.
medium

No favicon

No <link rel='icon'> found.

Add a favicon.ico and link it in <head>.
medium

Body text below 16px (13 elements)

Many text elements are smaller than the recommended 16px minimum.

Set base font-size to 16px for body content.
medium

[Visual] Layout & Spacing

In the desktop View, the 'Featured Spa Services' section displays four card images with inconsistent negative space. The text labels 'SKINCARE TREATMENTS', etc., have varying border padding, making the row look visually unstable.

Apply a uniform grid system (e.g., CSS Grid with fixed gaps) and equal heights for all service cards and uniform padding for the button-link elements below the images.
medium

[Visual] Typography

The 'Current schedule' section on desktop uses a very wide text block for the description paragraph below the header. The line length exceeds the recommended 60-75 character count for optimal readability.

Constrain the width of the paragraph text container using 'max-width: 600px;' or similar and center it to improve readability.
medium

[Visual] Professionalism

The 'Featured' section header is extremely small and lacks the visual weight required to introduce a primary content block. It gets lost compared to the subheaders in the service section.

Increase the font size and font weight for the 'FEATURED' section title to create a clear section break and hierarchy.
low

[Visual] Color & Branding

The logo in both mobile and desktop views is quite small and low-contrast against the complex background image in the hero section, making it feel slightly washed out.

Adjust the background overlay opacity (e.g., 'background: rgba(0,0,0,0.3);') or add a subtle drop shadow to the logo to ensure it maintains brand legibility regardless of the background imagery.

Content

1 critical 3 high 4 medium 1 low
critical

[Content] Placeholder Text

The header contains a broken sentence with a missing link/action call.

"Gong Sound Immersion: Every 3rd Saturday at 10:30 AM. to Book."

Change to: 'Gong Sound Immersion: Every 3rd Saturday at 10:30 AM. <a href='/booking-link'>Click here to book</a>.'
high

9 broken external link(s)

Links returning errors: ciaobellaspa.zenoti.com, ciaobellaspa.zenoti.com, ciaobellaspa.zenoti.com…

Fix or remove broken external links.
high

[Content] Grammar & Spelling

Incorrect sentence structure regarding the wellness work description.

"Our work in this session: Through vibrational-medicine we will work"

Change to: 'Wellness Session: Through vibrational medicine, we work to remove and clear blockages—often the underlying cause of physical illness.'
high

9 image(s) with generic or missing alt text

Images with uninformative alt text (filenames, 'image', 'photo', or empty): cropped-ciaobella.png, logo-blanco.png-1.webp, CiaoBella_Banner_EventoFeb21_web.we…

Write a natural-language description for each: what the image shows and why it's there (e.g. 'Relaxation massage room at Ciao Bella spa').
medium

[Content] Grammar & Spelling

Non-standard punctuation usage and unnecessary 'etcetera' at the end of a list.

"nervous systems, lymphatic systems, etcetera."

Change to: 'nervous, and lymphatic systems.'
medium

[Content] Professionalism

Inconsistent capitalization of common nouns ('Beauty', 'Oceanside', 'Conscious Community') reduces brand authority.

"the House of Beauty holds space Oceanside"

Change to: 'the house of beauty holds space oceanside' or ensure only proper nouns are capitalized throughout.
medium

[Content] Calls To Action

Multiple redundant CTA buttons appear on the same page without clear secondary/primary hierarchy.

"BOOK ONLINE / BOOK NOW / SCHEDULE AN APPOINTMENT"

Standardize all booking CTAs to one consistent label (e.g., 'Book Now') to avoid user confusion.
medium

18 image(s) with keyword-stuffed alt text

Alt text used as a keyword list rather than a description: svg+xml;nitro-empty-id=MTMzNDo4NTM=, svg+xml;nitro-empty-id=MTM0Njo4ODE=, svg+xml;nitro-empty-id=MTM1ODo4NjM=…

Replace with one natural sentence describing what the image shows. Avoid cramming in keywords.
low

[Content] Professionalism

Repetitive use of 'YOU' in all caps feels aggressive rather than welcoming.

"our yoga therapists will guide YOU in discovering a more flexible, stronger, and healed YOU."

Change to: 'Our yoga therapists will guide you in discovering a more flexible, stronger, and healed version of yourself.'

Technical

1 critical 1 high 4 medium 3 low
critical

Missing HSTS header

The HSTS HTTP response header is not set.

Add to your server/CDN/nginx config: Strict-Transport-Security: max-age=31536000; includeSubDomains
high

Missing X-Content-Type-Options header

The X-Content-Type-Options HTTP response header is not set.

Add to your server/CDN/nginx config: X-Content-Type-Options: nosniff
medium

Missing X-Frame-Options header

The X-Frame-Options HTTP response header is not set.

Add to your server/CDN/nginx config: X-Frame-Options: SAMEORIGIN
medium

Missing Content-Security-Policy header

The Content-Security-Policy HTTP response header is not set.

Add to your server/CDN/nginx config: Content-Security-Policy: default-src 'self'; img-src * data:; script-src 'self' (customize per stack)
medium

1 cookie(s) missing Secure flag

Cookies without Secure flag can be sent over HTTP: nitroCachedPage

Add the Secure attribute to all cookies on HTTPS sites.
medium

1 cookie(s) missing HttpOnly flag

Cookies accessible via JavaScript: nitroCachedPage. XSS can steal them.

Add HttpOnly attribute to session and auth cookies.
low

Missing Referrer-Policy header

The Referrer-Policy HTTP response header is not set.

Add to your server/CDN/nginx config: Referrer-Policy: strict-origin-when-cross-origin
low

Missing Permissions-Policy header

The Permissions-Policy HTTP response header is not set.

Add to your server/CDN/nginx config: Permissions-Policy: camera=(), microphone=(), geolocation=()
low

4 cookie(s) missing SameSite attribute

Cookies without SameSite may be sent on cross-site requests: __cf_bm, __cf_bm, __cf_bm

Set SameSite=Lax or Strict on all cookies.
New Audit Robbies History

Add to Asana