Conversation
Emit a `Product` JSON-LD object, with a nested `Offer`, on the `/product/[slug]` route so search and generative engines can identify a product together with its price and availability. Products had no structured data before. Rendered by `ProductJsonLd`, a component that carries its own GraphQL fragment and renders itself — the same shape as the existing `OrganizationJsonLd` and `NewsArticleJsonLd`. Image and site URLs are resolved to absolute form, as crawlers require. The currency is a fixed `EUR` for now, since the site config carries none. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Product list surfaces carried no structured data, so search and generative engines could not tell that the rendered list is an ordered collection of products. Emit an `ItemList` JSON-LD object from `ProductListBlock`, mirroring the `Product` structured data on the detail page. The loader resolves each product's site path to an absolute URL, which crawlers require for the `ListItem` entries. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ASWsbyKgFo1v3SWsEHe2XT
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| ))} | ||
| </ol> | ||
| <> | ||
| <ProductListJsonLd products={products} /> |
There was a problem hiding this comment.
Again, although this was a requirement in the ticket, I don't think we should have a product ItemList JsonLd when we have a proper Product JsonLd on the detail page
Part of DEX-2969 — Step 5b.
Note
Based on #6358 (step 5a), which builds the product block family and the
/product/[slug]route. Please review and merge that one first.Problem
Products in the Demo emit no structured data. Search and generative engines can't identify a product page as a product, can't read its price or availability, and can't tell that a product list renders a collection of products.
Solution
Emit
Productstructured data (with a nestedOffer) on the product detail page, andItemListstructured data from the product list block.The offer currency is hardcoded to
EURfor now, since the site config carries none.Changeset
None needed — Demo-only change.
Open TODOs
🤖 Generated with Claude Code
https://claude.ai/code/session_01ASWsbyKgFo1v3SWsEHe2XT