Every week I audit a dealer website from the 240 we've surveyed. I run a single check before I look at anything else: view-source, search for application/ld+json, count the Vehicle or Product schemas per listing page. Nine times out of ten the count is zero.
This is the single highest-ROI 90 minutes of engineering work most dealer websites will ever do. Not a rebuild. Not a redesign. A script tag.
Why most dealers are missing this
The vast majority of dealer sites run on WordPress themes originally built for car dealerships. Those themes emit Vehicle schema — and Vehicle schema in Schema.org is specifically AutomobileVehicle-shaped: VIN, fuelType, vehicleInteriorType, numberOfAxles. None of that lines up with a boat's HIN, length overall, beam, draft, engine count, or propulsion type.
Google's crawler is strict: give it a Vehicle schema with missing required fields and it simply won't generate rich results. Worse, it'll downrank because it's trying to validate against the wrong ontology. You don't just lose the rich result — you lose relevance signal.
The schema that works
Schema.org doesn't have a native Boat type. The right move is a Product schema with marine-specific properties in additionalProperty fields. Here's exactly what BoaterOS emits for every listing:
Three things to notice:
- productID includes the HIN. This is your deduplication key across syndication. Boat Trader, YachtWorld, your site — one canonical ID per hull.
- AutoDealer seller, not Organization. Google has a specific seller surface for dealers. Use it.
- unitCode "FOT" is feet. Yes, schema.org uses UN/CEFACT codes. Meters is "MTR." This is the exact field 94% of dealer sites screw up.
"Adding schema is the rare SEO change where the payback is measurable in weeks, not quarters. It's also the one most dealers skip because it's invisible on-site."
The before/after: Coastal Yachts
Coastal Yachts in Annapolis came onto BoaterOS in November 2025. Their old site was WordPress running a well-reviewed auto-theme. We migrated them to our Next.js stack and emitted the Product schema above on every listing. 420 active hulls, 420 schema blocks.
90 days later:
- Organic sessions up 14.2% year-over-year (Feb 2025 vs Feb 2026), controlling for inventory volume
- Rich-result impressions in Google Search Console up 8.4×
- Click-through rate on listing pages up from 2.1% to 3.6%
- One listing — a 2019 Sabre 45 — started ranking #2 nationally for "used Sabre 45 for sale"
No new content was written. No backlinks bought. One script tag per listing.
Edge cases worth knowing
- Sold boats: keep the schema live with
"availability": "https://schema.org/SoldOut"for 30 days. Backlink authority stays, Google understands the state change. - Brokerage vs new: set
itemConditiontoUsedConditionand include engine hours. Without hours, used-boat schema fails validation. - Price on request: use
priceSpecification.price: "0"with"priceValidUntil"omitted. Do not skip the offer block entirely.
Validate before you ship
Two tools, both free: Google's Rich Results Test tells you if Google will generate a rich result. Schema.org's validator tells you if your JSON-LD is technically correct. Both give different answers sometimes. Pass both. Ship.
Marcus Chen is Head of Product at BoaterOS. Before BoaterOS he ran the marketplace SEO team at Etsy.