Travel · Tourism

Janvi Tour & Travels

A full rebuild for an RTO-registered, owned-fleet Udaipur tour operator — luxury design system, 250+ programmatic pages and a WhatsApp-first booking flow built to win both the SERP and the AI answer.

Live — 250+ indexable pages shipped, search metrics maturing

janvitourudaipur.com

Overview

Janvi Tour & Travels is a family-run, RTO-registered operator running its own fleet of 41 vehicles since 2009, with 1,284 verified reviews at a 4.9 average. Despite that, it was invisible in the channels where Rajasthan trips are actually planned today: Google AI Overviews, ChatGPT, Perplexity and Gemini.

The entire web presence was rebuilt from scratch around one thesis: the operator that answers the traveller's question most precisely — with fixed prices, named drivers and verifiable credentials — wins both the SERP and the AI answer.

The problems were structural, not cosmetic: broker-style competitors owned the generic terms, no pricing was published so users bounced to WhatsApp aggregators for quotes, there was zero structured data, route content was thin and duplicated, the template design gave no premium signal, and a contact form meant lead latency measured in hours.

Positioning moved from "taxi service" to "chauffeur-driven Rajasthan, done properly", with three proof points brokers cannot claim: an owned fleet of 41 vehicles with its own workshop, salaried drivers with no commission emporium stops, and fixed all-inclusive fares — the March quote is the November invoice.

Search was treated as three layers. SEO: programmatic route pages, topic clusters, an internal link graph and a dynamic sitemap. AEO: every page opens with a speakable 40–60 word paragraph that fully answers its core question so the passage is extractable verbatim. GEO: NAP, founding date, credentials and aggregate rating repeated identically in prose and JSON-LD, so LLMs resolve "Janvi Tour Udaipur" as one confident entity instead of an ambiguous string.

Karnveer Singh delivered the whole programme solo — brand, design system, content architecture, SEO/AEO/GEO and the conversion layer.

Scope

  • Brand identity & luxury design system
  • Information architecture across 250+ pages
  • Programmatic SEO for routes, tours and destinations
  • AEO speakable answer layer
  • GEO entity consistency & structured data graph
  • WhatsApp-first conversion architecture
  • Full-stack build, SSR & prerender

Tech stack

Frontend

  • TanStack Start v1
  • React 19
  • TypeScript
  • Vite 7
  • Tailwind CSS v4
  • SSR + prerender

Design system

  • oklch semantic tokens
  • Midnight Aravalli Indigo / Marigold Gold / Sandstone
  • Fraunces + Manrope
  • Glassmorphism, rise-in motion, flash-free theme switch

Data & schema

  • Typed data modules (src/data/*.ts)
  • Central schema factory
  • TravelAgency + LocalBusiness
  • Service + Offer, TouristTrip, TouristDestination
  • Article + SpeakableSpecification, FAQPage, BreadcrumbList, Product

Growth & conversion

  • Dynamic sitemap.xml
  • AI-crawler-open robots.txt (GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended)
  • Fare calculator
  • Context-aware WhatsApp deep links

Verification

  • tsgo --noEmit type gate
  • Playwright visual snapshots
  • HTTP 200 checks across dynamic routes

Deliverables

  • 250+ uniquely optimised, schema-complete indexable pages generated from typed data modules — a new city pair ships a fully schema'd, internally linked landing page with zero template work
  • Route hub and 10+ programmatic fare pages, tour package hub and itineraries, destination guides, and blog topic clusters (Safety, Planning, Culture)
  • Nine structured-data types cross-referencing a single organization @id so the graph resolves to one business, not fragments
  • Speakable answer paragraph opening every page for AI Overview and answer-engine extraction
  • Luxury dark/light design system with zero hardcoded colours, six cinematic hero assets and a palace-arch-and-reflection monogram in Indigo and Gold
  • WhatsApp-first booking: every CTA produces a prefilled message carrying trip, pax, date and vehicle, so the operator receives a qualified enquiry with zero back-and-forth
  • Conversion surfaces — floating call/WhatsApp bar, instant fare calculator, sticky sidebar booking on every route and tour page, trust strip (rating, RTO registration, fixed fares, verified chauffeurs, 15-minute reply, 38,000+ travellers) and named-driver social proof
  • Route-level head() with unique title, description, OG and Twitter metadata across all 250+ URLs, canonical tags site-wide, single H1 per page, lazy imagery with explicit dimensions to protect CLS
  • Server-generated sitemap built from the same data modules as the pages, so it cannot drift out of sync

Outcomes

Indexable pages shipped
250+
Structured-data types
9, unified entity graph
Fleet & proof surfaced
41 owned vehicles · 4.9 from 1,284 reviews
Lead latency
Form hours → one-tap WhatsApp
Rankings & enquiry volume
TBD — newly launched, metrics maturing

Frequently asked questions

What was delivered for Janvi Tour & Travels?
A full rebuild by Karnveer Singh — brand and luxury design system, information architecture, 250+ programmatic pages, the SEO/AEO/GEO layer, structured-data graph and the WhatsApp-first conversion flow, on TanStack Start with SSR and prerender.
Why 250+ programmatic pages instead of a small brochure site?
Rajasthan travel demand is long-tail: people search "Udaipur to Jodhpur taxi fare", not "tour operator". Route, package, destination and article pages are generated from typed data modules, so every city pair gets its own schema'd, internally linked page. Programmatic scale only works because the underlying data — fixed fares, named drivers, owned fleet — is genuinely differentiated.
What is the speakable answer layer for?
Every page opens with a 40–60 word paragraph that fully answers that page's core question, so Google AI Overviews and answer engines can extract the passage verbatim instead of paraphrasing a competitor.
How does the site get cited by ChatGPT, Perplexity and Gemini?
Entity consistency plus access. NAP, founding date, credentials and aggregate rating are repeated identically in prose and JSON-LD around one organization @id, and robots.txt explicitly allows GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot and Google-Extended — agents most competitors block by default.
Why WhatsApp instead of a booking form?
Indian and inbound travel buyers close on WhatsApp. Every CTA opens a prefilled message with route, passengers, date and vehicle already filled in, so the traveller taps once and the operator receives a qualified enquiry in seconds rather than hours.