Skip to content

Rachid Excursions — Marrakech Tours

Live
Industry
Travel & tourism / Marrakech tour operator
Role
Freelance developer & SEO specialist (solo) — frontend architecture, build, i18n, and prerender pipeline
Year
2026
Live site
Visit ↗
React
Vite
TypeScript
Tailwind CSS
shadcn/ui
i18next
Headless Chrome Prerendering
SEO / JSON-LD
WhatsApp Booking
Ask about a site like this
Screenshot of the Rachid Excursions — Marrakech Tours interface

Status: Live — rachidexcursions.com

The problem

Independent local tour operators in Marrakech compete for the same visitors as international online travel agencies (OTAs). A visitor comparing tours on a phone can lose patience with slow page loads, confusing navigation, or hidden pricing. The operator needed a fast website with clear pricing, pages in several languages that search engines can read, and a direct path from the phone to WhatsApp instead of a checkout form.

My role

I served as the sole developer responsible for designing and implementing the frontend web application, establishing the multilingual content architecture, building a custom headless Chrome static prerendering pipeline for SEO, and conducting a comprehensive mobile UI and conversion audit.

What I built

  • Modern frontend architecture: Built a responsive, mobile-first client application using React 18, Vite, TypeScript, Tailwind CSS, and shadcn/ui (Radix primitives), organizing tours across dedicated hubs (Day Excursions, Multi-day Sahara Desert Tours, Marrakech Activities, Airport Transfers).
  • Automated 4-stage static prerender build pipeline: Because search crawlers and AI search agents struggle with client-rendered SPAs, I implemented an automated build pipeline that uses Puppeteer and headless Google Chrome to pre-render 200 individual localized HTML routes at build time, enforced with a strict verify-seo-build.mjs verification gate.
  • Trilingual internationalization with localized SEO clusters: Configured i18next across English, French, and Spanish with route-prefixed URLs (/fr/*, /es/*). Built 7 reviewed localized landing page clusters with complete hreflang sets (en, fr, es, and x-default) directly injected into the static document head.
  • Comprehensive Schema.org structured data: Implemented valid JSON-LD graph metadata for Organization, TravelAgency, TouristTrip, OfferCatalog, and sequential BreadcrumbList schemas with explicit currency and starting price structures.
  • Direct WhatsApp conversion flows: Integrated contextual WhatsApp booking CTAs with prefilled inquiry parameters (tour name, duration, date, group size), accompanied by an authoritative sticky mobile booking bar for mobile users.

Mobile conversion audit & optimization

In addition to core development, I conducted a deep mobile conversion audit addressing mobile decision paths:

  • Established a single structured product dataset to eliminate inconsistent pricing and duration labels across pages.
  • Streamlined mobile tour listing cards by moving heavy narrative paragraphs to detail pages and removing multi-image carousels on cards to accelerate scanning and reduce DOM overhead.
  • Reordered the mobile homepage around user booking intent (hero with direct CTAs, popular excursions, trust proof points, Google reviews, simple 3-step booking flow, and FAQs).

Results

I do not have access to Rachid Excursions' internal analytics or private WhatsApp conversion metrics, so no unverified booking volume or revenue claims are made here.

Interested in something similar? Get a free check of my site or see other case studies.

Free growth report

See what's costing you customers, and get the fixes

Paste your website. In about two minutes the report reads it, works out what you sell and who buys it, and hands you the exact fixes, your own AI assistant and a 90-day plan.

  • Free
  • About 2 minutes
  • No call needed

Built for any business

  • Restaurants & cafés
  • Clinics & dentists
  • Shops & online stores
  • Hotels & riads
  • Tours & activities
  • Salons & spas
  • Lawyers & accountants
  • Trades & home services