Why Your Shopify Product Pages Are Missing GTIN and MPN
We built a free tool that checks a store's product pages for structured data problems, then pointed it at 30 real Shopify stores to see how common the gaps actually are.
19 of them, about 63%, had at least one product page missing a GTIN or MPN. That is not a guess. That is what we found when we looked.
If you run a Shopify store, there is a good chance this is happening on yours right now, and you would have no way to know without checking your own page source.
What GTIN and MPN actually are
GTIN stands for Global Trade Item Number. It is the barcode number on your product, the same kind of number a UPC or EAN uses. It is how Google, and every other retailer's system, identifies your exact product as the same item other stores might also sell.
MPN stands for Manufacturer Part Number. It is the identifier the maker of the product assigns to it, separate from your own SKU.
Neither one is optional in Google's eyes if you want your products to show up well in search. Google's own guidance for product structured data says a GTIN is expected whenever the product has one, because it is how Google's Shopping and search systems match your listing to the right product and pull in reviews, price comparisons, and availability from other sources.
Where this shows up in your page's own code
Every Shopify product page carries a block of structured data, usually written as JSON-LD, sitting quietly in the page's <head> or body. It looks something like this:
`` { "@type": "Product", "name": "Example Product", "sku": "EX-100", "offers": { "@type": "Offer", "price": 29.00, "priceCurrency": "USD", "availability": "https://schema.org/InStock" } } ``
Notice what is missing: no gtin, no gtin13, no mpn anywhere in that block. Price and availability are there. The identifiers Google needs to actually match your product against the wider catalog are not.
This is exactly the shape of the gap we found on 19 of 30 stores. Not broken tracking, not a missing price. A quiet, specific hole in the data that only shows up if you go looking for it.
How to check your own store in two minutes
You do not need our tool to check this yourself.
- Open any product page on your store.
- Right-click and choose View Page Source (or press Ctrl+U on Windows, Cmd+Option+U on Mac).
- Press Ctrl+F (or Cmd+F) and search for
application/ld+json. - Inside that block, search for
gtinandmpn.
If neither one appears, or the block itself is missing entirely, you have the same gap we measured across our sample.
For a second opinion, paste your product page URL into Google's Rich Results Test. It is Google's own free tool and it will tell you directly which fields it sees and which it does not.
The actual cost of leaving it
This is not a tracking bug. Nothing breaks. Your site keeps working exactly as it did. The cost is quieter than that.
Without a GTIN, Google has less to go on when deciding whether your listing qualifies for the free product listings that show up in regular search results, separate from paid Shopping ads. Missing identifiers make your product harder to match against Google's own catalog, which can mean less visibility in exactly the free, organic placements you are not paying for.
It also matters if you run Shopping campaigns through a Merchant Center feed. Google's product data policies flag GTIN as required for most new or existing products in established categories, and a mismatch or gap between your site and your feed is one more thing that can get a product disapproved.
The fix, if you use Shopify
Shopify has a built-in field for exactly this. Here is where to find it:
- Go to Products in your Shopify admin and open the product.
- Scroll to the Inventory section.
- Find the field labeled Barcode (ISBN, UPC, GTIN, etc.).
- Enter the product's real barcode number.
Once that field is filled in, Shopify includes it as the gtin value in the product's structured data automatically, on any standard Online Store 2.0 theme. No code, no app, no developer needed for this part.
MPN is a little different. Shopify does not have a dedicated MPN field out of the box. If your theme's structured data still shows MPN as missing after you have filled in the barcode, that one usually needs a metafield or a small theme edit, which is a fair reason to bring in someone who can see your theme directly rather than guess at it.
Check it, then check again
Fill in the barcode field, then repeat the two-minute check above on the same product page. You should see gtin show up in the JSON-LD block, and Google's Rich Results Test should confirm it.
If you would rather have this checked for you, run your store through our free scan at setello.com/scan. It looks at your public product pages the same way we checked those 30 stores, and tells you plainly whether this gap exists on your site, quoting the exact page and field. No account access, no login, nothing to install.