eCommerce Product Catalog can add schema.org Product structured data to each product page, so search engines can show your product name, image and price in the search results.
Enable product structured data
The markup is disabled by default. To turn it on, go to Products > Settings > General Settings, find the SEO Settings section, check Enable Structured Data and save the settings.
The data is added as JSON-LD in the page head. It is shown only on product pages that have a price, because search engines need a price for the product offer. If you disable prices in your catalog, no product structured data is added.
After you enable it, test a product page with Google’s Rich Results Test and check the reports in Google Search Console.
What the markup includes
- Product: name, main image, short description (as plain text), SKU and MPN. If the product has no SKU or MPN, or these fields are disabled, the product ID is used instead.
- Offer: product URL, price, currency, condition (new), availability (in stock) and a price valid for one year.
- Seller: your site name.
Extensions can add more data. For example, Reviews Plus adds the product rating.
Breadcrumbs markup is separate. It is added by the Enable Catalog Breadcrumbs option in the Breadcrumbs Settings section.
Customize the structured data
The markup comes from the template file templates/template-parts/product-page/structured-data.php in the plugin folder. To change it, copy this file to the implecode folder in your theme: your-theme/implecode/structured-data.php. Your copy is used instead of the original and is not lost when the plugin updates. See custom product page template for more about template files.
You can also add properties without copying the template. Use these actions:
ic_structured_data: adds product propertiesic_structured_data_offers: adds offer propertiesic_structured_data_seller: adds seller properties
Each action receives the product ID. Print JSON properties followed by a comma (in ic_structured_data_seller, start with a comma instead), for example:
add_action( 'ic_structured_data', 'my_product_brand_schema' );
function my_product_brand_schema( $product_id ) {
echo '”brand”: { “@type”: “Brand”, “name”: “My Brand” },';
}