A building-systems catalogue has three readers. The procurement engineer wants to compare a specification and send the page to a colleague. The search engine wants text it can index and a structure it can trust. The AI assistant, whether it is the one answering questions inside a search engine or the one you build to draft quotations, wants a record with fields it can match against. A product page that is a photograph and a link to the manufacturer's PDF fails all three. One structured product record, in both languages, serves all three at once. This article is that record, the schema around it, and the workflow that lets the business publish it without a developer.
Three readers, one record
| Reader | What it needs from the page | What breaks it |
|---|---|---|
| Procurement engineer | The key specifications as text, the standard the product meets, the brand, the datasheet as a download, a way to request a quotation for this exact item | A photo, a marketing paragraph, a generic "contact us" button |
| Search engine | Unique title and description, a body with real words, a canonical URL per language, hreflang pairs, Product and Brand schema in one graph, internal links from category and application pages | Duplicate routes for the same product, four pages with metadata out of four hundred, zero words in the body |
| AI assistant | Fields with stable names and units, a specification table it can parse, a standard it can filter on, an identifier it can return | Specifications locked inside a PDF image, values written three different ways across products |
The content void, with numbers
When we audited our own 2024 build for Progress Horizon Trading, a distributor with 144 products across 22 manufacturer brands and 53 subcategories, the product pages had a median of zero words of body copy. One product in 144 had an Arabic description. Metadata existed on four routes. Parallel route trees served the same product at two or three addresses. Search engines had already stopped bothering, and no assistant could have matched a request to a page with nothing on it.
The rebuild moved every product into a content API with twelve bilingual document models, each text field a required English and Arabic pair, generated a 478-URL bilingual sitemap from the catalogue, and put the organisation, the parent group and each of the 22 brands into one structured-data graph under stable identifiers. The site went from four routes with metadata to all of them. Indexing outcomes are measured against an archived baseline at a checkpoint that has not yet closed, so no ranking number appears here.
The product record
This is the field list. Required fields are required in both languages at the data layer, so nobody can publish an English-only product by accident.
| Field | Required | Notes |
|---|---|---|
| Name (EN, AR) | Yes | Product names, brand names and model codes stay in Latin script in the Arabic field |
| Brand | Yes | A reference to one Brand record, never free text |
| Family, category, subcategory | Yes | Electrical, mechanical, architectural, then the tree; one product lives in one place |
| Short description (EN, AR) | Yes | Two sentences: what it is and where it is used |
| Applications (EN, AR) | Yes | A list, because engineers search by application as often as by product |
| Standards | Yes | A list of standard identifiers (for example IEC, BS EN, ASTM, UL) as structured values, not prose |
| Specifications | Yes | Name, value, unit as structured pairs; the same specification name spelled the same way across every product in the subcategory |
| Documents | Recommended | Datasheet, installation guide, certificates, each with a language tag |
| Images | Yes | One product image at least; generated in AVIF, WebP and JPEG at layout widths, never upscaled |
| Availability note (EN, AR) | Optional | "Stocked", "Made to order", "Subject to availability"; written by a rule if an ERP is connected |
| Related products | Optional | Accessories, alternatives, the same product in another size |
| Identifier | Yes | A stable id that survives renames; the URL slug is derived from it once and never changes |
Two rules make this work. The specification names are a controlled vocabulary per subcategory, so "Rated current" is never also "Current rating". And the record is validated on save: a missing required field blocks publishing, and the editor sees exactly which one.
The schema graph
Structured data is one graph, not a block per page.
- Organization once, with a stable identifier, referenced from every page.
- Brand once per manufacturer, with its own identifier; the product references it.
- BreadcrumbList on every page, following the category tree.
- Product on every product page: name, image, brand reference, description, and the specifications as additional properties.
- No Offer without a price. A price-less Offer fails validation and the search engine ignores the block. If prices are not public, leave the Offer out and let the quotation form do its job.
On the catalogue site above the merged graph carries nine node types; validation runs in the build so a broken block never reaches production.
Search: one URL per product per language
- English at the root, Arabic under
/ar/, the same slug in both, derived from the identifier. Slugs stay in English; Arabic slugs break sharing and analytics. - Every product page has a self-referencing canonical, a unique title and description, and hreflang pairs including
x-default. The implementation and its validation are in hreflang for bilingual sites. - Locale detection and cookies are switched off, so the crawler and the engineer see the same document at the same address.
- Category and application pages link to products in body copy, not only from menus. The information architecture, one URL per intent, is in Bilingual site information architecture.
- The sitemap is generated from the catalogue at build time, split by language, with
lastModifiedonly where a real change happened.
AI assistants, yours and the search engine's
The share of searches that trigger an AI answer keeps rising; one industry estimate puts it at a quarter of searches in early 2026, and AI answers have been live in Arabic since May 2025. What those answers cite is well studied: pages that already rank in the top ten, content with tables and specific values, dated pages, and pages with statistics and quotations in the body. A product page built on the record above is exactly that shape, in both languages. Google's own guidance adds no extra requirement: crawlability, helpful content and internal links are the whole list.
Your own assistant has the same appetite. A quotation assistant that matches a customer's line item to a product does it against the specification pairs and standards in the record; without them it guesses. The seven-step build is in An AI quotation assistant for building-materials distributors. Build the record first; the assistant is a week of work on top of good data and a demo on top of bad data.
Who publishes it
The reason the catalogue was empty was that saying anything required an engineer. The fix is an admin dashboard where a specification table is a form field: staff add a product, fill the required pairs, upload the datasheet, and publish. Publishing triggers a production deploy that bakes the content into the site, so there is no live database to slow the page or to secure. Uploads are converted to WebP on the way in. The manufacturer's engineers validate specifications against the datasheet before they go live, and the record's validation catches the missing fields before they do.
The ten-point check before launch
- Every product has a body with real words in both languages.
- Every specification name in a subcategory is spelled one way.
- Standards are structured values, not sentences.
- One URL per product per language, canonical to itself.
- hreflang pairs are reciprocal and include
x-default. - Product, Brand, Organization and BreadcrumbList are one validated graph.
- No Offer without a price.
- The sitemap comes from the catalogue, not from a plugin's guess.
- Category and application pages link to products in the body.
- Publishing is a form, not a ticket.
Sources
- Google Search and AI features, Google, on the absence of special requirements for AI answers.
- Search rankings and AI citations, Ahrefs, on the share of cited pages that already rank in the top ten.
- GEO: Generative Engine Optimization, the Princeton study on statistics and quotations raising visibility in generative answers.
- Bringing AI Overviews to Arabic, Google, for the May 2025 Arabic launch.
- Review snippet structured data and Product structured data documentation, Google, for the validity rules.
- AI Overviews on commercial-intent searches, Semrush, for the growth of AI answers on commercial queries. Vendor source.


