Skip to main content

Nameless Product item in structured data when product has a retail price (MSRP)

3 hours 37 minutes ago #100000655 by rforster
-- HikaShop version -- : 6.7.1 Essential
-- Joomla version -- : 6.2.0
-- PHP version -- : 8.4.26
-- Browser(s) name and version -- : Firefox 160.0
-- Error-message(debug-mod must be tuned on) -- : No PHP error. Issue is in structured data (Google Rich Results Test).

Hello,

Google Search Console reports critical "Product snippets" errors on our product pages:
- Missing field "name"
- Either "offers", "review" or "aggregateRating" should be specified

Setup: Gantry 5 / Helium template, no HikaShop template overrides on the frontend. The "HikaShop Microdata on Product Page" plugin is enabled.

What happens:
The error only occurs on products that have a "Retail price" (MSRP) filled in. Products without a retail price are fine.

On those product pages, the product container has itemscope itemtype=" schema.org/Product ", but the name, sku and offers markup is missing. Only the price-per-unit label keeps its itemprop, so Google detects a nameless Product item that only contains eligibleQuantity.

HTML on such a page (product with retail price):

<span id="hikashop_product_price_main" class="hikashop_product_price_main">
<span class="hikashop_product_msrp_price hikashop_product_price_full">
<span class="hikashop_product_msrp_price_title">...</span>
<span class="hikashop_product_price">€ 54,95</span>
</span>
<span class="hikashop_product_price_full"><span class="hikashop_product_our_price_title">...</span> <span class="hikashop_product_price hikashop_product_price_0">€ 24,95</span> <span class="hikashop_product_price_per_unit" itemprop="eligibleQuantity"> ...</span></span>
</span>

Google Rich Results Test then shows:
- A valid Product item (the JSON-LD from the microdata plugin)
- A "Nameless item" of type Product with only eligibleQuantity (2 critical issues)

The text of the label comes from the PER_UNIT language string.

Expected: no itemprop="eligibleQuantity" (or no Product itemscope) when the name and offers markup is not output, so that only the JSON-LD Product item remains.

Thank you!

Please Log in or Create an account to join the conversation.

21 minutes ago #100000657 by nicolas
Hi,

The nameless Product item does not come from the retail price. It is added by the "HikaShop Microdata on Product Page" plugin, an old plugin that is no longer needed: HikaShop already writes the complete structured data of the product page itself (name, SKU, image, description and offers, as the JSON-LD block that the Rich Results Test shows as valid).

The old plugin adds itemscope itemtype=" schema.org/Product " to the product page and itemprop="eligibleQuantity" to the price-per-unit label. It is only supposed to add the name, SKU and offers when the page holds no itemprop="name" yet. Your product pages show a listing of other products (the related products), and each product in that listing has its own itemprop="name". So the plugin skips the name and offers but still adds the Product scope and eligibleQuantity, and you get the nameless item. We checked several of your products without a retail price and they have exactly the same markup, so they are affected too, not only the ones with an MSRP.

To fix it, go to System > Manage > Plugins in your Joomla backend, search for "Microdata" and disable the "HikaShop Microdata on Product Page plugin". The product page will then only have HikaShop's JSON-LD Product item, which has the name and offers. The related products listing keeps its own ItemList markup, which is valid. When the plugin is enabled, HikaShop's configuration page also shows a warning asking you to disable it.

After that, run the Rich Results Test again on a product page and ask Google Search Console to validate the fix for the "Product snippets" report.

Please Log in or Create an account to join the conversation.

Time to create page: 0.042 seconds
Powered by Kunena Forum