Engineering Diary, Day 22: Six Features in One Session — Getaways, Fixed-Price Charter, Membership Overhaul, Medical Upgrade, Video Centre, and Trust Infrastructure
The Context: 8,350 Indexed, But Product Depth Was Shallow
A week ago, Google Search Console showed 6,000 indexed pages. Today: 8,350 — a 39% jump. The SEO infrastructure we built on Day 21 (cross-linking mesh, programmatic entity pages, 3D aircraft renders) was working. Google was crawling aggressively and indexing our content.
But there was a gap. Our competitors had product pages we didn't — fixed-price charter routes, luxury getaway packages, jet card memberships with comparison tables. These are pages that don't just attract search traffic; they convert visitors into leads. We needed product depth, not just content depth.
Competitive Intelligence: What We Learned
We analyzed a major competitor's recent website overhaul. Their sitemap contained ~2,634 URLs across 7 sub-sitemaps. Estimated actual Google indexing: 1,000–1,500 pages (their locale strategy of 9 URL variants per page dilutes crawl budget). Key product offerings we identified:
- Fixed-price charter routes — pre-set pricing on popular corridors, eliminating quote friction
- Island destination packages — structured pricing for leisure travelers (one-way + round-trip)
- Jet Card membership — 3-tier prepaid hours program with a comparison table vs. on-demand
- Medical evacuation — detailed 5-step process with equipment specifications
- Video content centre — operator interviews and facility tours
- Trust infrastructure — WYVERN, NBAA, EBAA certifications prominently displayed, price match guarantee
Their content depth was moderate — no insights hub, no structured data, no developer-facing tools. But their product pages were more conversion-oriented than ours. Time to fix that.
Six Features, One Session
1. Private Jet Getaways (21 Destinations, 24 New Pages)
We built a complete getaway package system with four categories: Golf (Scottsdale, Pebble Beach, St Andrews, Marbella), Island (Nassau, St Barts, Turks & Caicos, Maldives, Bali, Seychelles), City (Paris, London, Dubai, Tokyo, New York, Milan), and Ski (Aspen, St Moritz, Whistler, Niseko, Courchevel).
Each getaway has an interactive pricing matrix — select your departure city, aircraft tier (light/midsize/heavy), and duration (one-way, weekend 3-day RT, week 7-day RT) to see exact pricing. No quote request required. This is a fundamental shift from "request a quote" to "see the price and book."
Technical stack: Hub page with client-side category tabs, detail pages with server-rendered metadata + client PricingMatrix component. Product JSON-LD with Offer/PriceSpecification schema for Google rich results. FAQJsonLd for GEO (generative engine optimization).
2. Fixed-Price Charter (20 Routes)
Twenty high-demand routes with exact, fixed pricing. LA–Vegas: $12,000 light / $21,000 midsize-heavy. NY–Miami: $17,000 / $35,000. London–Paris: $13,500 / $27,000. Grouped by region (North America, Europe, Asia, Middle East) with interactive tabs.
Each route generates an ItemList JSON-LD with Offer schema — these are the kinds of structured data that power Google's rich results for "private jet cost" queries. Added a FAQ section with FAQJsonLd for GEO optimization.
3. Membership Overhaul (Jet Card Program)
Restructured from Select (25hrs) / Elite (50hrs) / Infinite (100+hrs) to Select (10hrs) / Executive (25hrs) / Chairman (50hrs) — better aligned with actual market segments. Added three new sections: Jet Card vs. On-Demand comparison table (8 feature rows), 1% Flight Credits loyalty program with visual 3-step explainer, and a membership application form with lead capture.
4. Air Ambulance Enhancement
The existing air ambulance page was serviceable but lacked the operational credibility that converts emergency situations into bookings. We added: animated statistics (4,000+ flight hours, 1,000+ medical missions, 24/7 availability, <3hr response), a 5-step bed-to-bed process visualization (ground pickup → airport transfer → medical flight → destination transfer → hospital admission), and an 8-card medical equipment grid (ICU, ventilators, 12-channel ECG, defibrillators, 3D sonography, infusion pumps, pulse oximetry, suction units).
5. Video Centre (12 Videos)
New content hub at /video-centre with 12 videos across 4 categories: Aircraft Tours (Gulfstream G650ER, Challenger 350, Phenom 300E), Destinations (St Barts, Dubai, Aspen), Client Stories (family office, medical evacuation), and Behind the Scenes (AI matching, FBO tour, in-flight catering). YouTube embed player with lazy-loaded iframe modal.
Every video gets VideoObject JSON-LD schema — this is how you get into Google's video carousel results. The entire page has an ItemList schema wrapping all video entries.
6. Trust Certification Infrastructure
Built three reusable components: TrustCertifications (WYVERN Wingman, ARG/US Platinum, IS-BAO Stage III, FAA Part 135 + NBAA/EBAA/AsBAA associations), MediaMentions (publication logo bar), and PriceMatchBadge (guarantee with 1% cashback messaging). Deployed across homepage (after TrustBar), footer (above payment methods), and getaway/fixed-price pages.
SEO & GEO Architecture
Every new page follows our established SEO protocol:
- generateMetadata — title, description, keywords, OpenGraph, Twitter Cards
- buildAlternates — hreflang tags for all 11 locales
- JSON-LD — BreadcrumbJsonLd + domain-specific schemas (Product, Offer, VideoObject, FAQPage, ItemList)
- FAQ sections — rendered HTML + FAQJsonLd for GEO (AI search engines like Perplexity, ChatGPT)
- Sitemap — all 24 new URLs registered with appropriate priority and changeFrequency
We also caught a critical architecture issue: two pages (fixed-price-charter, video-centre) were initially built as "use client" components, which meant they couldn't export generateMetadata. We refactored both into server component shells with extracted client components — the pattern every Next.js developer should follow.
3D Fleet Section + Multilingual Alt Text
While we were at it, we replaced the homepage fleet section's side-view images with our 161 3D aircraft renders. The transition required three iterations:
- First attempt: object-contain with padding → aircraft too small, floating in whitespace
- Second attempt: 4:3 aspect ratio with radial gradient → PNG's built-in background created a visible "white box" effect
- Final solution: 5:3 aspect ratio, object-cover, flat #f7f7f8 background matching the PNG's native background → seamless integration
We then expanded the aircraft alt text system from 2 languages (en/zh) to all 11 locales. Each locale has 4 natural-language template variations, with localized category labels (light jet → jet léger → ライトジェット → 라이트 제트 → طائرة خفيفة), range tiers, and speed descriptors. 161 aircraft × 11 languages × 4 templates = 7,084 unique alt text combinations.
By the Numbers
| Metric | Before | After |
|---|---|---|
| New files created | — | ~28 |
| Files modified | — | ~20 |
| Lines of code added | — | 4,500+ |
| New indexed pages | 102 | 126 (+24) |
| New product lines | 0 | 6 |
| Getaway destinations | 0 | 21 |
| Fixed-price routes | 0 | 20 |
| Alt text languages | 2 | 11 |
| Alt text combinations | ~400 | 7,084 |
| JSON-LD schema types | 17 | 17 (reused existing) |
| Tests passing | 261 | 261 |
| Build status | ✓ | ✓ |
What's Next
The product catalog is now significantly richer. Next priorities: wire the membership application form to a proper CRM, add real YouTube video IDs to the video centre (currently placeholder), expand getaway destinations to 40+, and continue monitoring Google indexing velocity — we should see these 24 new pages appear in the index within 1–2 weeks.
The competitive gap is closing. Our indexed page count (8,350) is already 5–8× our nearest competitor's estimated index. Now we're matching their product depth while maintaining our technical edge in AI, MCP, and developer tooling.
비행 준비가 되셨나요? 몇 초 안에 맞춤 전세 견적을 받으세요.
최신 소식 받기
엠프티 레그 특가, 신규 노선, 항공 인사이트를 이메일로 받아보세요.