BFBambooForge Labs

Rich Snippets & Schema.org Structured Data

FAQ, How-to, Local Business and Event structured data plus offer, brand and rating properties - with a validator that names what is missing.

Buy on the Odoo Apps StoreOpen the live demoWebsite€406Community & Enterprise

Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0. Technical name bambooforge_rich_snippets.

Odoo 16.0Odoo 17.0Odoo 18.0Odoo 19.0
Full walkthrough on a live Odoo 19.0 database, with subtitles. It ends with what this app deliberately does not do.

Rich Snippets & Schema.org Structured Data

An add-on for BambooForge SEO Pro. SEO Pro publishes the structured data every page needs; this adds the four types that make a search result look different, and the properties a product needs before it can appear as a shopping result.

Install

Install BambooForge Rich Snippet Pack. It requires BambooForge SEO Pro. Nothing changes on any page until you pick one of the new schema types: existing pages keep the structured data they have.

Structured data must be switched on for the website - Website settings → SEO in SEO Pro - or nothing is emitted at all.

Where you enter it

SEO Pro → SEO Pages, open a page, Advanced → Structured data, pick the schema type. New notebook pages appear for the type you picked:

Schema type

Where the data goes

FAQ page

Questions tab on the page

How-to guide

Steps tab on the page

Local business

Local business tab on the website

Event

Event tab on the page

Product

Offer & rating tab on the page

Local business data lives on the website rather than on each page: it is the same shop whichever page mentions it. Blank address fields fall back on the company address, so most sites only fill in the type and the opening hours.

The verdict

Beside the schema type is a badge:

No rich result

The page emits SEO Pro's normal structured data and nothing extra.

Missing required data

The type is picked but Google's published requirements are not met. The warning box lists what is missing, in the order it bites - two questions minimum for a FAQ, an instruction on every how-to step, a street and a city and opening hours for a local business, a rating between 1 and 5 with a review count beside it, an event that does not end before it starts.

Eligible

Everything a rich result needs is there.

The badge is stored, so SEO Pages can be sorted and filtered on it: on a site with 300 pages that list is the work queue.

Preview JSON-LD

The button beside the badge shows exactly what a crawler receives. It is not a rebuild for the form - it is the same call the page controller makes, so what you read is what is published. Paste it into Google's Rich Results Test if you want a second opinion.

Opening hours

  • A lunch break is two rows for the same day: 07:00-12:30 and 13:30-18:00.

  • A shift that runs past midnight is two rows: one ending at 24:00 and one starting at 00:00 on the next day.

  • A closing time of 24:00 is published as 23:59. Publishing 00:00 would read as the start of the day, and is how a business ends up listed as closed all day.

Honesty rules

Two of Google's rules are worth repeating, because breaking them costs more than the rich result is worth:

  • The answer in the FAQ must be the answer on the page. A teaser in the structured data and the full text on the page is a manual action.

  • Never publish a rating the visitor cannot see. An aggregate rating belongs to reviews that exist and are shown.

The pack does not invent either of them: nothing is emitted that you did not type.

Multi-website

Local business data, including opening hours, belongs to the website - six client sites in one database each carry their own address, hours and map pin. Page-level data belongs to the page.

Support

support@bambooforge.dev - the people who wrote it.

Screens

Business - bambooforge_rich_snippets
Business
Faq - bambooforge_rich_snippets
Faq
Jsonld - bambooforge_rich_snippets
Jsonld