We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.
Tour operator pages with TravelAgency + TouristTrip context, FAQs, and breadcrumb navigation.
Anchors the tour operator’s identity, contact info, and services.
Describes the tour itinerary, duration, and destination.
Answers questions about inclusions, refunds, and meeting points.
Provides navigation context to the tour page.
Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).
Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.
[
{
"@context": "https://schema.org",
"@type": "TravelAgency",
"@id": "https://www.example.com/tours#agency",
"name": "Cascade Trail Tours",
"url": "https://www.example.com/tours",
"telephone": "+1-206-555-0130",
"image": "https://www.example.com/images/cascade-tours.webp",
"address": {
"@type": "PostalAddress",
"streetAddress": "450 Pine St",
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98101",
"addressCountry": "US"
},
"priceRange": "$$"
},
{
"@context": "https://schema.org",
"@type": "TouristTrip",
"@id": "https://www.example.com/tours/alpine-lakes#trip",
"name": "Alpine Lakes Day Tour",
"description": "Guided day trip to three alpine lakes with hiking and lunch included.",
"touristType": "Adventure Travelers",
"itinerary": [
{
"@type": "ItemList",
"name": "Day Tour Itinerary",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Departure from downtown Seattle" },
{ "@type": "ListItem", "position": 2, "name": "Hike and lake visit" },
{ "@type": "ListItem", "position": 3, "name": "Lunch at the trailhead" }
]
}
],
"offers": {
"@type": "Offer",
"price": "149.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://www.example.com/tours/alpine-lakes#book"
}
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is included?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Transportation, guide, lunch, and park entry fees are included."
}
},
{
"@type": "Question",
"name": "Where is the meeting point?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We meet at 8:00 AM at 450 Pine St, Seattle. Exact details are sent after booking."
}
},
{
"@type": "Question",
"name": "What is the cancellation policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Full refunds are available up to 48 hours before departure."
}
}
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
{ "@type": "ListItem", "position": 2, "name": "Tours", "item": "https://www.example.com/tours" },
{ "@type": "ListItem", "position": 3, "name": "Alpine Lakes", "item": "https://www.example.com/tours/alpine-lakes" }
]
}
]Yes. Include one TouristTrip per tour listing if multiple tours appear on the page.
Use offers.url to point to the pricing selector and keep visible ranges aligned with the Offer.