Task: Implement microdata markup

Implement microdata markup

Ворклоги

Problem: Google requires mandatory fields for Product in structured data

Essence of the Error

Google Search Console outputs an error:

"A value for one of the following data elements is required: offers, review, or aggregateRating"

According to the Google documentation, for Product markup, it is mandatory to have at least one of the following:

  • offers — price and availability information
  • review — product review
  • aggregateRating — average rating

Without this data, the page will not be shown in rich search results (rich snippets).

Typical Case

An online store with "price upon request" or "made to order" products. Such products do not have a fixed price, so the developer does not pass offers — and receives an error from Google.

Solutions

1. Use offers without a specific price

Schema.org allows specifying priceSpecification without an exact price:

{
  "@type": "Product",
  "name": "Children's Playground Premium",
  "offers": {
    "@type": "Offer",
    "availability": "https://schema.org/InStock",
    "priceSpecification": {
      "@type": "PriceSpecification",
      "priceCurrency": "RUB"
    }
  }
}

2. Add aggregateRating or review

If there is a review system, use it:

{
  "@type": "Product",
  "name": "Children's Playground Premium",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "12"
  }
}

3. Do not use Product markup for products without a price

If the product has no price and no reviews, you can use WebPage instead of Product. This will not provide rich snippets, but there will be no errors either.

Recommendation

For "price upon request" products, it is best to pass offers with availability, but without price. Google will accept such markup, and users will see information about product availability.

Besides that, there was also an error with the image paths — they were relative, but absolute ones were needed. Fixed it, sent for review.

Overall, the microdata is live and Google is gradually indexing it.

New requirement: Link HappyBaby2000 with Nikolai Lantz's personal entity

On the happybaby2000.ru website, add Organization + WebSite JSON-LD and specify Nikolai's technical involvement via contributor with a single @id:

https://fi1osof.ru/about

The entity must link to Nikolai Lantz's personal page.

The client organization remains the copyright holder (copyrightHolder) and publisher. Additionally, use creditText according to the actual role. Do not declare Nikolai as the owner, publisher, or founder of the client's business.

Central task: Link Nikolai Lantz's professional identity to implemented projects via JSON-LD.