Graph Schema improves entity resolution; it does not guarantee AI citations. Google AI Overviews, Perplexity, Bing Copilot, and other AI search systems can better understand pages that publish clean Organization + Product relationships, but every value must be real, visible, and verifiable. Do not put fake prices, fake certificates, fake LinkedIn profiles, or invented factory capacity into JSON-LD.
Why B2B platforms need graph architecture instead of isolated tags
Traditional Product Schema treats a product page as a single object. That is often too weak for cross-border B2B procurement. Overseas buyers and AI search engines need to know which factory manufactures the product, whether the manufacturer is a stable entity, what procurement conditions apply, and which specifications are verified.
The recommended pattern is a JSON-LD @graph: one node for the factory Organization, one node for the Product, and explicit links such as manufacturer: {'@id': ...}. This gives AI systems a stable path for entity resolution and prevents custom products from becoming isolated thin pages.
Factory-product graph schema is a B2B structured-data pattern that binds a manufacturer Organization node and one or more Product nodes through stable @id references, allowing AI search systems to verify supplier identity, product ownership, MOQ, lead time, certification scope, and technical parameters as a connected entity network.
Compliant JSON-LD @graph template
Use this as a pattern, not as copy-paste factual data. Replace placeholders only with values that are visible on the page or supported by evidence.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example-b2b-domain.com/#organization",
"name": "[Verified factory legal or export name]",
"alternateName": "[Optional local-language name]",
"url": "https://example-b2b-domain.com/",
"logo": "https://example-b2b-domain.com/assets/logo.png",
"sameAs": [
"[LinkedIn company URL if verified]",
"[Industry directory profile if verified]"
],
"description": "[Factual factory capability description based on verified evidence.]",
"knowsAbout": [
"[Core manufacturing capability]",
"OEM/ODM services",
"[Category-specific process]"
],
"areaServed": [
"US",
"EU",
"Middle East"
],
"hasCredential": [
{
"@type": "EducationalOccupationalCredential",
"name": "[ISO 9001:2015 / CE / UL / other verified credential]"
}
],
"address": {
"@type": "PostalAddress",
"streetAddress": "[Verified address]",
"addressLocality": "[City]",
"addressRegion": "[Province/State]",
"addressCountry": "CN"
}
},
{
"@type": "Product",
"@id": "https://example-b2b-domain.com/products/[slug]/#product",
"name": "[Product name]",
"image": "https://example-b2b-domain.com/products/[slug]/main-image.jpg",
"description": "[Answer-first product summary with the same facts visible on the page.]",
"brand": {
"@type": "Brand",
"name": "[Brand or factory brand]"
},
"manufacturer": {
"@id": "https://example-b2b-domain.com/#organization"
},
"mpn": "[Model if verified]",
"sku": "[SKU if verified]",
"offers": {
"@type": "AggregateOffer",
"offerCount": 1,
"offers": [
{
"@type": "Offer",
"eligibleQuantity": {
"@type": "QuantitativeValue",
"minValue": "[MOQ number]",
"unitCode": "C62"
},
"availability": "https://schema.org/InStock"
}
]
},
"additionalProperty": [
{
"@type": "PropertyValue",
"name": "IP Rating",
"value": "[IP65 / IP66 if verified]"
},
{
"@type": "PropertyValue",
"name": "Luminous Efficacy",
"value": "[lm/W if verified]"
},
{
"@type": "PropertyValue",
"name": "Certification Scope",
"value": "[CE / RoHS / UL only if verified]"
},
{
"@type": "PropertyValue",
"name": "Lead Time",
"value": "[15-20 days if verified]"
},
{
"@type": "PropertyValue",
"name": "Material",
"value": "[Housing/material if verified]"
}
],
"isRelatedTo": {
"@id": "https://example-b2b-domain.com/#organization"
}
}
]
}
Three B2B GEO design choices that matter
Use eligibleQuantity for commercial intent
For procurement queries such as “supplier with MOQ under 500 units,” use eligibleQuantity with QuantitativeValue. If MOQ is unknown, omit it.
Use additionalProperty for comparison-ready specs
Perplexity-style RAG systems prefer clear key-value data. Put IP rating, lumen output, voltage, material, lead time, and certification scope into PropertyValue.
Bind Product to Organization with @id
A product node should reference the factory node through manufacturer. This helps AI connect sparse custom items to a richer verified supplier entity.
Never fabricate trust signals
Do not invent ISO, UL, CE, RoHS, capacity, prices, addresses, LinkedIn pages, or Wikipedia profiles. Missing values should be omitted or handled as verification prompts.
Frontend and Schema must mutually verify
The first visible paragraph on a product detail page should summarize the same core facts that appear in Schema. Example structure:
[Factory name] is a verified B2B manufacturer offering [product category] for [application], with [MOQ if verified], [lead time if verified], and [certification scope if verified]. Buyers should confirm final compliance requirements, packaging tests, and golden sample approval before mass production.
Do not create conflicts such as Schema saying MOQ 200 while the page says MOQ 1,000. Inconsistent structured data can be interpreted as misleading structured data and may reduce trust at the page or domain level.
Field mapping for B2B product pages
| Buyer question | Schema field | Frontend evidence | If missing |
|---|---|---|---|
| Who makes it? | manufacturer.@id linked to Organization | Factory profile, legal/export name, address or verified company page | Anchor to category/factory page; do not invent supplier identity. |
| What is MOQ? | offers.offers.eligibleQuantity | MOQ row, RFQ box, quotation rule | Omit MOQ field; show “confirm MOQ by configuration.” |
| What are the core specs? | additionalProperty | HTML technical table | Publish only known specs; hide empty rows. |
| Is it certified? | additionalProperty or Organization hasCredential | Certificate page, issuer, validity, scope, PDF evidence | Say certification scope requires confirmation; do not list fake marks. |
| How fresh is the data? | dateModified / sitemap lastmod | Visible updated date or revision log | Do not fake freshness; update only when content changes. |
Deployment checklist
- Create one canonical Organization
@idfor each verified factory. - Use the same Organization
@idon product, category, certification, case-study, and RFQ pages. - Render product specifications as visible HTML tables and mirror them in
additionalProperty. - Use
eligibleQuantityfor MOQ when confirmed. - Omit price fields unless public pricing is approved and shown on the page.
- Remove N/A, unknown, null, undefined, and empty strings before JSON-LD generation.
- Use noindex or roll-up pages for low-completeness custom products.
- Update sitemap
lastmodonly when product data, evidence, or specs are actually updated.
This template is designed for compliant B2B GEO. It is not a loophole for fake authority. AI search engines can cross-check visible text, Schema, linked profiles, certificates, and third-party references. A smaller clean graph is safer than a large graph full of unverifiable claims.
FAQ
Can this template be used on every product page?
Yes, but only when each page has enough product-specific data. Sparse custom items should be rolled up into a factory capability page or noindexed until core fields are complete.
Should AggregateOffer include lowPrice and highPrice?
Only if the supplier has approved public prices and the page displays the same price range. For many B2B suppliers, MOQ and RFQ workflow are safer than public prices.
Does @graph guarantee AI Overview or Perplexity citation?
No. It improves machine readability and entity resolution, but citation depends on indexation, query intent, authority, content usefulness, freshness, and external evidence.