A customer emailed me about a major issue that happened to his site. I’ll let him describe it in his own words:
Found the listing in google search, which is actually only a week old listing, clicked on it then proceeded to a 404 page. I had done some theme changes a few days ago to improve something else. I have reversed that, but still it doesn’t work.
We only have around 10 product pages so far that look this below, out of the 1800 pages.
What happened to this store is the fear of many Shopify store owners, perhaps even you share that fear.
That’s a fear of making a change to your theme and losing Rich Snippets and even the product page itself in Google.
In this case, it sounds like hundreds of pages were affected.
What happens when you rely on your theme’s structured data is that Google saves that data into their database (called the index).
Significant changes to that data can cause Google to remove that data and re-analyze the pages.
In this case, that was also combined with a theme that changed how links to products were created.
So instead of linking to the product with the category (collection), the new theme just linked to the product directly.
e.g. https://example.com/collections/frontpage/products/some-product VS https://example.com/products/some-product
In Shopify these two urls are mostly the same thing but to Google they are considered completely different.
Since this store was using the first version all over, Google was using those urls. With the theme changed along with the collection, all of a sudden every one of those older urls became invalid (404 error).
And Google started to remove them from their database.
Including removing the Rich Snippets.
Luckily this customer has a way to try to recover their Google listings but it will be a few weeks or months with lower traffic while everything recovers.
While it won’t fix the problems with url changes, JSON-LD for SEO can help you save any Rich Snippets you might have gotten. Because it uses the main url for a product without the collection piece, Google knows to use the main url in it’s database.