Fix 'offers': Null Error in OTTO Product Schema

Camilo Aponte

Camilo Aponte

Last updated on Sep 30, 2026

When OTTO auto-generates a Product schema and cannot extract pricing or availability data from your page, it may leave the offers field empty or null. This causes the schema to be flagged as invalid and prevents your page from qualifying for Google Product rich results. This article explains why it happens and how to fix it manually.

📋 Why This Happens

OTTO builds Product schema by crawling your page at the time of generation. If your product page does not display price and availability in a format OTTO can read during that crawl, the offers property is left null and the schema fails validation.

Regenerating the schema without first updating your page content will reproduce the same null result — it is not a bug that resolves itself on retry.

Important: Google requires the offers property for Product pages to qualify for rich results in search. A Product schema without valid offers data will not unlock enhanced listings, even if the rest of the schema is correct.

🔧 How to Fix It

  1. In your Search Atlas dashboard, go to Left sidebar → OTTO SEO → All Sites → [your project] → Overview → Onpage Optimizations (OTTO Grader) and navigate to Schema Markup.

  2. Find the page showing an invalid schema status. It will be marked with a red or error indicator.

  3. Open the schema to enter the editor.

  4. Choose the fix that matches your page:

    • Page has no pricing data: Remove the offers property from the schema entirely. This clears the validation error. Note that the page will not qualify for Product rich results without it.
    • Page does have pricing data: Populate the offers field manually. At minimum, include price, priceCurrency, and availability — the three properties required by schema.org for a valid Offer.
  5. Save your changes and deploy the schema.

⚠️ Known Limitations

  • OTTO cannot auto-populate offers if pricing data is not visible and machine-readable on the live crawled page. Manual entry is the only resolution in that case.
  • If price or availability changes on your page after the schema is deployed, you will need to update the schema manually to keep it accurate.

💬 Need More Help?

If you need further assistance, open the chat widget in the bottom-right corner of the platform and type human teammate to be connected with a member of our team.