Pendium
The Optimization Playbook

Map Shopify product synonyms to alternateName schema for AI search

Claude

Claude

·7 min read
Map Shopify product synonyms to alternateName schema for AI search

When potential customers ask AI assistants like ChatGPT or Perplexity for product recommendations, they use slang, regional dialects, and informal phrases that rarely match formal Shopify catalog titles. Pendium visibility tracking across major AI engines shows that this vocabulary mismatch causes conversational crawlers to bypass relevant inventory entirely. By mapping your product synonyms to the Schema.org alternateName property using clean JSON-LD, you supply AI shopping systems with explicit machine-readable entities without stuffing keywords into your customer-facing titles.

The disconnect between catalog titles and human prompts

Shoppers do not speak in optimized catalog nomenclature. A customer prompt in an AI engine sounds like conversation: "Find me a rugged yellow slicker for cold morning commutes." On Shopify, that exact item sits in your catalog under the formal name "Men's Norseman Storm Shell 3L."

Conversational engines like Claude, Gemini, and ChatGPT evaluate product matches based on semantic entity recognition rather than basic string matches. When an AI crawler inspects a Shopify storefront, it looks for explicit proof that a product fulfills the intent of the prompt. If your visible product.title relies on trademarked line names or technical jargon, the language model has to guess whether your item matches the shopper's colloquial request.

AI models are probabilistic. If an engine has low certainty that your "Storm Shell" is what a user means by "slicker" or "rain mac," it defaults to a competitor whose data removes the doubt. This dynamic mirrors what happens when AI filters out regulated Shopify products (and the JSON-LD fix): missing or ambiguous structured attributes push your inventory out of candidate recommendation sets.

+-------------------------------------------------------------+
| Customer Query: "durable yellow slicker"                    |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
| AI Agent Evaluation (ChatGPT, Claude, Perplexity)          |
+-------------------------------------------------------------+
         |                                           |
         | Low Certainty                             | High Certainty
         v                                           v
+------------------------------------+   +------------------------------------+
| Visible Title:                     |   | Schema Property:                   |
| "Men's Norseman Storm Shell 3L"    |   | alternateName: ["slicker", "mac"]  |
+------------------------------------+   +------------------------------------+
         |                                           |
         v                                           v
+------------------------------------+   +------------------------------------+
| Result: Skipped in recommendation  |   | Result: Cited in primary answer    |
+------------------------------------+   +------------------------------------+

The Schema.org alternateName property solves this exact friction point. Defined under the core Thing specification, alternateName allows any digital entity to declare secondary aliases, localized terms, and informal monikers. Adding this attribute gives search bots permission to index multiple naming variants for a single SKU while keeping your storefront UI clean and on-brand.

Store synonyms in Shopify product metafields

Hardcoding product synonyms directly into theme files or burying them inside visible description text creates maintenance headaches. Hardcoded theme files fail when your catalog expands, and dumping synonym clusters into product descriptions degrades the reading experience for human buyers.

The cleanest approach uses Shopify standard product metafields. Metafields keep structured metadata linked to the product record, making it easy to manage through the Shopify admin, CSV bulk uploads, or external PIM systems.

To structure this data, create a dedicated definition in your Shopify admin under Settings > Custom data > Products > Add definition:

  • Set the Name to Product Synonyms.
  • Set the Namespace and key to custom.product_synonyms.
  • Select List of single-line text as the type.

Using a list type allows you to add multiple distinct string values per product without writing custom delimiter-parsing routines in Liquid.

Synonym CategoryCatalog Title ExampleStored Metafield Values
Regional variationsTraining Shoestrainers, runners, gym sneakers
Category slangCrossbody Sling Bagfanny pack, waist pack, bum bag
Common abbreviationsTechnical Hooded Sweatshirttech hoodie, pullover
Legacy product namesHorizon Apex PackHorizon v1, Classic 30L

Populate this field deliberately. Focus on true synonyms and colloquial terms that prospective buyers feed into AI prompts. Avoid generic category terms that apply equally to every item in your store, which muddies the semantic precision AI bots look for.

Inject alternateName into your JSON-LD product schema

Once your metafield contains synonym data, you must expose it to crawlers through the page markup. This requires editing your Liquid templates to insert the values into your @type: "Product" entity.

Why JSON-LD is the only format to use

Shopify stores historically relied on inline Microdata—attributes like itemprop and itemscope baked into theme HTML elements. That approach is obsolete.

Google and modern AI retrieval pipelines favor JSON-LD (JavaScript Object Notation for Linked Data). As detailed in technical analysis on Shopify JSON-LD implementation, JSON-LD lives within a dedicated <script type="application/ld+json"> tag, independent of your presentation markup.

If your design team rewrites your product page CSS or alters the liquid layout, Microdata frequently breaks without warning. JSON-LD stays isolated in its script block. It compiles consistently, validates cleanly, and processes faster during web crawling cycles.

The Liquid code logic

Open your theme code editor and locate the file responsible for your product schema. Depending on your theme, this will be in snippets/product-structured-data.liquid, snippets/json-ld.liquid, or directly inside sections/main-product.liquid.

You need to extract the string list from custom.product_synonyms and serialize it as a valid JSON array inside the schema block. This workflow operates on the same principles explained in our guide on how to map Shopify material metafields to JSON-LD for AI shopping queries.

Add the following logic directly within your existing Product schema block:

{%- assign product_synonyms = product.metafields.custom.product_synonyms.value -%}

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": {{ product.title | json }},
  "url": "{{ shop.url }}{{ product.url }}",
  "description": {{ product.description | strip_html | truncatewords: 50 | json }},
  {%- if product_synonyms != blank -%}
  "alternateName": [
    {%- for synonym in product_synonyms -%}
      {{ synonym | json }}{% unless forloop.last %},{% endunless %}
    {%- endfor -%}
  ],
  {%- endif -%}
  "sku": {{ product.selected_or_first_available_variant.sku | json }},
  "brand": {
    "@type": "Brand",
    "name": {{ product.vendor | json }}
  }
}
</script>

The json Liquid filter is critical here. It handles string escaping automatically, protecting against trailing commas, unescaped quotation marks, and special characters that could invalidate the script block.

Shopify Admin: custom.product_synonyms
["rain slicker", "waterproof mac", "commuter shell"]
                       |
                       v
Liquid Engine: {% for synonym in product_synonyms %} ... | json
                       |
                       v
Rendered HTML:
"alternateName": [
  "rain slicker",
  "waterproof mac",
  "commuter shell"
]

When an AI engine processes this block, it connects all three terms to the formal product entity. If a shopper asks Perplexity for a "commuter shell," the engine reads the explicit alternateName declaration and identifies the exact SKU.

Clear duplicate schema from modern themes

Injecting a custom JSON-LD script into a modern Shopify theme can cause unintended data conflicts if your baseline setup is unmanaged.

Modern themes such as Dawn (version 15.0 and above) ship with automated structured data built in. These themes output product metadata by piping store models through Shopify's native structured_data Liquid filter. If your theme already generates a default Product schema block and you paste a secondary block into your templates, you expose your store to duplicate entity problems.

Check your current theme output

Before modifying live theme files, test an active product page URL.

  1. Open Google's Rich Results Test tool.
  2. Enter the full URL of a published product page.
  3. Inspect the detected items in the test results.

If the report lists two separate @type: "Product" entries for the same page, crawlers encounter competing schemas. As outlined in practical guides on adding schema to Shopify, duplicate definitions confuse search engines, especially when properties like names, prices, or descriptions vary between the two implementations.

+--------------------------------------------------------+
| URL: yourstore.com/products/norseman-shell             |
+--------------------------------------------------------+
                           |
       +-------------------+-------------------+
       |                                       |
       v                                       v
+-------------------------------+   +-------------------------------+
| Schema Block 1 (Dawn native)  |   | Schema Block 2 (Custom script)|
| - Name: Men's Norseman Shell  |   | - Name: Men's Norseman Shell  |
| - alternateName: [EMPTY]      |   | - alternateName: ["slicker"]  |
+-------------------------------+   +-------------------------------+
                               |
                               v
+--------------------------------------------------------+
| AI Agent Evaluation: Conflict / Redundant Entity       |
| Result: Agent ignores unvalidated custom properties    |
+--------------------------------------------------------+

Remove conflicting structured data filters

To resolve conflicting data, choose one path: either amend the existing theme snippet or replace the automated theme output with your custom schema script.

If your theme uses Dawn or a Dawn derivative, check snippets/product-media-gallery.liquid or sections/main-product.liquid for code that looks like this:

<script type="application/ld+json">
  {{ product | structured_data }}
</script>

The native structured_data filter outputs standard fields—title, pricing, images, and inventory status—but it does not support custom attributes like alternateName sourced from metafields.

To take full control of your schema:

  1. Comment out or delete the native {{ product | structured_data }} tag.
  2. Replace it with your dedicated structured data snippet that outputs the complete Product object with your custom alternateName array included.
  3. Clear your theme cache and re-run the Rich Results Test.
  4. Verify that only one @type: "Product" appears and that the alternateName field displays your array of values.

Maintaining a single, authoritative JSON-LD block ensures AI crawlers ingest your complete dataset in one pass without encountering contradictory signals.

Auditing your AI search footprint

Setting up structured synonyms bridges the gap between what humans call your items and how your Shopify database classifies them. Once your code is live, monitor whether AI systems pick up the changes.

Conversational interfaces refresh their understanding as they crawl updated web pages, but search visibility in engines like ChatGPT, Claude, and Gemini does not always follow standard Google indexing schedules. Tracking these models requires observing the actual recommendations delivered in conversational sessions.

Run a free scan on your store with Pendium to audit how AI assistants currently interpret your brand and products. Evaluating how engines parse your inventory across different consumer personas reveals whether your products are cited for high-intent conversational queries, or whether your catalog remains hidden behind rigid product titles.

how-toshopifyschema-markupai-visibility

Get the latest from The Citation Report delivered to your inbox each week