The short version
AI commerce still starts with the old web doing its job.
For Shopify stores, the best path is not a secret “AI SEO” hack. It is a clean product catalog, clear product pages, canonical URLs, accurate availability, useful images, complete store policies, visible text, structured data that matches the page, and machine-readable mirrors that agents can fetch without scraping.
PointCast adds one extra layer: a commerce hub where discovery, merchandising, pairings, and agent routing happen on PointCast, while checkout stays at the canonical shop. That gives humans a readable shop window and gives LLM agents a stable map: /shop, /shop.json, /products.json, /api/products.jsonl, /pairings, and per-product pages.
The rule: do not make the AI guess.
What GEO means here
GEO means generative engine optimization: making a store easy for AI search systems, shopping agents, answer engines, and retrieval pipelines to understand, quote, and route.
It does not replace SEO. Google says its AI features use the same foundational Search requirements: pages need to be crawlable, indexable, useful, internally linked, text-visible, and backed by structured data that matches what users can see. Shopify says product detail pages should serve both people and AI systems, with clear titles, summaries, price, availability, key features, descriptive image alt text, detailed product specs, product attributes, and FAQs/policies that agents can reference.
So the PointCast stance is deliberately boring in the foundation and weird only in the interface:
- Shopify remains the source of truth for catalog, checkout, shipping, returns, and policy facts.
- PointCast mirrors public product facts for discovery and agent readability.
- Agents get JSON and JSONL, not a pile of divs to scrape.
- Every product points to its canonical checkout URL.
- Draft, unavailable, or uncertain products stay out of public commerce feeds.
- Regulated-product claims stay factual, sourced, and conservative.
The canonical Shopify checklist
Before adding any AI layer, make the Shopify store itself legible.
Product title
Use the actual product name people search for. Avoid campaign slogans as titles. Put flavor, format, and meaningful variant language where it helps a buyer distinguish the product.
Product summary
The first visible paragraph should answer: what is it, who is it for, what format is it, what is in the package, and what should a shopper know before clicking buy?
Search engine listing
Use Shopify’s SEO fields for each product and collection. Keep the page title specific. Write meta descriptions that summarize the visible page, not hype the brand in isolation.
URL handle
Keep product handles stable. If a handle changes, create a redirect. Do not create new slugs for the same product every campaign season.
Images and alt text
Use product images that show the actual product, packaging, format, and important variants. Alt text should describe the image plainly. “Blueberry pomegranate gummies package” beats “delicious vibes.”
Product organization
Keep product type, vendor, collections, tags, variants, barcodes/GTINs when available, and option names clean. Shopify Catalog and agentic shopping surfaces use these fields to understand what the product is.
Policies
Complete and maintain shipping, return, subscription, age/eligibility, privacy, and contact policies. AI agents answer policy questions from store facts; missing or stale policies invite bad answers.
Shopify Catalog
If eligible, make sure products are complete enough for Shopify Catalog and Shop surfaces: titles, descriptions, images, product organization, variants, availability, and policy data. If the store uses the Shop channel, decide deliberately whether checkout happens in Shop or redirects to the online store.
The PointCast commerce pattern
PointCast should not pretend to be the store. It should be the commerce map.
For Good Feels, the clean pattern is:
- Mirror only public, live Shopify products.
- Preserve the canonical product URL on
getgoodfeels.com. - Render a PointCast product detail page for discovery and context.
- Emit structured Product and Offer data from the PointCast page.
- Emit JSON and JSONL catalog feeds for agents.
- Keep checkout outbound-only.
- Keep PointCast merch hidden until active and in-stock.
- Link products to moods, pairings, and relevant PointCast context.
The product card can be simple:
{
"slug": "example-product",
"name": "Example Product",
"brand": "Good Feels",
"sourceKind": "good-feels",
"productPage": "https://pointcast.xyz/products/example-product",
"checkoutUrl": "https://getgoodfeels.com/products/example-product",
"checkoutHost": "getgoodfeels.com",
"availability": "in-stock",
"priceUsd": 24,
"currency": "USD",
"pairsWithMood": ["good-feels"],
"checkoutPolicy": "outbound-only"
}
That shape lets a bot answer “where do I buy this?” without PointCast touching payment data.
Schema.org Product guidance
Use schema because it makes product facts explicit. Do not use schema as a place to smuggle invisible claims.
For PointCast-style outbound mirrors:
- Use
Producton the individual product page. - Use
Offeronly when price and availability are known. - Use the canonical checkout URL as the offer URL.
- Keep structured data in initial HTML when possible.
- Keep structured fields aligned with visible page text.
- Validate pages with Google’s Rich Results Test and Search Console URL Inspection.
Availability should map consistently:
| Local value | Schema.org URL |
|---|---|
in-stock | https://schema.org/InStock |
out-of-stock | https://schema.org/OutOfStock |
preorder | https://schema.org/PreOrder |
discontinued | https://schema.org/Discontinued |
For regulated categories, be careful. Google Product rich-result guidelines restrict content around widely prohibited or regulated goods, including recreational drugs, tobacco, vaping, gambling, firearms, and similar areas. So for hemp or cannabis-adjacent products, treat Product schema as an interoperability layer and a factual catalog graph, not as a guaranteed path to Google rich product display.
GEO page model
A product page that works for humans and LLMs should answer the same facts in the same order:
- Product name.
- Brand.
- Format: beverage, gummy, enhancer, merch, print, etc.
- Flavor or variant.
- Package size or unit count when known.
- Price and currency when known.
- Availability.
- Canonical checkout URL.
- Source host.
- Category.
- Ingredients or materials when present in the source catalog.
- Policy caveats and fulfillment ownership.
- Related products, pairings, or collections.
- Machine-readable endpoint links.
The key is visible redundancy. If the JSON says “outbound-only checkout,” the page should say it too. If the page says “PointCast does not sell or fulfill,” the JSON should say it too. LLMs are better when the same fact appears in the DOM, JSON-LD, and feed.
LLM surfaces: helpful, not magical
/llms.txt is useful as an orientation file, but it is not an official ranking standard and Google explicitly says special AI text files are not required for AI features in Search. Use it anyway, but use it honestly: as a map for agents, not as a promise of visibility.
For a Shopify-plus-PointCast commerce layer, the LLM surface stack should be:
| Surface | Job |
|---|---|
/shop | Human commerce hub and crawlable landing page |
/shop.json | High-level commerce manifest: sources, lanes, counts, policy |
/products | Human catalog page |
/products/{slug} | Product detail page with Product schema |
/products.json | Structured catalog mirror |
/api/products.jsonl | One-product-per-line feed for agents and batch jobs |
/pairings | Human cross-index by mood |
/pairings/{mood} | Product/context pairing page |
/agents.json | Full agent routing manifest |
/for-agents | Human-readable agent manifest |
/llms.txt | Short retrieval order and orientation |
/llms-full.txt | Expanded machine-readable context |
sitemap-discovery.xml | Discovery sitemap for priority machine surfaces |
The high-value part is not the file extension. It is that every surface says where the source of truth is, where checkout happens, and which facts are safe to repeat.
Content rules for AI commerce
Good commerce content is specific, boring, and citeable.
Do
- Say what the product is.
- Preserve the source product name.
- Mention format, flavor, quantity, price, and availability when known.
- Link to the canonical checkout.
- Link to source policies instead of summarizing legal/fulfillment promises from memory.
- Use pairings as editorial context, not medical or performance claims.
- Add FAQs that answer real buying questions.
- Keep claims aligned across Shopify, PointCast HTML, JSON, and schema.
- Timestamp syncs and expose
generatedAtin machine feeds.
Do not
- Invent wellness, medical, legal, safety, onset, or compliance claims.
- Hide essential product facts only in JSON.
- Publish draft products publicly.
- Let stale slugs become canonical.
- Put checkout, cart, card capture, or PII into PointCast.
- Mark up reviews, ratings, pros/cons, shipping, or returns unless the visible page and source store actually support those facts.
- Promise AI visibility.
Measurement loop
Run the loop weekly or whenever the catalog changes.
Catalog freshness
- Sync Good Feels products from the public Shopify catalog.
- Confirm live Shopify handles match local non-draft Good Feels entries.
- Confirm hidden/draft PointCast products stay hidden.
- Check all outbound checkout URLs return 200.
Technical search
- Confirm
/shop,/products, and product pages are indexable. - Submit or monitor sitemaps in Search Console.
- Validate structured data on representative product pages.
- Confirm
Productdata appears in initial HTML. - Confirm image URLs and alt text are present.
GEO / LLM retrieval
- Fetch
/agents.json,/llms.txt,/shop.json,/products.json, and/api/products.jsonl. - Ask an agent to answer: “What does PointCast sell?” It should answer: PointCast routes discovery; checkout stays external.
- Ask an agent: “Where do I buy a Good Feels product?” It should route to the product’s canonical
getgoodfeels.comURL. - Ask an agent: “Does PointCast fulfill Good Feels orders?” It should answer no.
- Search feeds for stale hosts, old slugs, draft products, and mismatched availability.
Shopify AI surfaces
- Keep Shopify product data complete.
- Review Shopify Catalog settings and product source mapping where available.
- Use Shopify Knowledge Base FAQs for store-policy answers.
- Keep Shop channel behavior intentional: direct Shop checkout or redirect to online store.
Implementation notes for PointCast
The current commerce implementation is aligned with this guide:
/shopis the human commerce hub./shop.jsondeclaresversion,checkoutPolicy,sources,lanes, counts, product pages, checkout URLs, source kind, checkout host, and pairing URLs./products.jsonmirrors product data plus schema.org Product graphs./api/products.jsonlexposes one product per line for agents.- Product detail pages include breadcrumb navigation, visible pairings, price, availability, source, checkout host, shop lane, outbound CTA, and a disclaimer that PointCast does not sell, fulfill, process payment, or collect card/PII.
- Availability maps through a shared helper, so HTML, JSON, and JSON-LD stay consistent.
- Good Feels products link to
https://getgoodfeels.com/products/{handle}. - PointCast merch remains hidden while draft or unavailable.
The next useful improvement is not more schema. It is better source richness: complete product fields in Shopify, policy FAQ coverage, cleaner variant data, and periodic freshness checks that fail loudly when the mirror drifts.
Best-practice stack
If I were building a Shopify store for AI discovery from scratch in 2026, I would ship this stack:
- Shopify PDPs with complete titles, descriptions, images, alt text, variants, categories, tags, price, availability, and policies.
- Stable canonical URLs and redirects for retired handles.
- Product schema in initial HTML, aligned to visible page facts.
- A crawlable collection architecture with descriptive internal links.
- Shopify Catalog readiness and Knowledge Base FAQs.
- A sitemap submitted in Search Console and Bing Webmaster Tools.
- IndexNow pings only for newly changed URLs.
- A public JSON catalog with source URLs, checkout policy, availability, and generated timestamp.
- A JSONL feed for agents and batch retrieval.
/agents.jsonand/llms.txtas routing aids, with no magical ranking claims.- A QA prompt suite that checks whether agents answer commerce ownership, checkout, availability, and policy questions correctly.
That is the whole machine: the store tells the truth, the mirror routes the truth, and the agents have fewer places to get lost.
Sources
- Google Search Central: AI features and your website
- Google Search Central: Product structured data
- Google Search Central: Product snippet structured data
- Schema.org: availability
- Shopify Help Center: SEO overview
- Shopify Help Center: Finding and submitting your sitemap
- Shopify Help Center: Optimizing your store for AI
- Shopify Help Center: Optimizing your products for AI platforms
- Shopify Help Center: Shopify Catalog
- Shopify Help Center: Setting up the Shop channel
- Bing Webmaster Tools: IndexNow get started