Category-specific guides

CPG, household, and cleaning

Small AOV, high frequency, bulk-quantity attributes (count, size, refills) AI agents read. The CPG category where subscription and replenishment shape the data model.

7 min read Updated May 1, 2026

CPG (consumer packaged goods) is the category AI shopping agents treat most differently from the rest. Average order value is small, purchase frequency is high, and the buyer is typically replenishing something they’ve bought before. AI agents querying CPG products weight bulk-quantity attributes (count, size, refill availability), subscription-readiness, and brand consistency in ways they don’t for other categories.

This guide covers household, cleaning, paper goods, and personal- care CPG (the products that aren’t food, supplements, or beauty — those have their own guides). What’s specific to the CPG model and what surfaces best in replenishment-intent queries.

What CPG includes here

The category cluster covers what doesn’t fit the food, beauty, or supplement guides:

What’s not in this guide: food, beverages, supplements, beauty, fashion. Each has its own guide because the attribute patterns diverge enough.

The CPG attribute pattern

Three attribute layers that CPG-intent queries depend on:

CPG product

Quantity layer

Suitability layer

Replenishment layer

Count / pack size

Unit volume / weight

Total volume / weight

Refill type

Use case

Surface compatibility

Sensitive-skin / fragrance-free

Subscription available

Bundle vs. single

The quantity layer

The single biggest CPG-specific attribute work. Buyers query with quantity intent: “Tide Pods 81 count”, “9 oz Dawn dish soap”, “family pack toilet paper”.

Three properties to get right:

"additionalProperty": [
  {
    "@type": "PropertyValue",
    "name": "Count",
    "value": "6"
  },
  {
    "@type": "PropertyValue",
    "name": "Unit size",
    "value": "12 oz"
  },
  {
    "@type": "PropertyValue",
    "name": "Total size",
    "value": "72 oz"
  }
]

For schema’s first-class size and weight properties (size, weight), use them when they cleanly map. CPG products often need the additionalProperty pattern because the count + unit + total trio doesn’t fit a single field.

The suitability layer

What the product is for and what it’s not for. Examples:

The suitability layer is often the deciding factor in CPG queries that include constraints (“fragrance-free laundry detergent for sensitive skin”).

The replenishment layer

CPG buyers buy the same product repeatedly. Surfacing replenishment-relevant signals in structured data gives downstream consumers something to filter on:

For schema, subscription availability has no first-class property. Use additionalProperty:

"additionalProperty": [
  {
    "@type": "PropertyValue",
    "name": "Subscribe and save",
    "value": "Available · 15% discount"
  }
]

For refills, use a separate Product for the refill SKU and link via isRelatedTo or isAccessoryOrSparePartFor. The pattern is uniform across CPG categories where dispenser + refill is the model (Method, Mrs. Meyer’s, etc.).

The schema pattern

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": {{ product.title | json }},
  "description": {{ product.description | strip_html | json }},
  "sku": {{ variant.sku | json }},
  "gtin13": {{ variant.barcode | json }},
  "brand": {
    "@type": "Brand",
    "name": {{ product.vendor | json }}
  },
  "category": "Health & Beauty > {{ product.product_type }}",
  "weight": {
    "@type": "QuantitativeValue",
    "value": {{ product.metafields.product.total_weight | json }},
    "unitCode": "ONZ"
  },
  "additionalProperty": [
    {%- if product.metafields.product.count -%}
    {
      "@type": "PropertyValue",
      "name": "Count",
      "value": {{ product.metafields.product.count | json }}
    },
    {%- endif -%}
    {%- if product.metafields.product.unit_size -%}
    {
      "@type": "PropertyValue",
      "name": "Unit size",
      "value": {{ product.metafields.product.unit_size | json }}
    },
    {%- endif -%}
    {%- if product.metafields.product.fragrance_free -%}
    {
      "@type": "PropertyValue",
      "name": "Fragrance free",
      "value": "true"
    }
    {%- endif -%}
  ]
}

The unitCode: ONZ is the UN/CEFACT code for ounce; switch to the appropriate code for grams (GRM), liters (LTR), etc.

Q&A pairs as a sibling FAQPage block

CPG pages typically carry pre-purchase Q&A around frequency of use, surface or skin compatibility, refill availability, allergens. When the catalog has this content, render it as a sibling FAQPage JSON-LD block alongside the Product block, not nested inside it. See Product schema for Shopify for the rendering pattern.

The contrarian take

Most CPG SEO content optimizes for storefront keyword discovery (“eco-friendly laundry detergent”, “natural toothpaste”). Discovery queries matter for first-time buyers. They don’t matter for replenishment buyers, who already know the brand and are searching the specific SKU (“Method laundry detergent 4x concentrate 53.5 oz”).

The replenishment buyer is the higher-value customer in CPG. They buy more frequently, churn less, and are easier to acquire when AI agents can confidently match the specific SKU they want. Optimize for the replenishment query first — full GTIN, full quantity attributes, full pack-size data — then layer in the discovery optimization.

Where it breaks

What to ship this week

  1. Audit top-revenue CPG SKUs for the count/unit-size/total-size trio. This is the highest-leverage attribute set.
  2. Add metafields for the quantity layer + suitability flags (fragrance_free, allergen flags).
  3. Update the Liquid template to render additionalProperty and the weight block.
  4. Configure the GMC feed with the correct unit_pricing_measure and unit_pricing_base_measure fields (these are GMC-specific, separate from schema).
  5. For dispenser + refill product pairs, add the isAccessoryOrSparePartFor link.

For a 100–500 SKU CPG catalog, this is a 3–5 day project. The lift in replenishment-intent queries is typically the biggest absolute traffic gain of any AI surfacing project.