GMT+8 SG --:-- 0000 X 0000 Y /
← 全部文章← All writing

VOLO engineering diary

Engineering Diary, Day 13: Content Expansion & Schema Richness — 52 Operators, 20 Case Studies, and Google Can't Ignore Us Now

Originally published on flyvolo.ai as part of the VOLO Engineering Diary (2026-02-27), documenting the build of the VOLO private-aviation platform between February and May 2026. When VOLO changed direction in September 2026 the 25 entries were moved here as an archive. The text is unchanged; the products, pages and links it mentions no longer exist. Original byline: VOLO CTO.

The Thin-Content Problem

The CEO did what CEOs do: browsed the site like a customer. His verdict was blunt: "还有些栏目的页数不够" — some sections don't have enough pages.

He was right. We ran a content audit across every section:

SectionPagesVerdict
Fleet218✅ Rich
FBOs152✅ Rich
Routes102✅ Solid
Destinations101✅ Solid
Blog73✅ Solid
Empty Legs62✅ Okay
Airports52⚠️ Moderate
Operators32🔴 Thin
Case Studies5🔴 Very thin
Insights5⚠️ Data-rich but invisible

Three targets emerged: Case Studies needed quadrupling, Operators needed global expansion, and Insights — despite having genuinely valuable aviation data — were invisible to Google.

Case Studies: 5 → 20

The original 5 case studies covered the basics: diplomatic charter, corporate relocation, medical evacuation, cost savings, AI matching. Useful, but narrow. Private aviation serves far more use cases than that.

We added 15 new case studies across 3 new categories:

CategoryNew Cases
SportsPremier League team charter (38 passengers, season-long), Formula 1 season logistics (23 races, 4 continents)
LuxuryDestination wedding in Santorini, yacht-to-jet Mediterranean transfer, pet relocation (dogs + parrots, pressurized cabin)
LogisticsAOG aircraft parts delivery (engine on ground, 4-hour turnaround)
EmergencyHurricane evacuation (48 passengers, Category 4), volcanic ash rerouting (Eyjafjallajökull 2.0)
MedicalOrgan transport (4h 12min cold ischemia window), neonatal ICU transfer
CorporatePE due diligence tour (5 cities in 3 days), film production unit moves, Fortune 500 board retreat
SavingsFamily office annual membership ($2.1M saved), group charter vs. 40 first-class tickets
TechnologyAI-powered real estate tour (6 properties, 3 states, 1 day)

Each case study is fully bilingual (EN/ZH), has 4 quantitative stats, a challenge/solution/result narrative arc, and a client testimonial. The category system now has 8 types: emergency, corporate, medical, savings, technology, luxury, sports, and logistics — each with its own color in the filter UI.

Operators: 32 → 52

Our operator directory had a geographic blind spot. 32 operators, mostly US-based or well-known European names. The private aviation market is global, and our SEO needed to reflect that.

We added 22 operators across 6 regions:

RegionNew Operators
Asia-PacificMJets (Thailand), HK Bellawings (Hong Kong), Jet Asia Airways (Thailand), PremiAir (Australia)
Middle EastFalcon Aviation (UAE), Empire Aviation (UAE), Saudia Private (Saudi Arabia), Qatar Executive (Qatar)
Latin AmericaAerolíneas Ejecutivas (Mexico), TAM Aviação Executiva (Brazil), Global Aircraft Solutions (Mexico), Avjet Ruta Maya (Mexico)
EuropeSparfell (Austria), Air Hamburg (Germany), Tyrolean Jet Services (Austria), Farnborough Jet Centre (UK)
Regional USSolairus (California), Silver Air (California), Nicholas Air (Mississippi), Mountain Aviation (Colorado)
South AsiaACS India (India), Acropolis Aviation (UK, VIP airliner specialist)

Every operator entry has: bilingual name and description, headquarters, founding year, fleet size, fleet types, operating regions, key facts, certifications (IS-BAO, Wyvern, ARGUS), and cross-references to related airport pages. 859 new lines of curated data.

The Schema.org Blitz: 22 Pages, 4 New Types

Content is useless if search engines can't understand it. We had JSON-LD structured data on fleet and route pages, but operators, airports, FBOs, services, case studies, and empty legs had none.

We built 4 new JSON-LD schema components:

  • OperatorJsonLdOrganization schema with airline IATA codes, fleet descriptions, operating areas
  • AirportJsonLdAirport schema with ICAO/IATA codes, geo coordinates, operating hours
  • FBOJsonLdLocalBusiness schema with services offered, amenities, parent airport reference
  • ArticleJsonLdArticle schema for case studies with author, datePublished, image

Then deployed them systematically:

SectionPagesSchema Added
Operators2 (listing + detail)Organization + BreadcrumbList + FAQPage
Airports2 (listing + detail)Airport + BreadcrumbList + FAQPage
FBOs2 (listing + detail)LocalBusiness + 5-level BreadcrumbList
Services9 (all service pages)BreadcrumbList
Case Studies2 (listing + detail)Article + ItemList + BreadcrumbList
Empty Legs2 (listing + detail)BreadcrumbList
Fleetall detail pagesProduct (enhanced with additionalProperty + aggregateRating)

879 lines of structured data. Every page now has breadcrumbs. Google's Rich Results Test passes clean on all of them.

The Invisible Reports

Then came the second CEO insight: "行业报告我感觉没有被谷歌引用啊,但其实数据和分析的含金量非常高" — our industry reports aren't showing up on Google, but the data quality is genuinely high.

He was right again. Our VOLO Insights reports — monthly global business aviation statistics powered by Avi-Go's ADS-B data — had a DatasetJsonLd component, but it was bare-bones. Just a name, description, and download link. Google Dataset Search needs much more to surface a dataset.

We enriched the DatasetJsonLd with everything Google's dataset guidelines recommend:

  • spatialCoverage — 6 regions: North America, Europe, Middle East, Asia-Pacific, Latin America, Africa
  • variableMeasured — 10 metrics: Flight Departures, Aircraft Utilization Rate, Airport Traffic Rankings, Operator Market Share, YoY Growth, Regional Market Share, Flight Range Distribution, Route Traffic Volume, Fleet Active Count, Daily Average Departures
  • measurementTechnique — "ADS-B flight tracking data aggregated from global coverage network, validated against FAA and Eurocontrol records"
  • author field (Google prefers author over creator for dataset discovery)
  • includedInDataCatalog — References the VOLO Insights catalog as a whole
  • distribution — Multi-format: HTML report page + JSON data export

The reports contain real data — 263,595 flights in January 2026, Citation Longitude leading utilization at 55.69%, Miami–New York as the hottest route with 711 flights. This is the kind of structured, quantitative content that Google Dataset Search was built to surface. Now the schema actually tells Google what it's looking at.

The Numbers

MetricBeforeAfter
Case Studies520
Case Study Categories58
Operators3252
Operator Regions3 (US, Europe, Gulf)6 (+ Asia-Pacific, Latin America, South Asia)
JSON-LD Schema Types711
Pages with Structured Data~1537+
Pages with Breadcrumbs022
Dataset Variables Declared010
Lines Added2,808
Files Modified26
TypeScript Errors00

Commits

07c8807 — CLAUDE.md documentation update reflecting current codebase state.

b8b137d — JSON-LD structured data and breadcrumbs across 22 pages (879 insertions).

6a0c43c — Case Studies 5→20, Insights DatasetJsonLd fix (613 insertions).

bc65e6e — Operators 32→52 with 22 global charter operators (859 insertions).

SEO isn't a feature you ship once — it's a language you teach your entire site to speak. Every page without structured data is a page speaking HTML to a search engine that understands Schema.org. Every thin content section is a missed opportunity for long-tail queries that your competitors are already ranking for. Today we didn't just add content — we gave every page the vocabulary to describe itself to machines. 2,808 lines of code, and not a single one is visible to human visitors. All of it is for the robots.