---
title: Model a product listing page
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

## Model the Product wrapper page content type

Your **Product page** content type provides the browsable URL (or its vanity URLs) and channel-specific context for displaying a product on your website. The most important field in your wrapper is the **Product reference**. Use a [content item selector](https://docs.kentico.com/documentation/developers-and-admins/customization/extend-the-administration-interface/ui-form-components/reference-admin-ui-form-components.md#combined-content-selector) configured to accept only your _Product_ content type (or specific product variants if you support multiple product types). Set this field as required. To guide the editors, use a clear field label like _Select Product to Display_ with a helpful description: _Choose the reusable product this page will showcase._

![Kbank product page fields](https://docs.kentico.com/docsassets/modules/model-product-listing-page/kbank_account_page_field_descriptions.png "Kbank product page fields")

> **Info:** **Pattern takeaway:** Restrict wrapper page selectors to valid product types and add clear guidance to reduce editor mistakes.

Create or reuse an **SEO metadata schema** for search engine optimization fields. This schema can include, for example:

- _SEO title_ (text field to override the default title for search results),
- _SEO meta description_ (text area for the snippet shown in search results),
- _Canonical URL_ (to handle duplicate content across channels or pages),
- _Sitemap inclusion_ (checkbox to control whether this URL appears in sitemap.xml),
- _No-index directive_ (checkbox to prevent search engines from indexing this page, empty by default to make the page indexable),
- _SEO_ [structured data](https://developers.google.com/search/docs/appearance/structured-data/search-gallery) (structured data that developers generate into the page HTML markup),
- Other project-specific SEO fields.

![Demo SEO fields in the Kbank's Current Account page](https://docs.kentico.com/docsassets/modules/model-product-listing-page/Kbank_current_account_page_SEO_fields.png "Demo SEO fields in the Kbank's Current Account page")

> **Info:** **Pattern takeaway:** Keep _SEO_ and _Open Graph fields_ at the wrapper page layer so channel metadata stays separate from reusable product data.

Create or reuse an **Open Graph metadata schema** for social sharing. Review the Kbank demo site's _Open Graph_ reusable field schema for inspiration. At a minimum, include:

- _OG title_ (may differ from your SEO title, optimized for social networks),
- _OG description_ (optimized for social sharing, may differ from SEO description),
- _OG image_ (optimized for social media dimensions, may differ from your product's primary image),
- _Platform-specific properties_ for Facebook or Twitter cards.

Create dedicated fields or reuse a **Page publishing schema** for content management. You can include fields, such as _Publish date_ (override the default if needed), _last updated date_ (can be system-generated or manually overridden), and _author_ or _owner_ assignment.

Though we recommend using _Page Builder widgets_ to extend or customize the core product data, you might need to, in some cases, add **website-specific presentation fields** to your product page. Editors will use them to customize how the product appears on your website, and you need this data in a structured format. We have seen customers use fields such as the _hero banner_ image (different from the product's main image and specific to your website channel), _featured callout texts_ (promotional text that appears only on this specific page), and _page-specific calls to action_ (custom CTAs for this landing page).

> **Tip:** Use [Page Builder](https://docs.kentico.com/documentation/developers-and-admins/development/builders/page-builder/page-templates-for-page-builder.md) widgets to present product data on your _wrapper pages_ rather than adding content fields to the _Content tab_. Using _widgets_ provides editors with more flexibility, supports personalization for different audience segments, and makes the editing experience more intuitive.
