In beta, with limited placesOpen to everyone in Q1 2027

↑↓ to move · Enter to open · Esc to close

Catalog and entities

What is semantic enrichment in ecommerce?

Semantic enrichment is the work of making explicit what each piece of product data means so a machine does not have to interpret it: declaring what kind of thing it is, using properties from a shared vocabulary such as schema.org, normalizing values with units, codes and closed lists, and linking each entity with stable identifiers.

Written by
Reviewed by
Published 7 min read
Takeaway:

Key takeaways

  • Filling in a field says what it is worth; enriching it semantically says what it means, so a machine does not have to guess.
  • Schema.org supplies the types and properties, and Google uses the markup it finds to understand the page.
  • An ambiguous value, like a '30' with no unit or a date like 04/01/11, is resolved with units, codes and standard formats.
  • The category a machine understands comes from a public taxonomy, like Google's, not from the name of a store collection.
  • If the store does not make the meaning explicit, the platform infers it, and Shopify warns that its inferred fields can vary in accuracy.

In libraries, archives or language processing, semantic enrichment means annotating a text with the entities it names. In an online store it is the same thing applied to product data: it is not about adding data, but about saying what each piece of it means. That is why it is not another name for catalog enrichment, which fills in and corrects the values of each field. A field can be full and still be ambiguous: "Capacity: 30" does not say whether it is liters or kilos, and "Category: New arrivals" does not say what the product is. It matters to you because anyone reading your catalog from outside, whether Google or an AI assistant, has to interpret each value, and what is not said gets guessed. Google puts it this way: you can help it understand a page by giving it explicit clues about its meaning with structured data.⁠[1]Google Search Central. Introduction to structured data markup in Google Search

How it works

Semantic enrichment is done with four operations, from the most general to the most specific.

1. Say what kind of thing it is. An HTML tag tells the browser how to display a piece of text, but not what it means. Schema.org's example is a heading that says "Avatar": it could be the movie or a profile picture, and the code cannot tell them apart.⁠[2]Schema.org. Getting started with schema.org using Microdata Declaring that a page describes a Product, that its maker is a Brand and that whoever sells it is an Organization turns a piece of text into a typed entity. Google uses the structured data it finds to understand the content of the page and to gather information about the world, such as the people, books or companies that appear in the markup.⁠[1]Google Search Central. Introduction to structured data markup in Google Search

2. Use shared properties. Instead of a label of your own like "Col." or "Fabric," the properties the vocabulary defines: color, material, gtin. For what has no property of its own, schema.org offers additionalProperty with a value of type PropertyValue, which accepts a propertyID, the usual identifier for that characteristic, such as the code from a product-properties standard, and a unitCode, the unit according to the UN/CEFACT common code, three characters long, or a URL.⁠[3]Schema.org. PropertyValue

3. Normalize the values. Some data a machine cannot interpret without a convention. Schema.org uses a date as its example: "04/01/11" could be January 11, 2004, April 1, 2011 or January 4, 2011, and the fix is to write it in ISO 8601 format. The same goes for closed lists, like availability, which is expressed with fixed values such as https://schema.org/InStock and not with an "only a few left."⁠[2]Schema.org. Getting started with schema.org using Microdata A number without a unit, a date without a format and a status in free language are the three most common semantic gaps.

4. Link with stable identifiers. The GTIN identifies the product outside your store; sameAs links the brand to a reference page about it, and schema.org explains that links to third-party sites about the same item help search engines better understand what you are describing.⁠[2]Schema.org. Getting started with schema.org using Microdata Category works the same way: Google Merchant Center accepts Google's category as a full path or as a numeric ID, and recommends the ID.⁠[4]Google Merchant Center Help. Product data specification In Google's taxonomy, "Luggage & Bags > Backpacks" is category 100.⁠[5]Google. Google Product Taxonomy (taxonomy-with-ids.en-US.txt) It is someone else's product taxonomy, which is why whoever reads it understands it.

If you don't do it, the platform does

Shopify Catalog, the product database Shopify uses to supply AI channels, does part of this work on its own. In December 2025, Shopify explained that the catalog infers categories, extracts attributes, consolidates variants and groups identical items so AI can understand the data.⁠[6]Shopify Newsroom. Introducing Shopify Agentic Storefronts: Sell your products everywhere AI conversations happen Its developer documentation adds the fine print: some fields are inferred by Shopify's AI, may be missing or of varying accuracy depending on the available product data, and are marked as inferred.⁠[7]Shopify (shopify.dev). About Catalogs The lesson is not about Shopify: what the store does not make explicit, someone infers, and the store stops deciding what its data means.

In a store

Fictional example. A mountain gear store sells a 30-liter backpack. Its product page has every field filled in, and yet almost all of them are ambiguous to a machine:

Data Complete but ambiguous With the meaning explicit
What it is A page with a title A Product
Brand The text "Trailhead" A Brand with its name and sameAs to its official site
Capacity "Capacity: 30" A PropertyValue with name, value 30 and a declared unit
Category "Fall arrivals" Google category 100, "Luggage & Bags > Backpacks"
Availability "Only a few left" https://schema.org/InStock
Identifier An internal code The manufacturer's GTIN, in addition to the SKU

In JSON-LD, the right-hand column looks like this:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trailhead 30 Backpack",
  "brand": {
    "@type": "Brand",
    "name": "Trailhead",
    "sameAs": "https://trailhead.example/"
  },
  "sku": "TRAIL30-BLK",
  "additionalProperty": {
    "@type": "PropertyValue",
    "name": "Capacity",
    "value": 30,
    "unitText": "liters"
  },
  "offers": {
    "@type": "Offer",
    "availability": "https://schema.org/InStock"
  }
}

The text on the product page has not changed; what has changed is what a machine can state about it without guessing. Clione, for example, publishes a single @graph on each product page whose product node carries a stable @id and coexists with the theme's instead of duplicating it.

Warning:

What people often get wrong

Thinking that enriching semantically means writing descriptions with more synonyms and related words, which is how semantic SEO is sometimes understood. The semantics a machine reads are not in the vocabulary density of the text, but in the markup: the type, the property and the normalized value. Schema.org exists precisely because an HTML tag does not say what the text it contains means.⁠[2]Schema.org. Getting started with schema.org using Microdata

How to check it

  1. Run a product page URL through the schema validator and see which types it detects. If only a web page shows up, the product is not declared as such.
  2. Look for numbers without units in your attributes: capacity, weight, dimensions, power. Each one needs its unit in a field, not in the product name.⁠[3]Schema.org. PropertyValue
  3. Look at how you send the category to Merchant Center. If you send your collection's name instead of a category from Google's taxonomy, swap it for the ID.⁠[4]Google Merchant Center Help. Product data specification⁠[5]Google. Google Product Taxonomy (taxonomy-with-ids.en-US.txt)
  4. Review availability in the markup: it has to be one of schema.org's fixed values, not text.⁠[2]Schema.org. Getting started with schema.org using Microdata
  5. Check the brand: if it is only text, declare it as an entity and, if the brand has a reference page, link it with sameAs.

The two jobs are done on the same product catalog and often go together, but they answer different questions. Catalog enrichment answers what each field is worth: it fills in the missing material, fixes a GTIN or writes a description. Semantic enrichment answers what that value means to a machine: that the material is the material property of a Product, that the 30 is liters, that the category is Google's 100. A catalog can be complete and semantically poor, but not the other way around: you cannot declare the meaning of a value that does not exist.

To go further, the catalog and entities reading path orders the rest of the terms, up to the product graph, which brings all these entities together in a single piece of markup.

Synonyms

English
semantic enrichment, semantic annotation
Español
enriquecimiento semántico de datos, anotación semántica

Sources

  1. [1] Google Search Central. Introduction to structured data markup in Google Search. Accessed . ↑ ↑
  2. [2] Schema.org. Getting started with schema.org using Microdata. Accessed . ↑ ↑ ↑ ↑ ↑
  3. [3] Schema.org. PropertyValue. Accessed . ↑ ↑
  4. [4] Google Merchant Center Help. Product data specification. Accessed . ↑ ↑
  5. [5] Google. Google Product Taxonomy (taxonomy-with-ids.en-US.txt). Accessed . ↑ ↑
  6. [6] Shopify Newsroom. Introducing Shopify Agentic Storefronts: Sell your products everywhere AI conversations happen. Accessed . ↑
  7. [7] Shopify (shopify.dev). About Catalogs. Accessed . ↑

Change history

  • First English version.

This definition is published under CC BY 4.0. Reuse this definition freely, crediting Clione with a link to this page.

Make your catalog easy for bots to read

Clione fills every product page with what bots read best: the JSON-LD graph with its structured data, the meta description and the FAQs. You review and press Push; then we check your live store so it all stays published.