Thanks, we found that this is also working to noindex the vendor pages. What code did you use to stop writing the query into the title tag? I tried this but it ends up breaking the title tags on each page and only prints the url of the page.
{%- if request.path == ‘/collections/vendors’ and collection.all_products_count == 0 -%}
No Results Found
{%- else -%}
{{ seo_title | strip }}
{%- endif -%}
I can’t believe a Shopify wide fix has not been implanted yet. This problem is getting much worse and effects our google ranking and sales. Which in turn is effecting Shopify profits !
Or am i wrong this is not effecting sales and profits!
{%- if request.path == ‘/collections/vendors’ and collection.all_products_count == 0 -%}
{%- endif -%}
All other solutions, codes, apps, google disavow and removal, etc., are temporary fixes, not permanent ones. Don’t waste your time and energy focusing on anything other than this line of code.
We had 13 million not indexed and 2.5 million indexed pages. As you can see in the attached screenshot, it took just a little over a month to have almost all 2.5 million dropped.
Have patience; it will take some time. We worked on our keyword rankings for three years and were in TOP15; after this attack, our rankings for each keyword were 100+. Nonetheless, we were using the WEGLOT translate app for five different languages, and those attacks drained the “translations request” counter in a day, which meant that none of our pages were solved for a month cause visits from bots exceeded our request quota.
But as of right now, our keyword ranking is already coming back rapidly, it took just a couple of days, and some keywords from 94th place right now are ranked in 20-30th place.
@Jesper_Skaane_B the meta tag would go in your theme.liquid, anywhere between the and tags but I tend to put something like that as close to the top as possible to find it later if needed.
Thank you for taking the time to flag this issue in the Community. A special thanks to @Allan-EP , @Shay and @Greg-Bernhardt for helping champion this thread to provide workarounds and awareness.
The issue has been raised with our internal teams for further review. We do not have a timeframe we can provide on a fix, but I will update you once a fix has been implemented. In the meantime, please use the workarounds provided in this thread.
I also emailed Tobi, in mid-December (to the email address which he publicly lists: tobi@shopify.com). However, nobody from his office got back to me on this very serious issue.
I have also corresponded with at least three Shopify support agents. They have been a) either unaware of the problem, or b) they continually try to pass it off as a “backlink” issue.
This is not simply a “backlink” issue, because if the spam pages could not be created by exploiting the Shopify system, then the pages would not be indexed by Google (or any other search engine), and therefore there would be no risk of customers seeing the spam pages and being scared away from our store (or potentially millions of other Shopify stores).
@jcop24 Your observation matches mine. That is, I believe you are correct in saying, “If you search (for phrases like) “euromillion shopify” in google, numerous sites pull up but you can tell they are all malware on normal sites.” However, I would suggest that use of the word “malware” might be an overstatement at this time. “Spam” yes, but “malware”? Let’s hope it hasn’t gotten to that point, yet.
Another search that you can try is this:
If there is a unique/unusual phrase which you have observed which is repeatedly showing up in the spam pages, Google that phrase along with “powered by Shopify” (which is the text that often appears in the footer of Shopify stores). I have been using those combined search terms for about a month, and have watched the number of spam-related search results grow exponentially from about 350,000 to almost 3 million today. Please note that I am not posting the unique/unusual search phrase that I used, because I can see that there are legitimate stores that have been hit with this spam, and I do not want their businesses to get caught up in this mess any more than they may have been caught up in it already.
Shopify: Time is running out. This system-wide problem can be fixed by you, and only you. This is not simply a “backlink” issue, because if the spam pages could not be created by exploiting the Shopify system, then the pages would not be indexed by Google (or any other search engine), and therefore there would be no risk of customers seeing the spam pages and being scared away from our store (or potentially millions of other Shopify stores).
@Trevor You mentioned “the workarounds provided in this thread.”
While there have been several helpful folks who have been chipping in here, we ultimately do not have a concise workaround that we can use. That is, because Shopify has not provided store owners with any officially-vetted code, or official instructions, what we have is a hodgepodge of code suggestions which (if not implemented correctly) might harm either the functionality of the stores, or harm their hard-fought Google rankings.
It is not only ridiculous, but inexcusable, that at this very late stage in this spam vulnerability problem that we are being asked to sift through this forum in order to try and cobble together a code solution that will put a bandaid on this.
So, please, can we at least receive a post from someone at the appropriate Shopify team where they can perhaps edit together, into a single post, a code solution that we can all draw from?
Hi @Egle , thanks so much for this. But, as I am not a coder, I am hoping that you might be able to answer a question.
Is the “-” required beside the “%” (such as “%-” and “-%”)? The reason I ask is that when I look at existing if/endif code in my theme, I do not see the “-” either before or after “%”.
In an effort to help others who are currently feeling as lost and overwhelmed as I initially was when I first encountered this issue (and then this thread which lacks an official and concise solution from Shopify), I am compiling a shortlist of the 3 steps that our store has taken.
Please note that I am not a coder or SEO expert. I am simply listing what I interpret to be the most easily-implemented (but effective) steps out of those which others have generously posted earlier in this thread.
1. In theme.liquid, between and :
{% if request.path == ‘/collections/vendors’ and collection.all_products_count == 0 %}
{% endif %}
2. In collection-template.liquid:
{% if collection.id or collection.products.size > 0 %}
Thanks @Allan-EP , I’m still stumped and hesitant to do this w/o guidance since the
{{ collection.title | split: ‘|’ | first }}
is already wrapped in an if/then for {% if settings.enable_multilang %} as seen below:
{% if settings.enable_multilang %}
{{ collection.title | split: '|' | first }}{{ collection.title | split: '|' | last }}
{% else %}
{{ collection.title | split: '|' | first }}
{% endif %}
If you have time to type the whole thing out for me, I’d really appreciate it. I’ve seen my indexed vs. index drop a bit since I added the “no index” code below on 12/7 but it’s been a month and I didn’t have the results that @Egle has had where the indexed pages have dropped back to normal. Mine are still at 1.5M indexed. They should be 4K. {%- if request.path == ‘/collections/vendors’ and collection.all_products_count == 0 -%}
@Participant , in your summary of solutions being discussed, you didn’t mention using the disavow tool for URLs and domains (outside of our own) that we find are linking to our site and are obviously spam.
Can an SEO person, such as @Greg-Bernhardt, please chime in and answer this… Should I go ahead and disavow those now? I’m confused on the conversation about if/when it’s OK to do that.
Thanks @Participant for your summary post. It saves newcomers a lot of back searching to have a current summary. Maybe once we hear from Shopify’s @Greg-Bernhardt, we can update it to include the disavow recommendation parameters.
Thanks so much @Allan-EP ! I added it and previewed a spam URL. The collection title no longer shows but it shows up in my breadcrumbs. Is that good enough or do I need to find some code to get it not to show there as well?