Structured data for tour operators means adding a small block of machine-readable code to each tour, activity or hotel page so that search engines and AI systems can read the facts on it without guessing: what the trip is, where it runs, how long it lasts, what it costs and what guests say about it. For most tour operators the markup worth adding is a short list: Organization or TravelAgency, the tour or activity itself, Offer, Review ratings where they are genuine, and BreadcrumbList. Everything else is optional.
It will not fix a weak page, and it does not guarantee a rich result. What it does is remove ambiguity, which matters more every year as AI answers summarise tour pages instead of sending a click. Below we set out what to mark up, in what order, how to avoid the common mistakes, and how to check the result with tools you already have.
What structured data actually does for a tour page
Google explains that it uses structured data it finds on the web to understand the content of a page and to gather information about the wider world. It recommends JSON-LD as the format that is easiest to maintain, and says the other formats are equally acceptable if the markup is valid. You can read the basics in Google’s introduction to structured data.
For a tour operator this means your page can say, in a form a machine understands, “this is a three-hour snowmobile safari, it starts at this address, an adult ticket is 129 euros, and 212 guests have rated it”. The visible text says the same thing to humans. The markup is simply the second copy for software.
Structured data should describe what a guest can already see on the page. If the markup says something the page does not, you have created a problem rather than solved one.
That single rule keeps most operators out of trouble. Google’s general structured data guidelines make the same point: markup should be a true representation of the page content.
The vocabulary: schema.org types that suit travel
The shared vocabulary is schema.org. It includes a type called TouristTrip, which describes a trip designed for tourists and has properties such as touristType and itinerary. It also offers broader types you may meet in plugins and templates, including Product, Event, LodgingBusiness and Hotel.
An honest caveat: Google’s search gallery lists the features that can produce visible enhancements in results, and not every schema.org type appears there. A type can be valid and useful for describing your business to other consumers of the data, including AI systems, without ever producing a special result in Google. We treat it as a clarity exercise first and a rich-result opportunity second.
| Type | Where it belongs | Why it helps |
|---|---|---|
| Organization or TravelAgency | Home page | States who you are, your logo, your social profiles and your contact details |
| TouristTrip or Product | Each tour page | Describes the tour itself: name, description, itinerary, tourist type |
| Offer | Inside the tour markup | Price, currency, availability and the booking URL |
| AggregateRating and Review | Only where reviews are shown on the page | Connects genuine guest ratings to the tour |
| Event | Fixed-date departures, festivals, special dinners | Dates, location and ticket details |
| LodgingBusiness or Hotel | Accommodation pages | Address, amenities, check-in times |
| BreadcrumbList | Every deep page | Shows how the page sits in your site structure |
Step 1: mark up the business once, properly
Start on the home page with Organization, or TravelAgency if that describes you accurately. Include the legal or trading name exactly as it appears on your site, a logo URL, your website address, and links to your official profiles such as Google Business Profile, Facebook, Instagram and YouTube. The links to profiles help systems connect the dots between your website and the other places your business is described.
Keep the details identical everywhere. If your site says “Northern Trails Ltd” and your Google profile says “Northern Trails Adventures”, you are making the entity harder to recognise. A mismatch in a phone number or address does the same damage. Fixing this takes an afternoon and costs nothing.
Step 2: describe each tour as a thing with a price
This is where most of the value sits. For each tour page, the markup should carry the same facts a guest needs before booking:
- The tour name, matching the page heading.
- A description of one or two sentences, matching the page intro.
- The duration, the starting location and the season it runs.
- An Offer with price, currency, and a URL pointing to the booking page.
- Who it suits, using touristType where it fits, for example families or couples.
Be careful with price. If a tour has several ticket types, mark up the main adult price or use a price range, and make sure the figure is current. A price in markup that differs from the price on the page, or from the price in the booking widget, is the fastest way to lose trust. If your prices change by season, put a reminder in your calendar to review the markup at the same time as the price list.
Availability needs the same discipline. Do not mark a tour as in stock all year if it only runs from December to March. Where a tour has fixed departures, use Event markup for each date instead, or leave availability out rather than state something untrue.
Step 3: use reviews only where they are real and visible
Ratings are the part operators most want to mark up and the part most likely to cause trouble. Our rule is simple. Add AggregateRating only when the page itself shows the rating and the number of reviews, and when those reviews are genuine feedback about that tour. Do not mark up a rating you copied from another platform if guests cannot see the reviews on your page, and never invent or round up figures.
Many small operators collect reviews on TripAdvisor or Google and not on their own site. That is fine. Then you either embed a review feed that shows the reviews on the page, or you skip the rating markup. We cover the collection side in our guide to asking for reviews after a tour, which is where the supply of honest reviews begins.
Step 4: add breadcrumbs and keep the page clean
BreadcrumbList is small and dull, and it is useful. It shows that a snowshoe walk page sits under Winter, then Activities, then the home page. That helps search engines understand your structure, and it often shows a tidy path under your title in results.
Then look at the page itself. Structured data sits on top of a page, and it cannot rescue a thin one. A good tour page has a clear heading, a short description, an itinerary, what is included, the meeting point, a price, a prominent booking button and answers to common questions. If you want a fuller view of how the page, the keywords and the content fit together, our guide to SEO for tour operators walks through it.
A worked example, with made-up details
Take an imaginary operator, Fjordline Walks, which offers a half-day guided coastal hike. The page already shows the name, a two-sentence description, a four-hour duration, a start point at a harbour, a price of 85 euros for adults, and a Book now button. The structured data for that page would state the same name, description and starting place, plus an Offer with the price in euros and the booking URL, and a breadcrumb path. Nothing else. No rating, because the page shows no reviews yet. No Event, because the hike has no fixed dates.
That is a complete and honest markup. It is also short, which is the point. Add what is true and visible, and stop.
How booking systems and plugins fit in
Most tour sites run on WordPress, Wix or Squarespace, with a booking system such as FareHarbor, Bokun, Rezdy or Checkfront embedded or linked. Three practical points follow.
First, the booking widget is usually loaded from another domain, so the information inside it is often invisible to search engines reading your page. That is exactly why your own page, and its markup, needs to carry the price, the duration and the description in plain text. Do not assume the widget does this for you.
Second, an SEO plugin may already output some markup, typically Organization, WebSite and BreadcrumbList. Check before adding more, because duplicate or conflicting blocks create noise. Look at the page source or use a testing tool rather than guessing.
Third, if you do add tour markup through a plugin or by hand, add it to one page first, test it, and only then roll it out to the rest. Our article on tour booking flows on mobile covers what happens after the click, which is where the markup stops mattering and the checkout starts.
Why this matters for AI search as well
AI assistants and AI summaries build their answers from pages they can read and trust. Clear facts, consistent names and an unambiguous price make your page easier to quote. We cannot promise that markup produces a citation, and nobody outside the platforms can. What we can say is that it removes avoidable uncertainty, and that it sits alongside the content work described in our piece on how tour operators get cited by ChatGPT and AI Overviews.
How to test and maintain your markup
Use Google’s Rich Results Test and the Schema Markup Validator to check for errors, and use Search Console to see whether Google reports problems with any structured data on your site. Test after every template change, plugin update or redesign, since those are the moments markup quietly breaks.
Then build a short routine. Review prices and availability in the markup whenever you change the price list. Review ratings each quarter. Review the whole set once a year, at the same time as your marketing calendar for 2027. If you would rather have this handled as part of a wider content programme, our SEO blog system for travel brands covers the pages, the posts and the technical basics together.
Frequently asked questions
Is structured data a ranking factor?
Google describes structured data as a way to help it understand a page and, for some features, to show enhanced results. It does not present markup as a direct ranking boost, so treat it as a clarity and eligibility tool rather than a shortcut up the rankings.
Which format should we use?
JSON-LD. Google recommends it in most cases because it sits in one block rather than being woven through your page text, which makes it easier to maintain. Microdata and RDFa are also supported if your platform uses them.
Do we need a developer?
Not always. Many SEO plugins handle the business and breadcrumb markup. Tour-level markup usually needs a plugin setting, a template tweak or a short piece of code, so a developer helps, but the content of the markup should come from you.
Can we mark up reviews from TripAdvisor or Google?
Only if those reviews are visibly shown on the page and are genuine reviews of that tour. If guests cannot see them on your page, leave the rating markup out, and consider whether the platform’s own terms allow reuse.
How long until we see a result?
Search engines need to recrawl the page first, which can take days or weeks. Any visible effect is uncertain and depends on the feature, so judge the work by whether the markup validates and matches the page, not by a quick change in clicks.
Where to start this week
Pick your best-selling tour. Check that the page shows the name, duration, price and booking link in plain text. Add the matching markup, test it, and fix any errors. Then repeat for the next tour. A dozen accurate pages are worth more than a hundred careless ones.