SEO, AdWords, affiliates, advertising, and promotions
Hi
We're a B2B business and to view our prices online you have to create an account to log in to see the prices. But! If you seach our company name and product name the wholesale prices show on Google.
This is a big problem as our competitors are able to do this and also the public too.
How can we stop our prices showing on google search?
I'm guessing that the issue is your structured data (JSON-LD). Its commonly included by some themes and some SEO apps - and include your prices.
If you are B2B, do you need your products listed in Google? If not, placing a noindex on those products would help keep them out of Google listings
Hi Josh,
how is this "noindex" done for specific products?
Hi @marvic ,
You can use Shopify search metafield to mark product noindex. Please refer to the below video for reference.
My app, SEO Manager has the ability to do this on a pre-product basis
https://apps.shopify.com/seo-meta-manager
Hi @BSD11
If you want to prevent your products from showing on Google search, on the specific pages where prices are displayed, you can add a noindex meta tag. Also, ensure your sitemap doesn't include links to the pages with the wholesale prices.
And don't forget to edit your robots.txt file by adding rules to disallow search engines from indexing specific URLs where your prices are listed.
I hope that this helps!
Hi @BSD11
Google index out pages or product by two ways.
1. Google merchant
2. Google search console where we submit or Shopify share the data of website.
You need to remove that linking and you are done with no indexing.
Another way of doing that is put noindex meta tag on products.
Please refer to the below video to ocomplish the same.
Hope this will helps...
If you still want the products to show up in Google results but not show the price, you can remove the price from the JSON-LD on the product pages. Doing so might cause errors in Google Search Console, but will still allow the pages to be indexable.
Hi RichC, would you mind to explain a little bit more about how to remove the price from the JSON-LD on the product pages? e.g. Where to find the JSON-LD and how to remove the price? Many thanks!
Sure — the location of the JSON-LD is going to depend on your theme. In the current Dawn theme, for example, it can be found in the /sections/main-product.liquid. The JSON-LD object will be between <script> tags and the opening tag should be: <script type="application/ld+json">.
Within the JSON object, there's an "offers" key. In the value of the offers key should be a price property, which is most likely what's providing the price to Google. See example that I pasted.
You can try removing the price property, which will definitely create errors in Google Search Console and prevent rich snippets from showing in search results, as I think rich snippets require a price (at least last time I checked). But your products should still show up in search results, just without the price. You try adding zero for the price, which may or may not cause errors in Google Search Console, I'm not sure — Google seems to change the rules on that without warning. You'll have to experiment with it.
I should also mention, making the update won't instantaneously remove the prices from Google, as the site will need to be crawled again.
For reference, here's the JSON-LD from the current Dawn theme:
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Product",
"name": {{ product.title | json }},
"url": {{ request.origin | append: product.url | json }},
{% if seo_media -%}
"image": [
{{ seo_media | image_url: width: 1920 | prepend: "https:" | json }}
],
{%- endif %}
"description": {{ product.description | strip_html | json }},
{% if product.selected_or_first_available_variant.sku != blank -%}
"sku": {{ product.selected_or_first_available_variant.sku | json }},
{%- endif %}
"brand": {
"@type": "Brand",
"name": {{ product.vendor | json }}
},
"offers": [
{%- for variant in product.variants -%}
{
"@type" : "Offer",
{%- if variant.sku != blank -%}
"sku": {{ variant.sku | json }},
{%- endif -%}
{%- if variant.barcode.size == 12 -%}
"gtin12": {{ variant.barcode }},
{%- endif -%}
{%- if variant.barcode.size == 13 -%}
"gtin13": {{ variant.barcode }},
{%- endif -%}
{%- if variant.barcode.size == 14 -%}
"gtin14": {{ variant.barcode }},
{%- endif -%}
"availability" : "http://schema.org/{% if variant.available %}InStock{% else %}OutOfStock{% endif %}",
"price" : {{ variant.price | divided_by: 100.00 | json }}, // THIS PROPERTY!!
"priceCurrency" : {{ cart.currency.iso_code | json }},
"url" : {{ request.origin | append: variant.url | json }}
}{% unless forloop.last %},{% endunless %}
{%- endfor -%}
]
}
</script>
All of the above code has vanished or moved elsewhere!?
Now, the code looks like this in Dawn 15:
<script type="application/ld+json">
{{ product | structured_data }}
</script>
Deleting this part still shows the product price in shop.com/products/product.js
Has anyone found a solution yet? Why would the structured data be accessible by adding a .js anyways and not be rendered on the server side, to only display what the user is supposed to see? Would also reduce data (marginally bit still).
Also, is the robots.txt no index command a 'hardwired' rule, that's controlled on the server or is that just a rule that we expect search bots follow (are they still able to scrape the data and index, but don't serve the data in search engines, or is this a hard lockout?).
We recently spoke with Zopi developers @Zopi about how dropshipping businesses can enha...
By JasonH Oct 23, 2024A big shout out to all of the merchants who participated in our AMA with 2H Media: Holi...
By Jacqui Oct 21, 2024We want to take a moment to celebrate the incredible ways you all engage with the Shopi...
By JasonH Oct 15, 2024