Website Audits

hurabeach.com · Ilha do Guajirú, Itarema, Ceará, Brazil

HURA Beach

HURA Beach is an uncommon case: a hand-built static site (no WordPress, no builder) with genuinely good Portuguese copy, a real booking engine for the villas, embedded Google testimonials, and an authority argument (host of the GKA Kite World Tour) most competitors lack. The foundation is solid. The problems are not conceptual — they are inconsistent execution: prices visible in one area and hidden in another, a language switcher that promises English/Spanish/French and delivers Portuguese, a Google rating that contradicts itself between pages, and zero instrumentation (analytics) to know what actually converts.

Summary

  1. 1

    The site already communicates what HURA Beach is

    In the first seconds, any visitor understands it's kite + lodging + food in one place — don't touch that.

  2. 2

    The site shows two different Google ratings for the same business

    4.3 stars on the homepage and 4.8 on the restaurant page, with the same 127 reviews — decide which is real and leave only that one across the whole site.

  3. 3

    The language button promises English, Spanish and French, but doesn't deliver

    A foreign tourist who clicks "English" sees the site in Portuguese. Until it's translated, it would be worth hiding those options to avoid a bad first impression.

  4. 4

    Kite classes don't show a price; lodging does

    That difference creates friction — at least a reference price per package would help people avoid having to write in just to learn the order of magnitude.

  5. 5

    There's currently no way to measure what works on the site

    No Google Analytics or similar tool is installed — there's no way to know which pages generate the most WhatsApp inquiries, or to re-target someone who looked and didn't book.

  6. 6

    The TripAdvisor listing is empty and unclaimed

    With 127 real reviews on Google, it would be easy to ask recent guests to repeat their review there — that visibility is being given away today.

  7. 7

    The restaurant menu is a very basic PDF

    It contrasts with the photo quality of the rest of the site — moving the menu onto the page itself, with photos and prices, would look more professional and is better for search engines.

  8. 8

    The founder and instructor team is an underused marketing asset

    Joseph Carneiro's track record, plus hosting the GKA World Tour, are international-level authority arguments that are today "hidden" inside internal pages instead of on the homepage.

  9. 9

    The site is custom-built, not on a template — that's a technical strength, not a problem

    It's fast, tidy and free of unnecessary dependencies. The cost of that choice is that changing a price or uploading a photo today requires touching code; it's worth evaluating whether a simple editing panel makes sense.

  10. 10

    The WhatsApp links are already well thought out

    Each button builds a different message depending on where the click came from — that lets the team know, even without analytics, roughly what's generating inquiries. Worth keeping and expanding that pattern.

  11. 11

    The Villas booking engine is real and works

    It doesn't rely only on WhatsApp for lodging — it has a live calendar and availability. That same level doesn't exist yet for kite classes.

  12. 12

    The site is well prepared for search engines, with a few specific gaps

    Titles, descriptions and blog content are well crafted; what's missing is letting Google show review stars directly in search results, something technical and low-cost to implement.

  13. 13

    The mobile experience looks solid based on the code, but wasn't verified on a real phone during this audit

    Worth a quick manual check, especially of how long the background videos take to load on mobile data.

  14. 14

    None of the findings on this list requires rebuilding the site

    These are specific, contained adjustments — the structure, content and technical foundation are, for the most part, already well resolved.

Roadmap

Week 1
  • Unify the Google rating shown on home and restaurant into one star number from one source of truth (P0).
  • Claim and complete the TripAdvisor listing (P1, low effort).
  • Add at least an indicative price range to the Kite School packages (P1).
Weeks 2–4
  • Install Google Analytics 4 (or similar) and, if the business runs paid marketing, a Meta Pixel — without this, everything else is optimized blind.
  • Finish the real translation of /en/ and /es/ (and decide whether /fr/ gets translated or is pulled from the switcher until it's ready) before removing noindex.
  • Add AggregateRating, LodgingBusiness and Restaurant to the existing JSON-LD.
  • Convert the Lounge menu from PDF to an HTML section with prices.
  • Rewrite the home H1 to include the value message, not just the brand.
  • Unify the phone number shown on TripAdvisor and other directories with the one on the website.
Month 2+
  • Evaluate a dedicated booking engine (or extend the current one) for Kite School packages too, not just Villas.
  • Design 1-2 all-inclusive packages with a single price (lodging + classes + transfer), inspired by the pattern used by direct competitors.
  • Update sitemap.xml to include the language versions once they are actually translated.
  • Run a real mobile-device testing session (not just a simulator) to validate background-video weight on 4G and floating WhatsApp button behavior.
  • Explore a simple content-admin panel so the team can update prices and photos without depending on a developer.

Full detail

Everything above is the summary and the action plan. Below is the complete, section-by-section detail behind it — read as deep as you want.

Who uses this site

Kiter planning a trip

Already knows what kitesurfing is

Wants certainty about wind, lagoon skill level, gear and whether the spot is as good as they say. Compares Guajirú against Cumbuco, Preá or Jericoacoara.

Well served: month-by-month wind data, downwind routes, verifiable IKO certification.

Absolute beginner

Has never touched a kite

Needs to know if it's safe, whether there's a minimum age, what happens if there's no wind during their week, how much it costs, and how long it takes to stand up on the board.

Almost everything answered in the FAQ, except the price.

International tourist

Doesn't speak Portuguese

Arrives from an English/French review and clicks "English" expecting the site in their language.

Poorly served: the language switcher exists but doesn't translate the content.

Couple wanting to stay

Doesn't necessarily kite

Wants to see the room, the nightly price, what breakfast includes, and whether there's availability for their dates.

Well served: transparent pricing, a real availability search, and real photos of each room.

Local or passing-through diner

Just wants dinner

Searches "restaurant in Itarema," wants to see the menu, the hours, and whether a reservation is needed.

Hours and FAQ are clear; the menu lives in a PDF, not on the page.

Returning customer

Already stayed, wants to come back

Wants to book quickly, maybe arrange a private clinic with Joseph or bring a group.

Well served: direct WhatsApp, no account-creation friction.

The business

The business and its users

HURA Beach combines three businesses under a single brand on one property: lodging villas, a beach restaurant ("HURA Lounge"), and an IKO-certified kitesurf school, on Ilha do Guajirú (Itarema, Ceará) — a shallow lagoon with stable wind 9 months a year, 3 hours from Fortaleza. The site's goal isn't to inform, it's to convert three distinct types of intent into a single contact channel: WhatsApp. The homepage's "Por onde você quer começar?" ("Where do you want to start?") section explicitly separates the three paths from the very first scroll — the most important structural win on the whole site.

The home segments the three lines of business (villas, kite school, restaurant) plus "Experiência" into explicit visual cards within the first two scrolls, so no business steals attention from the others.

First impression & IA

First impression and information architecture

Five-second test: on arrival, a drone video shows kitesurfers sailing in front of the property, the logo reads "HURA · Watersports & more," and the subtitle "Kite, conforto e alta gastronomia. Perfeitamente integrados." appears immediately. A visitor understands in under 5 seconds that this is a kitesurfing destination with lodging and food — the question "where am I and what do they offer?" is resolved before the first scroll. That's a real achievement: most sites that combine hotel + restaurant + school make the visitor guess which is the primary business. Navigation is five items (Home, Kite School, Villas, Lounge, Experiência, Contato) plus a booking button — clear, with no nested menus and no friction.

The homepage's real H1 is just "HURA"

P2SEOverified

The value copy ("Kite, conforto e alta gastronomia. Perfeitamente integrados.") exists on screen but lives in a generic `<div>`, not the H1.

The single H1 on the domain's highest-authority page is just the brand name, without a single keyword — a wasted opportunity on the page that carries the most SEO weight.

Rewrite the home H1 to include the value message, not just the brand.

Place-name inconsistency: "Ilha do Guajirú" vs. "Ilha do Farol"

P3Contentverified

The title tag and SEO URLs use "Ilha do Guajirú"; the hero, footer and schema use "Ilha do Farol" as an alternate name.

It's plausible this is a more specific place name within the wider area, but that relationship is never explained to the visitor — worth a clarifying line.

Add one short sentence somewhere on the site explaining that Ilha do Farol is the specific point within the broader Ilha do Guajirú area (or vice versa).

Conversion & friction

Conversion and friction

The site's conversion pattern is consistent and, on the whole, well chosen: almost every CTA links to a wa.me WhatsApp message that's pre-filled and specific to context (the "Reservar Discovery" button assembles a different message than "Reservar mesa"). This lowers friction — no forms, no accounts, no carts — and doubles as something close to attribution: each message carries an internal reference tag in its text (for example `[ref:disc-pt]`), so the team can tell which button started each conversation even without formal analytics.

Each WhatsApp CTA carries its own internal reference tag for informal attribution, even without a CRM.

Zero analytics or remarketing instrumentation

P1Businessverified

The only measurement script present is the Cloudflare Web Analytics beacon (aggregate traffic, no events).

There is no Google Analytics/GA4, Meta Pixel, Google Tag Manager or Hotjar/Clarity. Without this, it's impossible to know at which funnel step visitors abandon Kite School (no price shown) versus Villas (price shown), and impossible to retarget someone who viewed Villas three times and didn't book — typical behavior for travel decisions with long consideration windows.

Install GA4 (or similar) and, if running paid marketing, a Meta Pixel.

Price hidden in Kite School, visible in Villas

P1Conversionverified

All four kite packages (Discovery, Intermediate, Independent, Wing Foil) show "Sob consulta" (price on request) in both private and shared format. Villas, meanwhile, publishes R$750 / R$2,500 per night.

This asymmetry is obvious to anyone who browses both pages in the same session, and hidden pricing is a documented cause of abandonment on travel sites — it forces people to message on WhatsApp just to discover a number.

Publish at least a "from R$X" indicative range for each kite package.

The WebSite schema's "SearchAction" probably doesn't work

P2Technicalverified

The JSON-LD declares a `SearchAction` pointing to `hurabeach.com/?s={search_term_string}`, but the site is static and has no internal search.

If Google ever activated a sitelinks search box in results, it would point to a parameter the page doesn't process, sending searchers to a dead end.

Remove the `SearchAction` from the schema until a real internal search exists.

Hotel

Hotel / Villas

The /villas/ page is, in several ways, the most complete on the site: hero video, a summary of the three room types, a real third-party booking engine embedded (live calendar, guest count, coupon, live availability — running on soufoco.com.br / motor-reserva.com.br infrastructure, typical of PMS platforms used by Brazilian inns), room cards with square meters, capacity, nightly price and amenities, a double CTA (ask on WhatsApp / more info), and cross-sold packages (Villa + Kite, Villa + Transfer, Villa + Sunset). Pricing: Suite Chalé sleeps 2 guests in 46 m² at R$750/night with breakfast, A/C, wifi and a private balcony; Vila Completa sleeps up to 6 across 3 suites at R$2,500/night with breakfast, a pool with hydromassage, a grill and a full kitchen. Master Suite pricing and capacity were not verified in this pass, though home copy mentions a jacuzzi.

Villas uses a real third-party booking engine (FOCO / Motor de Reserva) with a live calendar — not just "message us."

No visible cancellation policy on Villas

P2Contentverified

Kite School's cancellation policy is clear (100%/50%/0% depending on notice), but there is no equivalent for lodging on the Villas page or in an FAQ there — the page doesn't appear to have an FAQ section at all.

Guests booking a multi-night stay want to know the cancellation terms before paying a deposit; leaving it unstated pushes the question into a WhatsApp exchange that could have been resolved on the page.

Publish a cancellation policy for Villas, mirroring the clarity already used for Kite School.

No lodging-specific reviews

P3Businessverified

The reviews embedded on the home page mostly talk about kite and food; none of the visible reviews focus on the lodging experience itself (cleanliness, bed comfort, noise).

A guest deciding on a room wants social proof about the room itself, not just the destination — the gap leaves the highest-value page under-supported by trust signals at the exact decision point.

Filter 2-3 guest reviews that specifically mention the lodging experience and surface them on the Villas page itself.

Kite school

Kite school

This is, by a clear margin, the best-built page on the site for resolving the anxiety of someone who has never visited the destination. It covers, point by point, almost everything a traveler needs before committing: a three-package progression aligned to IKO levels (Discovery 4h, Intermediate 10h, Independent 16h) plus Wing Foil; five instructors with a linked, verifiable IKO profile (not just a name); a month-by-month wind table (knots, direction, season) based on five years of historical data; six downwind routes with distance, duration and skill level; and an eleven-question FAQ that answers exactly what this audit set out to verify: certification, minimum age, whether you need to know how to swim, what happens if there's no wind (95% of days in season do have it), the difference between private and shared classes, and the cancellation policy.

Sells the destination, not just the class: a shallow lagoon, 9 months of wind, and named downwind routes answer "why here?", not just "how do I learn?"
Verifiable credentials: links to IKO profiles (ikointl.com) let a visitor confirm the certification instead of just taking the site's word for it.

No package shows a price

P1Conversionverified

Discovery, Intermediate, Independent and Wing Foil all show "Sob consulta" (price on request) in both 1:1 and 1:2 formats.

It's reasonable that price varies by season, but even an indicative range ("from R$X") would lower the friction of having to message just to learn the order of magnitude — something international competitors like KBC Sal (Cabo Verde) already publish.

Add at least a "from R$X" indicative price to each kite package.

GKA authority underutilized outside this page

P3Businessverified

Hosting the GKA Kite World Tour (2022 and 2026) and welcoming the PJKA Kite Academy and Ruben Lenten is an international-level authority argument, but it only appears developed on the "Experiência" page.

There's no badge or short mention of this in the home hero or in navigation, where it would have the most impact for someone arriving with a "best kite school" search intent.

Surface a short GKA World Tour host badge or line in the home hero and/or navigation.

Restaurant

Restaurant / Lounge

The Lounge has its own identity — it doesn't feel like "the hotel's dining room." Clear hours (11:00–19:00, dinner by reservation), explicitly open to outside guests, six menu categories with dish photography and editorial descriptions ("Ceviche de frutos do mar," "Filé trinchado teriyaki"), an eight-question FAQ (reservations, vegetarian options, pets, kids' menu, parking, what happens if it rains), and 127 Google reviews at 4.8 stars, with testimonials in six different languages — real evidence of an international customer base.

The menu lives in an auto-generated 3.7 KB PDF

P2Contentverified

"Ver Cardápio (PDF)" opens a file generated with ReportLab (an automated PDF-generation library), only 3.7 KB — almost certainly plain text with no photos or layout, well below the visual level of the rest of the site.

PDFs are also suboptimal on mobile (extra download, no comfortable native zoom) and for SEO (Google indexes a loose PDF worse than an HTML page).

Convert the menu to an HTML section with prices, keeping the PDF only as an optional download.

Content & copy

Content and copy

The Portuguese copy is, on the whole, specific and well written — it avoids the generic, empty "best place in the world" by leaning on concrete numbers ("9 meses de viento," "28 nós," "3 horas de Fortaleza," "50 metros hasta la laguna"). Section headlines have personality ("O sabor depois do vento," "Onde todo grande dia de kite termina") without losing clarity about which button comes next.

Language switcher without real translation

P1Contentverified

The PT/EN/ES/FR menu is live on every page and links to /en/, /es/, /fr/, which return 200 OK with the correct lang attribute — but comparing /en/ and /es/ byte-for-byte against the Portuguese homepage shows the title, meta description, H1 and almost all body copy are still in Portuguese. The same pattern was confirmed on /es/; given the identical build, /fr/ very likely has the same problem (not directly verified).

In the technical team's favor: these pages are already correctly marked noindex, so there's no SEO harm — someone was careful enough to keep Google from indexing half-translated pages. But the problem is real experience, not SEO: the links are already live in production navigation, so a French or Polish traveler (the exact profile already leaving reviews on the site) can click "English" today and land on Portuguese.

Either finish the translation before promoting the switcher, or hide the untranslated languages until they're ready.

The home footer links fewer guides than the rest of the site

P3Contentverified

The Kite School, Restaurante, Experiência and Contato footers link all 6 blog guides ("Aprender kitesurf," "Downwinds Ceará," "Melhor hospedagem," etc.). The home footer links only 2 of those 6.

It's a minor inconsistency, but the home is the domain's highest link-authority page — it's worth linking to all guide content equally.

Add the missing 4 guide links to the home footer to match the other pages.

Visual design

Visual design and UI

The visual system is coherent across pages: the same typography (Playfair Display for headings, Inter for body), the same dark-with-warm-accent palette, the same button patterns (sand-colored fill for the primary action, outline for secondary), the same scroll-reveal text transitions. For a hand-built site, this consistency isn't trivial to achieve, and it shows.

Clear typographic hierarchy: large italic serif headings for emotional copy, sans-serif for functional copy.
Buttons have sufficient contrast and click area, and photography quality is consistent across Villas and Restaurante.

Mobile experience

Mobile experience

Could not be verified visually in this session: attempts to resize the browser window to 390×844 and 430×900 to simulate an iPhone failed — this session's automation tooling couldn't force a real mobile viewport (screenshots kept reporting desktop width despite the resize command), a tool limitation rather than a site issue. Instead, mobile robustness was checked by reading the source CSS directly, which gives indirect but concrete signals.

The CSS defines 17 distinct breakpoints (480, 520, 540, 580, 600, 720, 760, 768, 800, 880, 900, 920, 960, 980, 1100, 1200, 1280px) — much more careful responsive granularity than the average site this size.
`html, body { overflow-x: clip; }` with an `overflow-x: hidden` fallback — an explicit safeguard against accidental horizontal scroll, the most common mobile bug.
The viewport meta tag (`width=device-width, initial-scale=1.0, viewport-fit=cover`) is correctly configured, and hero videos have a dedicated, lighter `.mp4` source for mobile.

Unverified: data/battery cost of up to four autoplay videos, and floating WhatsApp button overlap

P2Performancenot tested

With up to four autoplay videos on the home page, data and battery consumption on an average Brazilian/international mobile connection is the most likely risk, along with the real size of the floating WhatsApp button potentially overlapping other CTAs on small screens.

This wasn't verified on a real device this session, so it remains a hypothesis backed only by source-code signals — but if confirmed, either issue could quietly cost conversions on exactly the audience (international travelers on mobile data) most likely to book.

Open hurabeach.com on a real phone for 5 minutes per page, checking whether the WhatsApp button covers any CTA while scrolling, how long the hero video takes to load on local 4G, and whether the Villas availability search is comfortable to use with the on-screen keyboard.

Trust & credibility

Trust and credibility

The site accumulates more genuine trust signals than usual for a business this size: real multilingual Google reviews embedded live, a founder with a verifiable IKO Examiner history, and a world-tour-level authority anchor (GKA). What's missing isn't more social proof — it's making the proof that already exists stop contradicting itself. What would make a customer hesitate before paying: seeing 4.3 stars on one page and 4.8 on another for "the same Google," and — if they're a foreign tourist — clicking their language and landing in Portuguese. Neither is expensive to fix; both are, today, visible to any visitor who browses more than two pages.

127 real, multilingual Google reviews are embedded live and visible on both home and restaurant — genuine social proof, not invented.
Verifiable authority: host of the GKA Kite World Tour, instructors with a linked and verifiable IKO profile, and a founder with 20+ years of track record.

Google rating doesn't match between pages

P0Technicalverified

The homepage shows "HURA Beach: 127 reviews, 4.3 stars on Google"; the restaurant page shows "HURA Lounge: 127 reviews, 4.8 stars on Google" — same review count, same Google Place ID used on both "write a review" links, two different averages.

Either the widget doesn't pull live data from Google and one page shows a stale hardcoded number, or someone edited one page manually. A visitor who compares both pages will wonder which figure is real.

Pick one true rating and source it from a single place across the whole site.

Competitive benchmark

Competitive benchmark

Five comparable sites were reviewed: Zorah Beach Hotel and Rancho do Peixe (Ceará), Villa Aloha (Ceará), Manu La Porta Kite Club — a direct competitor on Ilha do Guajirú itself — and KBC Sal in Cabo Verde as an international reference. The goal isn't to imitate them, but to identify patterns that repeat across strong sites in the sector and that HURA Beach doesn't have yet. Zorah and Rancho do Peixe run a real booking engine (Omnibees) — HURA has one only for Villas, none for Kite School or Restaurante. KBC Sal and Villa Aloha publish exact hourly/package pricing — HURA only does this for Villas. Manu La Porta sells a single all-inclusive, one-decision package (7 days: lodging + food + classes + transfer) — HURA has cross-sell packages (Villa+Kite, Villa+Transfer) but only as a suggestion, not a single product with its own price. Real multilanguage content — not just in Portuguese — is one of the patterns this benchmark found among the competitor sites reviewed; HURA's own EN/ES/FR structure is in place, but the content behind it hasn't been translated yet (see the content section). The founder/athlete personal brand is a central asset at some competitors; at HURA, Joseph Carneiro appears on Kite School but not on the home page.

No third-party trust badges shown on site

P3Businessverified

Competitors display third-party badges like TripAdvisor Travellers' Choice or tourism awards; HURA Beach shows none, and its TripAdvisor listing is unclaimed (see local SEO section).

Third-party badges are an easy, low-cost trust signal that HURA Beach's real review base (127 on Google) could support once the TripAdvisor listing is claimed.

Once the TripAdvisor listing is claimed and has reviews, add any earned third-party badge to the site.

No single-priced all-inclusive package

P3Businessverified

Direct competitor Manu La Porta sells a single 7-day all-inclusive package (lodging + food + classes + transfer) as one decision with one price; HURA Beach only offers cross-sell suggestions (Villa+Kite, Villa+Transfer) without a dedicated combined price.

A single-decision, single-price package lowers the cognitive load for a traveler planning an entire trip at once, and it's a pattern proven to work at a direct competitor on the same island.

Design 1-2 all-inclusive packages with a single price (lodging + classes + transfer).

The business's tenure since 2019 is never mentioned on the site

P3Contentlikely

According to public records, the business has formally operated since 2019 (CNPJ registered as "HURA Beach Club Water Sport & More, Bar e Restaurante"). That tenure doesn't appear anywhere on the site.

This is, by itself, a small stability signal that's currently given away to competitors for free, simply by omission.

Add a short "operating since 2019" or equivalent tenure mention somewhere in the site's trust-building copy (About/Experiência).

Technical appendix

Everything above was for you. This section is for your developer or technical team — feel free to skip it.

Technical & content SEO

Technical and content SEO

The technical SEO foundation is better than most sites this size: every page has a unique, well-written `<title>` and meta description (with location and concrete figures), clean Portuguese URLs (`/kiteschool/`, `/villas/`, `/restaurante/`), correct canonicals, complete Open Graph tags, and six guide pages targeting well-chosen long-tail search intent ("melhor época kitesurf Ceará," "downwind Ceará Ilha do Guajirú").

Sitemap.xml doesn't include the EN/ES/FR versions

P2SEOverified

Every page's `<head>` correctly declares the four language versions via `hreflang`. But `sitemap.xml` only lists the 12 Portuguese URLs — no `/en/`, `/es/` or `/fr/` URL appears in the sitemap submitted to search engines.

While the content stays untranslated (see the content section), this omission is defensible; once translated, the sitemap needs updating so discovery doesn't depend on `hreflang` alone.

Add the /en/, /es/ and /fr/ URLs to sitemap.xml once their content is actually translated.

No structured data for Hotel, Restaurant or AggregateRating

P2SEOverified

The current schema is a generic `LocalBusiness` (with well-structured address, geo and phone) plus a `WebSite` and a `VideoObject` for the hero video — solid but incomplete.

There is no `LodgingBusiness`/`Hotel` type for Villas, no `Restaurant` with `servesCuisine`/`menu` for the Lounge, and above all no `AggregateRating`, even though the site displays "127 reviews, 4.3–4.8 stars" on screen. Without that block, Google has no basis to show star ratings in the search result — a rich snippet that directly and freely improves organic CTR.

Add `AggregateRating`, `LodgingBusiness` and `Restaurant` types to the existing JSON-LD (once the rating in the trust section is unified to a single true number).

Robots.txt has duplicated, contradictory rules for the same bot

P3SEOverified

The Cloudflare-managed block at the top of the file says `Disallow: /` for GPTBot, ClaudeBot and Google-Extended; further down, a HURA Beach-authored block says `Allow: /` for those same bots ("we want to appear in AI answers").

With two rule groups for the same user-agent, the outcome depends on how each crawler resolves the conflict — there's no guarantee the stated intent ("allow AI") is actually being honored.

Consolidate the robots.txt rules for GPTBot, ClaudeBot and Google-Extended into a single, unambiguous block.

Local SEO

Local SEO

This section combines what was verified directly on the site with research from external sources (review aggregators, public records) — wherever a source is secondary it's called out explicitly, and it's recommended to confirm it manually from the business's own Google Business Profile panel before acting.

The JSON-LD does have a complete, correctly structured postal address (street, locality, region, postal code, country) and exact GPS coordinates — the on-site technical foundation for local SEO is well built; the remaining work is off-site, in cross-directory consistency.

Unclaimed TripAdvisor listing with no reviews

P1SEOlikely

According to competitive research, a "Hura Beach – Restaurante e Kiteschool" listing exists on TripAdvisor, unclaimed by the property and with 0 reviews, despite the 127 real reviews the site itself displays on Google.

This is a low-effort win: claim the listing, upload photos, and ask recent guests to also mirror their review there — visibility that's currently being given away.

Claim the TripAdvisor listing, add photos, and ask recent guests to leave a review there too.

Possible NAP (name/address/phone) inconsistency off-site

P2SEOlikely

Within hurabeach.com the phone number is consistent everywhere: +55 88 99986 8436 (WhatsApp, `tel:` link and the JSON-LD all match). External research found aggregators like RestaurantGuru show the same number, but other sources (TripAdvisor and the CNPJ business registry) reference different numbers.

A phone-number inconsistency across directories is a known negative signal for ranking in Google's local pack — worth doing a "search my own business" pass across Google, Bing, TripAdvisor and Booking to unify the number everywhere to the one on the website.

Audit and unify the phone number shown on TripAdvisor, the CNPJ registry and other directories to match the website's +55 88 99986 8436.

Fragmented listing on Booking.com

P3SEOnot tested

There are signs the property appears split across more than one Booking.com listing (e.g. "Hura Vila 1" and "Hura Vilas" separately) instead of a single consolidated listing.

This would dilute reviews and ranking across each individual listing; it could not be confirmed with certainty in this audit.

Have the team review their own Booking.com partner panel and merge the listings if they are indeed fragmented.

Performance

Performance

Lighthouse/PageSpeed were not available in this session — the public Google PageSpeed Insights API returned a 429 error (daily quota exhausted) when run against the home page in mobile mode. This report has no official LCP/CLS/INP figures; what follows are source-code signals used as a reasonable proxy.

Images use `.webp`, with `loading="lazy"` below the fold and `fetchpriority="high"` on the logo; Google Fonts are preloaded via `<link rel="preload">` with HTTP 103 Early Hints (an uncommon optimization most sites skip); everything is served behind Cloudflare's CDN.

Four autoplay background videos are the most likely LCP bottleneck

P2Performancenot tested

The home page loads at least four autoplay background videos (drone arrival, kite classes, waves, wind), each with a poster image and a lighter `.mp4` source for mobile — a careful implementation, but four videos in a single load are still the most likely reason Largest Contentful Paint (LCP) takes longer than ideal on a mid-range mobile connection, which is the real-world scenario for much of the international tourism visiting the site before traveling.

Without measured Lighthouse figures this remains a hypothesis, but it's consistent with the site's own "heavy" feel on a slow mobile connection noted elsewhere in this audit.

Run Lighthouse manually from Chrome DevTools (or PageSpeed Insights with its own quota) against / and /villas/ in mobile mode; if LCP measures above ~2.5s, the hero video is the first suspect to compress or trim in duration.

Tech stack

Tech stack

hurabeach.com is a hand-built static site — one HTML file per page, a single shared `css/v4.css` (105 KB) and two custom JavaScript files (`v4-app.js`, `v4-animations.js`), with no React, Vue, WordPress or detectable site generator (no `generator` meta tag, no CMS fingerprints). It's served from Cloudflare (CDN + protection + basic analytics). The Villas booking engine is a third-party widget (FOCO / Motor de Reserva, typical of PMS platforms for Brazilian inns). The restaurant menu is a PDF generated with the Python library ReportLab.

The stack choice is appropriate: a business this size doesn't need WordPress or a JS framework for a site that changes infrequently, and it avoids over-engineering.
No tag manager, conversion pixel or live-chat tool was detected — the site's "chat" is direct WhatsApp links, a legitimate, lightweight choice instead of a heavy chat widget. No console errors were found on home, villas, kiteschool or restaurante beyond noise from a test browser's own wallet extension (not the site), and every observed image request returned 200 OK.

No panel for the team to update content without a developer

P2Businessverified

The real trade-off of the hand-built stack is maintainability: every price change, every new photo, every copy tweak requires touching HTML/code directly.

There is no panel where the owner or front-desk team can update a room price without depending on whoever coded the site — a real operational bottleneck as the business grows or prices change seasonally.

Explore a simple content-admin panel (even a lightweight headless CMS) so prices and photos can be updated without a developer.

Accessibility

Accessibility

The site correctly uses semantic HTML5 landmarks (`nav`, `region`, `article`, `contentinfo`) and a reasonable heading hierarchy — confirmed by inspecting the accessibility tree, not just the visual design. The Kite School pattern, with a visually hidden H1 present for screen readers and a separate visual heading for the eye, is a valid, well-applied technique, not a bug.

Correct `lang` attribute on every language version; the stylesheet respects `prefers-reduced-motion` — important on a site with so many animated elements and autoplay video.
Almost all images have descriptive alt text, not generic placeholders like "imagen1.jpg."

"RESERVE CONOSCO" text over hero video has low contrast

P2Accessibilitynot tested

On Kite School, the large "RESERVE CONOSCO" text overlaid on the hero video renders with very little contrast (light gray over a moving video background).

If it's purely decorative this isn't serious, but if it's meant to communicate something, it would likely fail a WCAG contrast check. Exact contrast couldn't be measured automatically in this session.

Verify contrast manually against WCAG AA; if the text is informative rather than decorative, darken the overlay or increase text weight/contrast.

At least one decorative image has empty alt text with unclear intent

P3Accessibilitynot tested

At least one decorative image uses `alt=""`, which is acceptable if it's purely decorative, but the intent behind it wasn't confirmed.

If the image actually carries meaning, an empty alt text would silently drop that information for screen reader users.

Confirm whether the image is purely decorative; if it carries meaning, add a descriptive alt text.

Full keyboard navigation and booking-widget screen-reader compatibility not verified

P2Accessibilitynot tested

Full keyboard navigation (tabbing through every CTA, carousel and the booking widget) and real screen-reader compatibility of the third-party booking widget were not verified this session.

In my experience, embedded PMS widgets are the single most frequent point of accessibility failure, precisely because the host site doesn't control their code.

Run a manual keyboard-only pass across the whole site and a screen-reader test focused specifically on the Villas booking widget.

Technical & functional QA

Technical and functional QA

Spot-checks of links, redirects and server responses during this audit: home, Villas, Kite School, Restaurante, Experiência and Contato all respond 200 OK; /en/, /es/, /fr/ (home) return 200 OK but with untranslated content (see the content section); robots.txt and sitemap.xml are both accessible, with the sitemap missing the EN/ES/FR versions (see the SEO section); WhatsApp (wa.me) links are well-formed with a context-specific pre-filled message; tel: and mailto: links are correct and consistent across every page; Google Maps/Reviews links work and consistently use the correct Place ID; the Villas gallery images return 200 on the network request but fail to render visually (a front-end bug, not a 404, see the hotel section); and no site-caused browser console errors were found on Home, Villas, Kite School or Restaurante.

Every core page responds 200 OK, and WhatsApp, tel: and mailto: links are all well-formed and consistent — the basic plumbing of the site works.

Instagram/Facebook content not audited this pass

P3Businessnot tested

Instagram and Facebook links are present in the footer and functional, but the content on those social networks themselves was not audited in this pass.

Social profiles are often a secondary discovery path for travelers researching a destination; leaving them unaudited means any inconsistency there (stale info, broken links, inactive profile) stays invisible to this report.

Do a follow-up pass specifically on Instagram and Facebook profile content, posting frequency and consistency with the website.