What is schema markup, and why does your accommodation website need it to be recommended by AI?
If you have had an SEO audit done in the last few years, or asked anyone how to get your property showing up in AI search results, the phrase schema markup has likely come up at some point. It tends to be used with very little explanation attached. Let's change that.
Every web page carries more than the words and photographs your guests see. Behind it sits a summarised version of the page, written for machines rather than for people; that's schema markup. It is a short, factual summary that tells Google, Bing and the AI assistants exactly what the page is about and who you are, in a form they can read without having to interpret anything abstract (AI language models aren't great at understanding poetic and abstract details about your property). You may also hear it being called structured data, and for practical purposes the two terms mean the same thing.
For most of the last decade this was a niche technical concern that only really interested SEO consultants. That has changed with the rise of AI Search.
Springnest sites have carried schema markup for years, and in August 2026 we revised and extended it across every page type so that every property we host meets the current standard for AI search. It exists on every page of your site, and there is nothing to buy, request or configure. The rest of this article explains what it does, why it matters, and exactly what we publish on your behalf.
Why Schema Exists
A web page is written for people, with headings, photographs and brand messaging, and a search engine has to work out the meaning of all that as best it can. Schema markup removes the guesswork by stating the facts plainly alongside the page: this is a guest house, it is called X, it is in Y, this page describes a room that sleeps four, this page is an event running on these dates.
Think of it as the label on the back of a beverage bottle. The front is designed to appeal to a consumer to buy it. The back lists what is actually in it, in the same fixed format used on every other bottle, so anyone can check a single fact without reading the story on the front.
What it looks like
Here is a simplified version of what sits in the code of a hotel home page. We're using our Karoo theme as an example:
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Karoo Boutique Hotel",
"url": "https://karooboutiquehotel.co.za",
"telephone": "+27 23 555 0142",
"email": "stay@karooboutiquehotel.co.za",
"image": "https://karooboutiquehotel.co.za/images/courtyard.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "42 Church Street",
"addressLocality": "Prince Albert",
"addressRegion": "Western Cape",
"postalCode": "6930",
"addressCountry": "ZA"
},
"sameAs": [
"https://www.facebook.com/karooboutiquehotel",
"https://www.instagram.com/karooboutiquehotel"
]
}
Still with me?
Ok, read it as a list of statements rather than code:
- This page is about a hotel, not a restaurant or a shop
- It is called Karoo Boutique Hotel
- Here is exactly how to contact it
- Here is exactly where it is
- These social profiles belong to the same business, so do not treat them as a different property
Note how this is not an SEO cheat code. Every fact is simply stated once, in a fixed place, in a form that cannot be misread by algorithms and language models.
Different page types have unique opportunities for Schema
Room pages carry their own block on top of the business one.
{
"@context": "https://schema.org",
"@type": "HotelRoom",
"name": "Deluxe Family Room",
"description": "A ground-floor room with a private stoep facing the courtyard.",
"occupancy": {
"@type": "QuantitativeValue",
"maxValue": 4
},
"bed": {
"@type": "BedDetails",
"numberOfBeds": 2,
"typeOfBed": "King"
},
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Free WiFi", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Air conditioning", "value": true }
]
}
When an assistant is asked for a hotel in Prince Albert that sleeps four and has air conditioning, this is the difference between being a candidate and being invisible.
Why it matters more than it used to
Until recently, schema markup was mostly about how your listing looked in Google. It could turn a raw URL into a readable path through your site, or pull your event dates into a panel beside the result. Worth having, but cosmetic, and easy to treat as an SEO nicety rather than something that changed outcomes.
AI assistants changed the value of it. When someone asks ChatGPT or Google's AI results for a family lodge near the Garden Route with a pool, the assistant is not browsing your site the way a guest would. It is looking for clear, specific, machine-readable facts it can trust and repeat. Schema markup is the cleanest version of those facts you can give it.
This is why we are direct about the limits too. Schema markup does not make you rank higher on its own. It does not create demand. What it does is remove ambiguity, so that when your property is a genuine match for what someone is asking, nothing is lost in translation.
Which raises a fair question: if the assistants are reading a summary, does the writing on your website still matter? Yes, and arguably more than it did before. Schema only carries plain facts, and plain facts have never been what makes someone choose one guest house over another. Assistants read your actual pages as well, and that is where they find the language they use to describe you, and how they judge whether you fit a request like somewhere quiet for a long weekend with the dogs. Schema makes sure nothing factual gets misread. The rest of the job is still done by your words, your photographs and videos, your design, your website's functionality, and your booking engine.
What Springnest publishes on your site
This is the full list. Nothing here needs to be requested or configured.
On every page
Details about your business: Typed to what your property actually is: Hotel, Bed & Breakfast, Guest House, Lodge, Hostel, Motel, Resort, Campground, Self-catering, Restaurant, Travel Agency, Tourist Information Centre, Winery or Bar. Alongside the type sits your name, address, phone number, email, map link, logo, photos and social profiles.
Why: you are identifiable no matter which page someone lands on. Previously only the home page said who you were.
Breadcrumbs: Google can show the path through your site in search results instead of a raw URL.
What we publish on each type of page on your site
| Page type | What we describe | Why it matters |
|---|---|---|
| Rooms and units | Sleeps, size, bedrooms, amenities, photos, booking link | So an assistant asked "do they have a family room with air conditioning?" can answer correctly instead of guessing. |
| Events | Start and end dates, the venue and its location, booking link | So your event can show up with its dates when someone searches for what is on that weekend. |
| Special offers | Valid-from and valid-until dates, booking link | So a winter special reads as a real offer that starts and ends on a date, rather than words on a page. |
| Activities and things to do | Name, description, photos | So you come up when someone asks what there is to do near where you are. |
| Guest reviews | Guest name, date, their actual words, and the source | So an assistant can repeat what a guest actually said about you, and say who said it. |
| Blog posts | Headline, author, publish and update dates, image | So your writing is recognised as yours, with a date on it, rather than as an anonymous page. |
| FAQ pages | Each question paired with its answer | So the answer you have already written can be handed straight back to whoever asked the question. |
| Marketplace listings | Typed per listing kind, with guests, bedrooms, beds and bathrooms | So every property in your collection is understood as a place to stay in its own right, not just an entry on a list. |
| Index pages (rooms, offers, events, blog) | A list of what is on the page, linking to each item | So a search engine knows this page lists all your rooms, and can find its way to each one. |
What we deliberately leave out, and why
There are three things we do not to publish for you. Here's why.
Static rates: If you have a rate table on your website, those numbers stay out of the schema. They are a guide for guests reading the page, not live availability-checked pricing, and they go out of date the moment a season changes. A stale rate sitting in Google's index is worse than no rate at all, and in some markets quoting a price you cannot honour carries a consumer-protection risk. Live rates belong in your booking engine, which is where a guest gets a real number for their actual dates.
Star ratings: You have probably seen gold stars sitting under a search result. Google will not show those for reviews a business has collected and published on its own website, and accommodation is left out of that feature almost entirely. So we leave it out. The stars guests do see when you come up in Google search or on Google Maps come from your Google Business Profile and the review sites, not from your own website.
Exact locations on Marketplace listings set to "approximate": On a Springnest Marketplace site, a listing can be set to show its location approximately rather than giving away the street address. Where that setting is on, we keep the exact coordinates out of the schema as well. Hiding an address on the page and publishing it in the code would defeat the point.
How to check and validate your own site's schema
You can verify all of this yourself, on any page, in under a minute.
- Google's Rich Results Test at search.google.com/test/rich-results. Paste a page URL and it shows you what Google reads.
- The Schema Markup Validator at validator.schema.org. A stricter, vendor-neutral check.
- Google Search Console, under Enhancements. This is where you track how it performs over time.
Before you add schema of your own
If you paste your own schema markup into your site's custom head code, it can contradict what we already publish. Two conflicting descriptions of the same business are worse than one clear description.
If you have added markup of your own, or an agency has, tell us and we will sort out which version should stand.
In summary
Your site already tells search engines and AI assistants who you are, what you sell, and what guests say about you, in a format they can read without interpretation. It happens automatically. You do not need to buy it, request it, or manage it.
If you want to see it, use the Rich Results Test. If you want it changed, ask us.