Context
Use this for any hospitality client: hotels, campgrounds, holiday parks, restaurants, resorts, or B&Bs. Hospitality SEO differs from standard local SEO in several ways: business-type-specific schema (LodgingBusiness, Campground, Hotel, Restaurant), OTA platform dependencies (Booking.com, ACSI, TripAdvisor), strong seasonal demand patterns, multi-language requirements for tourism markets, and photo/gallery-heavy content. This skill produces a complete hospitality SEO playbook covering all vertical-specific optimizations.
Procedure
- Classify the business using schema.org hospitality hierarchy: Hotel, Campground, Resort, LodgingBusiness, BedAndBreakfast, Restaurant, FoodEstablishment, or CafeOrCoffeeShop.
- Audit current schema markup against the correct @type and required properties (address, geo, priceRange, openingHours, amenityFeature, starRating, aggregateRating).
- Inventory all OTA and tourism platform listings: Booking.com, ACSI, TripAdvisor, Zoover, Google Hotels/Travel, Expedia, Airbnb, camping-specific directories.
- Audit each OTA listing for completeness: photos, descriptions, amenity lists, pricing accuracy, response rate, review management.
- Map seasonal demand: identify high season, shoulder seasons, low season, and key events/holidays that drive bookings.
- Design 12-month content calendar aligned to seasonal demand: pre-season inspiration content, peak-season experience content, off-season deals and planning content.
- Plan multi-language SEO: identify target markets, design URL structure per language, specify hreflang tags, plan content localization (not just translation).
- Audit photos and gallery: image quality, alt text, file size optimization, schema ImageObject, and gallery page structure.
- Recommend event schema for seasonal activities, festivals, and special offers.
- Create FAQ page strategy targeting common guest queries per season and language.
Output Format
# Hospitality SEO Playbook: [Business Name]
## Business Classification
- **Type:** [Hotel / Campground / Holiday Park / Restaurant / Resort / B&B]
- **Schema @type:** [schema.org type]
- **Required properties:** [list]
- **Current status:** [implemented / partial / missing]
## Schema Specification
```json
{
"@context": "https://schema.org",
"@type": "[BusinessType]",
"name": "[name]",
"description": "[description]",
"address": { "@type": "PostalAddress", ... },
"geo": { "@type": "GeoCoordinates", "latitude": "", "longitude": "" },
"priceRange": "[range]",
"openingHoursSpecification": [...],
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "[amenity]", "value": true }
],
"starRating": { "@type": "Rating", "ratingValue": "[N]" },
"aggregateRating": { "@type": "AggregateRating", ... },
"image": [...],
"url": "[url]",
"telephone": "[phone]",
"checkinTime": "[time]",
"checkoutTime": "[time]"
}
```
## OTA Platform Audit
| Platform | Listed? | Profile Complete? | Photos | Description | Reviews | Response Rate | Action |
|----------|---------|------------------|--------|-------------|---------|--------------|--------|
| Booking.com | Yes/No | [%] | [N] | OK/Partial | [N] ([avg]) | [%] | [action] |
| ACSI | Yes/No | [%] | [N] | OK/Partial | [N] ([avg]) | [%] | [action] |
| TripAdvisor | Yes/No | [%] | [N] | OK/Partial | [N] ([avg]) | [%] | [action] |
## Seasonal Content Calendar
| Month | Season | Content Theme | Content Types | Target Keywords | Language |
|-------|--------|--------------|---------------|----------------|----------|
| Jan | Low | Early bird deals, planning | Blog, email, social | "[type] boeken 2027" | NL, DE |
| Feb | Low | Spring break preview | Blog, landing page | "[type] voorjaarsvakantie" | NL, DE |
| Mar | Shoulder | Pre-season preparation | Blog, social, GBP post | "[type] Pasen" | NL, DE, EN |
| ... | | | | | |
## Multi-Language SEO Plan
| Language | Market | URL Structure | Hreflang | Priority Pages | Localization Notes |
|----------|--------|--------------|---------|---------------|-------------------|
| NL | Netherlands | /nl/ or root | nl-NL | Home, Accommodation, Activities, FAQ, Contact | Primary language |
| DE | Germany, Austria | /de/ | de-DE | Home, Unterkunft, Aktivitäten, FAQ, Kontakt | Formal tone, metric units, € |
| EN | International | /en/ | en-GB | Home, Accommodation, Activities, FAQ, Contact | British English for EU |
| FR | Belgium, France | /fr/ | fr-FR | Home, Hébergement, Activités, FAQ, Contact | Formal tone |
## Photo & Gallery Optimization
| Check | Status | Action |
|-------|--------|--------|
| All images have descriptive alt text | pass/fail | [action] |
| Images optimized for web (WebP, under 200 KB) | pass/fail | [action] |
| Gallery page is crawlable (not JS-only) | pass/fail | [action] |
| ImageObject schema on key photos | pass/fail | [action] |
| Photos show: exterior, rooms, amenities, dining, activities | pass/fail | [action] |
## FAQ Strategy
| Question | Language | Target Page | Schema |
|----------|----------|------------|--------|
| [common guest query] | NL | /veelgestelde-vragen | FAQPage |
| [common guest query] | DE | /de/haeufige-fragen | FAQPage |
## Priority Actions
| # | Action | Priority | Impact | Effort |
|---|--------|----------|--------|--------|
| 1 | [action] | P0/P1/P2 | High/Med/Low | High/Med/Low |
QA Rubric (scored)
- Schema accuracy (0-5): @type matches business category, all required properties populated, validated against schema.org.
- OTA completeness (0-5): all relevant OTAs audited with specific per-platform recommendations.
- Seasonal alignment (0-5): content calendar reflects actual demand patterns with specific content types and keywords.
- Localization quality (0-5): multi-language plan includes cultural adaptation, not just translation, with correct hreflang.
Examples (good/bad)
- Good: "Wetland.nl classified as Campground (schema.org). Schema specification includes amenityFeature for swimming pool, playground, WiFi, dog-friendly pitches. Seasonal calendar: January content targets 'camping boeken 2027' (NL) and 'Campingplatz buchen 2027' (DE) with early-bird landing pages. Hreflang: nl-NL (root), de-DE (/de/), en-GB (/en/), fr-FR (/fr/). Booking.com listing: 134 reviews, 8.1 avg, 92% response rate — optimize description and add 10 more photos (pool, playground, sunset view). ACSI listing: missing winter photo set and seasonal hours update."
- Bad: "Add schema markup. Optimize for keywords. Create content for each season." (no @type specified, no OTA audit, no seasonal data, no multi-language plan, no photo strategy)
Variants
- Accommodation variant: focused on hotels, campgrounds, holiday parks, B&Bs — emphasizes LodgingBusiness schema, OTAs, room/pitch type pages.
- Restaurant variant: focused on restaurants, cafés — emphasizes Menu schema, reservation platforms (TheFork, OpenTable), food photography, Google Maps food queries.
- Activity variant: focused on attractions, tours, activities — emphasizes TouristAttraction schema, event listings, seasonal activity pages.
- Multi-property variant: hotel/park chains with multiple locations — combines hospitality-specific SEO with multi-location management.