Google Shopping Feeds FAQs

Watch our video overview video

What requirements should the product page meet so that the MySitemapGenerator can index the information provided?
The product page must be publicly available, contain recognizable HTML source code, and the necessary information about the product offer. To ensure the correct definition, the product page must contain the valid Product markup or Open Graph Product metadata. In order to determine the data type and to process the information about the product offer in the Product markup, the offers property of the Offer or AggregateOffer type must be present. Pages that are marked up with the Open Graph protocol must contain the "og:type" tag with the "product" value.
Structured data should be used on all product offer destination URLs in order for our crawler to be able to process data correctly. Only one Product item corresponding to the product offer for the URL should be placed on the destination pages.
In the absence of structured data, our crawler tries to automatically detect the data about the product offers using an AI algorithm and web page analysis. However, this may not always ensure that you receive the correct data. We recommend using markup to achieve better results.
If your website does not use product markup and is not compatible with our AI-based extraction algorithms you can create a feed with a prepared CSV-file.

How MySitemapGenerator find and understand product data on a website

How MySitemapGenerator find and understand product data on a website

Supported Content Languages
Our automatic data extraction algorithms support the following content languages: English, Spanish, Portuguese, Russian, Turkish, French, German. Partially supported: Chinese, Italian, Ukrainian, Swedish.
Supported Currencies
US dollar, Euro, Argentine peso, Australian dollar, Brazilian real, Canadian dollar, Chilean peso, Colombian peso, Czech koruna, Danish krone, Hong Kong dollar, Indian rupee, Indonesian rupee, New Israeli Shekel, Japanese Yen, Malaysian Ringgit, Mexican Peso, New Zealand Dollar, Norwegian Krone, Philippine Peso, Polish Zloty, Saudi Riyal, Singapore Dollar, South African Rand, South Korean Won, Swedish Krona, Swiss Franc, New Taiwan Dollar, Thai Baht, Turkish Lira, United Arab Emirates Dirham, Pound Sterling, Vietnamese Dong, Russian ruble, Ukrainian hryvnia, Belarusian ruble, Kazakhstan tenge, Bahraini Dinar, Egyptian Pound, Georgian Lari, Hungarian Forint, Jordanian Dinar, Kuwaiti Dinar, Lebanese Pound, Omani Rial, Paraguay Guarani, Peruvian Sol, Romanian Leu, Uruguayan Peso, Uzbekistani Som.
What product data does MySitemapGenerator retrieve?
The following properties for products are indexed: name, short description, product price, currency of price offer, information about the availability and condition of the product offer, link to the image.
Special features of processing products belonging to Clothing and shoes
In accordance with the requirements of Google services, additional characteristics of individual product offers are mandatory for some products. We used fully unified and automated methods to define additional characteristics.
What elements of structured data are retrieved by MySitemapGenerator
MySitemapGenerator processes the data for the products:
  • name — product name. Specified as the Product property.
  • description — product description. Specified as the Product property.
  • image — link to the product image. Specified as the Product property.
  • price — price. Specified as the Offer property.
  • lowPrice — minimum price. Specified as the AggregateOffer property.
  • priceCurrency — currency. Specified as the Offer property. To specify the currency, you must use the currency codes according to ISO 4217.
  • priceSpecification — Specified as the Offer property.
  • availability — product availability flag. Specified as the Offer property.
  • condition — product condition. Specified as the Offer property.
  • category — category name. Specified as the Product property.
  • brand - Specified as the Product property.
  • gtin8 / gtin12 / gtin13 / gtin14 / isbn - International product identifier. Specified as the Product property.
  • sku - a store product unique identifier. Specified as the Product property.
Example of markup application for a product offer:
<div itemscope itemtype="">
  <h1 itemprop="name">Offer</h1>
  <a itemprop="image" href="http://youwebsiteurl/pictures/thumbnail.jpg">
    <img src="/pictures/thumbnail.jpg" />
  <div itemprop="offers" itemscope itemtype="">
    <meta itemprop="price" content="1000.00" />
    <meta itemprop="priceCurrency" content="USD" />
    <meta itemprop="availability" href="" />
    <meta itemprop="itemCondition" href="" />
  <div itemprop="description">Best offer</div>

Structured data for automatic processing is also available in a JSON-LD object.
Example of placing data in a JSON-LD object:
<script type="application/ld+json">
  "@context": "",
  "@type": "Product",
  "name": "Offer",
  "image": "http://youwebsiteurl/pictures/thumbnail.jpg",
  "description": "Best offer",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "1000.00",
    "availability": "",
    "itemCondition": ""

MySitemapGenerator processes Open Graph metadata for the products:
  • og:title — product name.
  • og:description — product description.
  • og:image — link to product image.
  • product:price:amount — price.
  • product:price:currency — currency. Currency codes must conform to ISO 4217.
  • product:sale_price:amount — the sale price of the product.
  • product:availability — availability of the product.
  • product:condition - product condition.
  • product:ean / product:isbn - International product identifier.

Example of applying Open Graph markup for a product offer:
    <meta property="og:type" content="product" /> 
    <meta property="og:title" content="Offer" /> 
    <meta property="og:description" content="Best offer" />
    <meta property="og:image" content="http://youwebsiteurl/pictures/thumbnail.jpg" />
    <meta property="product:price:amount" content="1000.00" />
    <meta property="product:price:currency" content="USD" />
    <meta property="product:availability" content="in stock" />
    <meta property="product:condition" content="new" />
Processing of structured data of the products which has reduced price
Two types of prices can be indicated in the Product feed: the regular price of the product and the current reduced price. This information can be identified using microdata or Open Graph.
An example of markup using the priceSpecification element:
<div itemscope itemtype="">
  <h1 itemprop="name">The Best Product Name</h1>
  <div itemprop="offers" itemscope itemtype="">
    <strike itemprop="price">1000.00</strike>USD
    <meta itemprop="priceCurrency" content="USD" />
    <span itemprop="priceSpecification" itemscope   
        <strong itemprop="price">900.00</strong>USD
        <meta itemprop="priceCurrency" content="USD"/>
        (Offer valid until 2029-01-12)
        <meta itemprop="validThrough" content="2029-01-12T00:00:00"/>

An example of Open Graph markup using the sale_price element:
    <meta property="og:type" content="product" /> 
    <meta property="og:title" content="The Best Product Name" /> 
    <meta property="product:price:amount" content="1000.00" />
    <meta property="product:price:currency" content="USD" />
    <meta property="product:sale_price:amount" content="900.00" />
    <meta property="product:sale_price:currency" content="USD" />
Where can I learn more about markup and the Open Graph Protocol for products?

If the product offer pages use both the and Open Graph markup simultaneously, the data contained in the microdata has a higher priority. In case of absence or presence of empty properties in, but if they exist in Open Graph - these values will be used.

How to check structured data on product pages?
You can check the correctness of filling structured data using the Markup validation tool.
How are empty structured data properties handled?
Please note: the product feed standard for Google regulates the presence of special feed elements and prevents the use of elements with empty values. According to these requirements, if there are empty properties in markup, they will be treated as follows:

Required elements:
  • Name property (product name) - the product item will be ignored.
  • Price property (product price) - the product item will be ignored.
  • Image property (product image) - the product item will be ignored.
  • Description property (product description) - replaced by the value of the name (product name) item.
How can I speed up website indexing?
Try to prevent from indexing as many information pages as possible (e.g. articles, reviews, and other similar pages). In this case, the crawler will not waste time on their processing, which will speed up the process of indexing the website, especially if there are many pages. You can use filters or create separate restrictions for our crawler using the robots.txt file to exclude information pages.
What is the difference between the number of crawled pages and the number of imported products?
The number of crawled pages is the total number of pages of the website that are crawled by our crawler. This number includes all the processed pages of the website – the home page, the pages of the catalog, as well as, depending on the structure of the website – blog/news pages, articles and reviews, other information pages (contact information, shipping information, etc.).
Sync with Google Tag Manager (Retargeting in advertising campaigns)
If you don't specify your product SKU in, Mysitemapgenerator generates its Unique Product Id. This Id is associated with the target URL and remains constant each time you create feeds using the Mysitemapgenerator.
You can easily sync your product IDs between MySitemapGenerator and Google Tag Manager.
Include our js-library in your template to display product pages:
<script type="text/javascript" src="//"></script>
Then you can get the current MySitemapGenerator identifier into the Javascript variable on any landing page of your products.
var offerid = mysitemapgenerator_calchash_offerid(window.location.href);
An example of use with Google Tag Manager code:
<script type="text/javascript" src="//"></script>
    var mysitemapgenerator_get_offerid = mysitemapgenerator_calchash_offerid(window.location.href);
    gtag('event', 'page_view', {
    'send_to': 'YOUR-GA-TRACKING_ID',
    'value': 'Your Current Best Offer Name',
    'items': [{
      'id': mysitemapgenerator_get_offerid,
      'google_business_vertical': 'retail',