Skip to content

Rachid Excursions — Marrakech Tours & Desert Trips Platform

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
Screenshot of the Rachid Excursions — Marrakech Tours & Desert Trips Platform interface

Status: Liverachidexcursions.com

The problem

Marrakech's excursion market is intensely competitive, with independent local tour operators competing against international online travel agencies (OTAs) that dominate organic search. Most visitors research and book tours from mobile phones while traveling, where slow page loads, confusing navigation, or hidden pricing quickly cause potential guests to bounce. The operator needed a fast, trustworthy web platform with clear pricing, comprehensive multilingual search coverage, and an immediate mobile booking path straight to WhatsApp without burdensome checkout forms.

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 (Rachid-Excursions-Mobile-UI-Audit.md) 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.

Owner TODO: if Rachid Excursions shares Google Search Console impression growth, top keyword rankings, or inquiry volume numbers, those verified metrics will replace this note.

Interested in something similar? Get in touch or see other case studies.