The current website audit shows significant room for improvement, as several technical and accessibility issues are impacting the site’s performance and user experience. The most pressing concerns include improper heading structures, render-blocking scripts that slow down page loads, and numerous navigation elements that are too small for users on mobile devices. We recommend prioritizing these critical and high-priority fixes immediately to improve your search engine rankings and ensure a seamless experience for your clients.
90
SEO
88
Performance
89
Accessibility
70
UI / Visual
71
Content
64
Technical
Screenshots
Desktop (1440px)
Mobile (375px)
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 high1 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
31 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 high1 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 failed: 'Page' object has no attribute 'default_timeout'. May be blocked by CSP or page too complex.
Test accessibility manually or via Chrome DevTools.
UI / Visual
1 critical2 high4 medium2 low
critical
[Visual] Mobile Responsiveness
The mobile navigation menu is completely broken, overlapping the site logo and obscuring the main content heading in the mobile screenshot.
Implement a proper mobile hamburger menu pattern. Move links into a hidden off-canvas drawer that opens on click, rather than displaying all links as a block element over the hero section.
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] Layout & Spacing
The 'Contact Us' section is abnormally large and empty, featuring a massive void of whitespace between the content and the footer, making the site feel unfinished.
Reduce the top/bottom padding on the 'Contact Us' container. Use browser inspector (e.g., set padding-top: 40px to 'section' elements) to normalize vertical spacing across the page.
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] Visual Hierarchy
Multiple primary Call to Action (CTA) buttons have identical visual weights (Book Online vs. Call Us), preventing users from knowing which action is prioritized.
Assign a primary style to the 'Book Online' button (e.g., solid fill) and a secondary style to 'Call Us' (e.g., outline/ghost button) to guide user focus.
medium
[Visual] Typography
The text 'Gong Sound Immersion' in the mobile header is bleeding into other elements. Additionally, body text in the About section appears to be slightly below standard accessibility legibility thresholds.
Set 'font-size' to a minimum of 16px for body copy via CSS rules. Use 'overflow: hidden' or 'text-overflow: ellipsis' for the header container to prevent overlapping.
low
[Visual] Professionalism
The site uses low-resolution image placeholders for the 'Featured Spa Services' and 'Gallery' section, creating a blurry experience on high-DPI displays.
Replace all asset images with WebP versions optimized for high-DPI (Retina) screens. Ensure source images have a minimum width of at least double the container width.
low
[Visual] Color & Branding
The CTA button colors (teal/blue) are very similar to the background footer color, causing 'Call to Action' buttons to lose contrast in the footer area.
Apply a high-contrast hover state or a distinct background fill for the 'SCHEDULE AN APPOINTMENT' button in the footer to ensure it satisfies WCAG AA contrast requirements.
The header contains a broken sentence with a missing verb/instruction.
"Gong Sound Immersion: Every 3rd Saturday at 10:30 AM. to Book."
Change 'to Book.' to 'Click here to book your spot.'
high
[Content] Calls To Action
The page features identical 'BOOK ONLINE' buttons in close proximity without context for which service is being booked, causing friction.
"BOOK ONLINE"
Use descriptive labels for buttons: 'Book Gong Immersion', 'Book Yoga Class', 'Book Spa Services'.
high
8 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
Lack of parallel structure and unnecessary usage of 'etcetera' in professional copy.
"nervous systems, lymphatic systems, etcetera."
Change to: '...nervous system, and lymphatic system.'
medium
[Content] Professionalism
The phrasing 'vibrational-medicine' lacks medical backing and presents a potential liability; the sentence structure is also fragmented.
"Through vibrational-medicine we will work on removing and clearing blockages"
Rephrase to: 'Our sound immersion sessions focus on deep relaxation and facilitating a state of internal balance through soothing sound frequencies.'
medium
[Content] Professionalism
The copy 'Dedicated to the kings and queens of past times' is overly flowery and vague for a spa/boutique commerce site.
"Dedicated to the kings and queens of past times, they’ve made it onto our shelves"
Replace with a value-based sentence: 'We curate a selection of time-tested, high-quality apothecary products to bring timeless luxury to your self-care routine.'
medium
15 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
Inconsistent capitalization of the word 'You' creates an amateurish tone.
"We warmly welcome You to Bella’s Heartspace... guide YOU"
Change to: 'We warmly welcome you to Bella’s Heartspace... guide you'
Technical
1 critical3 high4 medium3 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
2 console error(s)
Browser console errors indicate broken functionality. First: Failed to load resource: the server responded with a status of 403 ()
Open Chrome DevTools (F12) > Console tab to see all errors with source URLs. Fix the root cause of each error — broken script loads, JS exceptions, or failed API calls.
Open Chrome DevTools > Network tab, filter by Status ≥ 400 to find all failing resources. Fix URLs, restore missing files, or remove unused references.
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
5 cookie(s) missing SameSite attribute
Cookies without SameSite may be sent on cross-site requests: __cf_bm, __cf_bm, cf_clearance
# QA Report: https://ciaobellaislamorada.com/
**Client:** Robbies
**Overall Score:** 79/100
**Date:** 2026-03-24
The current website audit shows significant room for improvement, as several technical and accessibility issues are impacting the site’s performance and user experience. The most pressing concerns include improper heading structures, render-blocking scripts that slow down page loads, and numerous navigation elements that are too small for users on mobile devices. We recommend prioritizing these critical and high-priority fixes immediately to improve your search engine rankings and ensure a seamless experience for your clients.
**Issues:** 2 critical · 15 high · 13 medium · 7 low
## SEO (90/100)
- **[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.
- Fix: 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"
- Fix: Use H3 instead of H4 here.
## Performance (88/100)
- **[HIGH]** 5 render-blocking scripts
- Scripts in <head> without async/defer block HTML parsing.
- Fix: 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.
- Fix: Add width and height attributes to all <img> tags.
- **[MEDIUM]** 31 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.
- Fix: 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 (89/100)
- **[HIGH]** 58 interactive elements below 44×44px touch target size
- WCAG 2.5.5 recommends at least 44×44px for touch targets.
- Fix: 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.
- Fix: Add <track kind='captions'> to all video elements.
- **[LOW]** axe-core could not run
- axe-core failed: 'Page' object has no attribute 'default_timeout'. May be blocked by CSP or page too complex.
- Fix: Test accessibility manually or via Chrome DevTools.
## UI (70/100)
- **[CRITICAL]** [Visual] Mobile Responsiveness
- The mobile navigation menu is completely broken, overlapping the site logo and obscuring the main content heading in the mobile screenshot.
- Fix: Implement a proper mobile hamburger menu pattern. Move links into a hidden off-canvas drawer that opens on click, rather than displaying all links as a block element over the hero section.
- **[HIGH]** Horizontal overflow on mobile (375px)
- Content overflows the viewport horizontally on mobile. This causes unwanted horizontal scrolling.
- Fix: Fix CSS to prevent overflow: check for fixed widths, max-width on containers, and overflow:hidden on body.
- **[HIGH]** [Visual] Layout & Spacing
- The 'Contact Us' section is abnormally large and empty, featuring a massive void of whitespace between the content and the footer, making the site feel unfinished.
- Fix: Reduce the top/bottom padding on the 'Contact Us' container. Use browser inspector (e.g., set padding-top: 40px to 'section' elements) to normalize vertical spacing across the page.
- **[MEDIUM]** No favicon
- No <link rel='icon'> found.
- Fix: 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.
- Fix: Set base font-size to 16px for body content.
- **[MEDIUM]** [Visual] Visual Hierarchy
- Multiple primary Call to Action (CTA) buttons have identical visual weights (Book Online vs. Call Us), preventing users from knowing which action is prioritized.
- Fix: Assign a primary style to the 'Book Online' button (e.g., solid fill) and a secondary style to 'Call Us' (e.g., outline/ghost button) to guide user focus.
- **[MEDIUM]** [Visual] Typography
- The text 'Gong Sound Immersion' in the mobile header is bleeding into other elements. Additionally, body text in the About section appears to be slightly below standard accessibility legibility thresholds.
- Fix: Set 'font-size' to a minimum of 16px for body copy via CSS rules. Use 'overflow: hidden' or 'text-overflow: ellipsis' for the header container to prevent overlapping.
- **[LOW]** [Visual] Professionalism
- The site uses low-resolution image placeholders for the 'Featured Spa Services' and 'Gallery' section, creating a blurry experience on high-DPI displays.
- Fix: Replace all asset images with WebP versions optimized for high-DPI (Retina) screens. Ensure source images have a minimum width of at least double the container width.
- **[LOW]** [Visual] Color & Branding
- The CTA button colors (teal/blue) are very similar to the background footer color, causing 'Call to Action' buttons to lose contrast in the footer area.
- Fix: Apply a high-contrast hover state or a distinct background fill for the 'SCHEDULE AN APPOINTMENT' button in the footer to ensure it satisfies WCAG AA contrast requirements.
## Content (71/100)
- **[HIGH]** 6 broken external link(s)
- Links returning errors: ciaobellaspa.zenoti.com, ciaobellaspa.zenoti.com, ciaobellaspa.zenoti.com…
- Fix: Fix or remove broken external links.
- **[HIGH]** [Content] Placeholder Text
- The header contains a broken sentence with a missing verb/instruction.
- Fix: Change 'to Book.' to 'Click here to book your spot.'
- **[HIGH]** [Content] Calls To Action
- The page features identical 'BOOK ONLINE' buttons in close proximity without context for which service is being booked, causing friction.
- Fix: Use descriptive labels for buttons: 'Book Gong Immersion', 'Book Yoga Class', 'Book Spa Services'.
- **[HIGH]** 8 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…
- Fix: 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
- Lack of parallel structure and unnecessary usage of 'etcetera' in professional copy.
- Fix: Change to: '...nervous system, and lymphatic system.'
- **[MEDIUM]** [Content] Professionalism
- The phrasing 'vibrational-medicine' lacks medical backing and presents a potential liability; the sentence structure is also fragmented.
- Fix: Rephrase to: 'Our sound immersion sessions focus on deep relaxation and facilitating a state of internal balance through soothing sound frequencies.'
- **[MEDIUM]** [Content] Professionalism
- The copy 'Dedicated to the kings and queens of past times' is overly flowery and vague for a spa/boutique commerce site.
- Fix: Replace with a value-based sentence: 'We curate a selection of time-tested, high-quality apothecary products to bring timeless luxury to your self-care routine.'
- **[MEDIUM]** 15 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=…
- Fix: Replace with one natural sentence describing what the image shows. Avoid cramming in keywords.
- **[LOW]** [Content] Professionalism
- Inconsistent capitalization of the word 'You' creates an amateurish tone.
- Fix: Change to: 'We warmly welcome you to Bella’s Heartspace... guide you'
## Technical (64/100)
- **[CRITICAL]** Missing HSTS header
- The HSTS HTTP response header is not set.
- Fix: Add to your server/CDN/nginx config: Strict-Transport-Security: max-age=31536000; includeSubDomains
- **[HIGH]** 2 console error(s)
- Browser console errors indicate broken functionality. First: Failed to load resource: the server responded with a status of 403 ()
- Fix: Open Chrome DevTools (F12) > Console tab to see all errors with source URLs. Fix the root cause of each error — broken script loads, JS exceptions, or failed API calls.
- **[HIGH]** 1 resource(s) failing to load (4xx/5xx)
- Resources returning HTTP errors: HTTP 403: https://link.flowsly.io/widget/form/4vyloIoUuwtzVjJmDyOk
- Fix: Open Chrome DevTools > Network tab, filter by Status ≥ 400 to find all failing resources. Fix URLs, restore missing files, or remove unused references.
- **[HIGH]** Missing X-Content-Type-Options header
- The X-Content-Type-Options HTTP response header is not set.
- Fix: 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.
- Fix: 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.
- Fix: 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
- Fix: 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.
- Fix: Add HttpOnly attribute to session and auth cookies.
- **[LOW]** Missing Referrer-Policy header
- The Referrer-Policy HTTP response header is not set.
- Fix: 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.
- Fix: Add to your server/CDN/nginx config: Permissions-Policy: camera=(), microphone=(), geolocation=()
- **[LOW]** 5 cookie(s) missing SameSite attribute
- Cookies without SameSite may be sent on cross-site requests: __cf_bm, __cf_bm, cf_clearance
- Fix: Set SameSite=Lax or Strict on all cookies.