CitationTest Run the free check →

Vacation Rental Schema Markup for AI Search: The JSON-LD That Works

AI assistants understand your rental fastest when your page includes LodgingBusiness or VacationRental JSON-LD with name, address, geo coordinates, priceRange, and amenities. Below is a copy-paste example and exactly which fields matter — and why missing geo kills "near [landmark]" recommendations. Validate your schema free →

What is schema markup and why does AI need it?

JSON-LD turns your prose into machine-readable facts. Instead of hoping AI parses "sleeps four, two minutes from the beach" out of a paragraph, schema states it directly — and AI matches those structured facts to the questions travelers ask.

Which schema type should a vacation rental use?

Use LodgingBusiness (or its VacationRental subtype). Both are recognized lodging types that let you express location, price, amenities, and ratings. Accommodation works too, but LodgingBusiness is the broadest, best-supported choice.

What fields does ChatGPT actually use?

Name, address/areaServed, geo lat/lng, priceRange, amenities, check-in/out, maxOccupancy, and aggregateRating.

Why geo coordinates matter most

AI matches "stays near [landmark]" and "in [neighborhood]" off precise latitude/longitude — not your prose. Skip geo and you vanish from location-based queries even if your text names the landmark.

Copy-paste JSON-LD example for a vacation rental

Replace the placeholder values, then paste this into your page's <head>:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LodgingBusiness",
  "name": "Sunset Cottage Byron Bay",
  "description": "2BR self check-in cottage, 400m (5-min walk) to Main Beach.",
  "url": "https://your-direct-site.com",
  "telephone": "+61 2 5555 1234",
  "priceRange": "$180-$240 per night",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 Marine Parade",
    "addressLocality": "Byron Bay",
    "addressRegion": "NSW",
    "postalCode": "2481",
    "addressCountry": "AU"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": -28.6431, "longitude": 153.6122 },
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "WiFi", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Free parking", "value": true }
  ],
  "checkinTime": "15:00",
  "checkoutTime": "10:00"
}
</script>

Prefer it generated for you? The free check can produce this JSON-LD pre-filled from your own page.

How do I add this to my site without code?

Paste the block into your site's <head>, your SEO plugin's "header scripts" field, or a page's custom-code setting. It must end up in the served HTML — AI crawlers often don't run JavaScript, so script injected client-side won't be seen.

How do I know my schema is valid and AI-ready?

Confirm it parses as JSON and includes the key fields, especially geo. Then check your overall AI visibility and turn that visibility into direct bookings.

Frequently asked questions

What schema type is best for a short-term rental?

LodgingBusiness or its VacationRental subtype. Both let you express location, price, amenities, and ratings that AI can read.

Do I really need geo coordinates in my schema?

Yes — geo lat/lng is how AI answers "stays near [landmark]." Without it you're invisible to location-based queries even if your text mentions the landmark.

Where do I put JSON-LD on my page?

In a <script type="application/ld+json"> tag in the served HTML. It must be in the source, not injected by JavaScript, since AI crawlers often skip JS.

Can I add schema to my Airbnb listing?

No — you don't control Airbnb's markup. Schema is a lever only on a site you control, which is also where bookings skip the OTA commission.

How do I check my schema is valid?

Make sure it parses as JSON and includes the key fields. CitationTest's free check confirms your JSON-LD is present, valid, and includes geo.

Check whether your schema is AI-ready. Paste your URL and get your 0–100 AI-readiness score plus the exact fixes, in seconds. No signup. Every direct booking you win from AI skips the ~15–25% OTA commission.

Check my visibility →