Marketing Analytics

Flight Search Visibility Analysis

Flight Search Visibility Analysis

A travel brand wants to know whether it is visible when someone searches for a flight. The simplest answer is a rank report: average position by query, week over week. That number is easy to produce and easy to misread. Rank is not visibility, one snapshot is not a trend, and a result page is a composition of aggregators, airlines, media and OTAs — not a single competitive position.

The decision

The marketing team needed to decide where search investment should go: which destinations and query types are dominated by aggregators, where an airline or OTA can still appear on the first page, and whether the wording of a query changes the result mix. It also needed to know which claims the data could support. A one-day snapshot can describe composition; it cannot demonstrate improvement or attribute traffic.

What we worked with

A structured search-results extract for 100 destinations, each queried in two phrasings and two locales:

  • Query: "flights to [destination]" and "tickets to [destination]", giving 200 distinct search terms.
  • Locale: US and UK versions of the same search engine, producing two result sets per term.
  • Result: position, title, snippet, displayed domain and URL for the top ten results.
  • Context: query time, result count and search-engine parameters.

The traps we designed around

  • The grain is not query plus rank. Each term appears twice — once per locale — so the same query and rank occur in two different result sets. Deduplicating on those two fields would silently delete one market. The correct grain is query × locale × rank.
  • Rank is not visibility. The extract contains organic positions only. It does not show impressions, clicks, ads, featured snippets or map results. A page-one position can still receive little attention if the result is below a large ad block.
  • One day is a snapshot. There is no seasonality, no algorithm update and no before-and-after. The analysis can say what the page looked like; it cannot say whether a change worked.
  • The query set is designed, not sampled. One hundred destinations and two phrasings are a useful comparison, but they are not a random sample of all travel demand. Conclusions apply to the query set, not to the market as a whole.
  • Domains need normalisation. The same brand appears with different country domains and subdomains. Counting "kayak.com" and "kayak.co.uk" separately understates aggregator concentration; classifying them requires a documented brand map.
  • Snippet prices are text, not data. Prices quoted in titles and snippets may be examples, conditional fares or stale. Parsing them into a fare comparison would create false precision.

How the analysis was built

  1. Fix the grain and validate it. We confirmed the expected number of rows per query, locale and rank before any aggregation, and treated any mismatch as a data issue rather than an analytical result.
  2. Normalise domains and brands. Country domains and subdomains were mapped to parent brands, and each result was classified as aggregator, airline, OTA, media or other.
  3. Describe composition, not just position. For each query set, we measured the share of top-ten results by category and the number of distinct brands represented.
  4. Compare the two design dimensions. Results were compared across phrasing and locale, with the comparison stated as a description of this snapshot rather than a causal claim about wording or geography.
  5. Keep price text out of quantitative claims. Snippet prices were reported as "present or absent", not as a fare benchmark.
  6. Document the limits. The output includes a short note on what would be required to measure change: repeated snapshots, stable query set, and click or impression data.

What this changes

  • The conversation moves from rank to composition. "We rank seventh" becomes "we appear on page one for these queries, next to these aggregators, in this locale".
  • Phrasing and locale become explicit variables. The team no longer averages across them without checking whether the result mix differs.
  • Aggregator concentration is visible. The share of first-page results held by aggregators is a more useful competitive measure than a single brand's average position.
  • Price claims are handled cautiously. Snippet prices are treated as marketing copy, not as a source of fare data.

What you receive

  • A validated result table with an explicit grain.
  • A domain and brand classification with the mapping documented.
  • First-page composition by destination, phrasing and locale.
  • A visibility summary with the snapshot's limits stated.
  • A measurement plan for repeated snapshots and click-level data.

Where this applies

The method fits travel, e-commerce and any business whose demand starts with a search. The minimum inputs are a fixed query set, result position, displayed domain, locale and the date of collection. The first deliverable is usually a grain and domain-mapping note — most search reports fail before the chart stage.

This is an illustrative case study using a public search-results snapshot; it does not report results from a specific client engagement. It reflects our standard method for search visibility analysis.

Start your free consultation

Focus on your business; let us back you up with data support

Submitting opens your email client with the message ready to send.