Shopify缺陷被黑,我是产品经理会这样设计!

huang, jialing 2024年9月24日11:53:57SEO评论21字数 6998阅读23分19秒阅读模式

眼中脚下路,心中要有宏图。大家好,我是跨境男孩Riven。

以下内容是Riven@跨境男孩原创内容,本人对此内容依法享有著作权,未经许可禁止转载和引用。

Shopify缺陷被黑,我是产品经理会这样设计!

继上篇文章:*Shopify卖家必看,你的网站99.9%已经被黑了!

"左右为难"的Shopify SEO 产品经理?国外的"月亮"不一定"圆"。

写个续篇,聊聊关于Shopify更多有趣的事情。不仅会指出问题、Shopify产品经理的原设计思路,还会说下我的优化方案。见下图大纲。

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Riven

1 说在前面

我前天发布文章后,在独立站社群中卖家们大量转发,也有数十家媒体和服务商转载,非常重视。

在此,感谢大家对内容的认可!

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Riven

独立站商家在自查后发现,自己的网站基本都存在 collections/vendors?q= 的URL被黑的问题。

上篇文章也说过,只有少数商家可能未出现该问题,是由于新网站DA低,被Google发现、收录和审查内容等,会需要更多时间。换而言之,如果你的网站没有被黑,可能要自我反思了。

Shopify论坛中可以发现,其实早在2个月前,Shopify官方人员就收到此反馈,出了初步解决方案。但是还得靠商家自己去发现,并且case by case处理。

Shopify目前还未从产研的角度思考,评估缺陷影响范围和严重程度,应如何解决数百万商家SEO问题。

因为这类垃圾URL收录,会严重影响品牌或店铺的声誉,Google对站点的审查,会影响SEO和用户体验。

我认为Shopify并不应放任黑客钻漏洞,去黑商家的站点;或者让商家自查然后通过各种改代码方式去修复,毕竟不是所有的商家都有SEO技术基础等。应该是从产品层面解决根本问题。

2 为什么我认为是Shopify设计缺陷?

可能会有人抬杠,说我是在黑Shopify?

说这不是Shopify的设计缺陷,而认为是GoogleBot对动态参数URL抓取的问题,不可避免?

真的不可避免吗?

我在上篇文章开头就说过,黑谁没那个必要,只是觉得有必要给Shopify商家提个醒。

就问你两个问题,如果思考清楚就会有所发现:

1)为什么Shopify独立站商品搜索场景下,同样是搜索动态URL,却不存在此问题?

2)为什么Amazon在商品分类页搜索产品场景下,同样是搜索动态URL,却不存在垃圾链接被利用收录的问题?

-- ---- ---- --  此处分割线,思考时间。

接着,说下个人对这两个问题的拙见:

2.1 Shopify 搜索动态URL设计策略

https://www.example.com/search?q=jewelry

https://www.example.com/search?q=jewelry&page=2

其中q参数后面会跟上用户搜索的关键词,如果有分页可能还会有&page=参数

没有被黑帽SEOer利用的根本原因是:Shopify给每个商家的内置的robots.txt文件中,加入了 Disallow: /search

这也是为什么上篇文章,我也说了其中4.3的编辑Robots.txt协议解决方案

Shopify缺陷被黑,我是产品经理会这样设计!

2.2 Amazon 搜索动态URL设计策略

Amazon将所有类目下的关键词使用动态URL设计,定义了k和page动态参数,并且分别维护相关关键词库数据;

将用户经常查询的与品类相关的关键词,进行管理维护,在URL后面可以跟内置的相关关键词;

比如 baby toys、moissanite rings品类:

 

 

https://www.amazon.com/baby-toys/s?k=baby+toys

https://www.amazon.com/baby-toys/s?k=baby+toys&page=2

 

https://www.amazon.com/moissanite-rings/s?k=moissanite+rings

https://www.amazon.com/moissanite-rings/s?k=moissanite+rings&&page=2

如果用户搜索关键词与内置或匹配项能够匹配,则快速返回数据,并且该动态URL支持被Google等搜索引擎索引;

比如你在Google 搜索 "moissanite rings Amazon"时,SERP会出现类似以下的链接:

https://www.amazon.com/moissanite-rings/s?k=moissanite+rings

https://www.amazon.com/moissanite-engagement-rings/s?k=moissanite+engagement+rings

https://www.amazon.com/moissanite-ring/s?k=moissanite+ring

https://www.amazon.com/moissanite-ring/s?k=moissanite+ring&page=6

https://www.amazon.com/Moissanite/s?k=Moissanite

https://www.amazon.com/moissanite-ring/s?k=moissanite+ring&page=2

https://www.amazon.com/moissanite-ring/s?k=moissanite+ring&page=3

Google SERP出现的,都是正规的Amz的查询URL和分页的URL等;

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Google

进入页面后,在Amazon站内,如果用户搜索关键词与Amazon内置的不匹配,则将该分类的URL搜索重定向到全局搜索;

(比如我在https://www.amazon.com/moissanite-ring/s?k=moissanite+ring 这个页面搜索 " moissanite ring test "

会重定向此页面:https://www.amazon.com/s?k=moissanite+ring+test)

同时Amazon在Robots.txt文件中做了特殊处理。( https://www.amazon.com/robots.txt )

也就不难理解,为什么黑帽SEOer不能利用这个k动态参数创造大量的伪Amazon URL,为其输送流量利益。

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Amazon

为什么说是Shopify设计缺陷?请继续阅读:

3"左右为难"的Shopify产品经理

通过以上的分析,以及Shopify的页面的canonical标签等信息,可以看得出来:

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Google

1)Shopify搜索域的产品经理,出发点想在C端出现搜索Vendors(厂商)字段时,能筛选出对应的商品;并且分析在线商店的热门搜索词,提供分析报告给商家等;

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Shopify

2)Shopify SEO产品经理,并没有将Vendors搜索的URL,与Search 的URL一样,直接内置在robots.txt中,进行disallow处理;出发点是想学习Amazon的SEO设计策略,希望通过动态q参数,帮助Shopify商家带来更多URL的收录和曝光,更多SEO流量等;

可能你又会问:为什么Shopify产品经理对于同样的搜索功能,/search?q= 与 /collections/vendors?q= ,却要设计两种方案 ?

我理解的是,因为使用场景不同:/search?q= 是网站全域资源对象的搜索,关键词数据层面不好处理;但vendors是基于厂商维度的系列产品,方便管理,可以创建更多的URL,带来vendors关键词的SEO流量;

给大家估算一个数据,就很好理解:若Shopify 100万商家独立站,平均每个站点200个SPU,分别由5个厂商供货,那么平均每个vendors链接按分页器分页后(每页16个商品),会有 200/5/16= 2.5(3页);

最后预计能被Google多收录 100万*5*3 = 1500万 Shopify商家的URL。

做得好的话,Vendors关键词在Google SERP下为商家带来的流量、以及对于Shopify的权威提升等,都是非常巨大的。

但是,对于Vendors后面带伪厂商关键词,导致搜索结果为空时的特殊场景,Shopify SEO产品经理,并没有与搜索域产品经理、和建站编辑器产品经理,前置沟通好,或者未探讨出更好的解决方案;

你看Shopify的【在线商店 -> 网站导航 】菜单-> 产品系列和搜索筛选器处、及Shopify Dawn官方主题就知道,默认是未创建及开启vendors的filter,

这会导致所有的商家,并未意识到C端存在Vendors的查询页面,最终被黑帽SEOer利用,创建数百万的"搜索结果为0"的伪页面,带来了负面影响。

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Shopify

可能又有人疑问,为什么其他filter没有出现钻空子的情况?那是因为:

1)其他动态参数(比如pf_t_colour、pf_t_material、pf_p_price等)都是在商家特定的URL Collection 的handle后面,黑帽SEOer不方便百万站点批量处理,这是其一原因;

2)另外对于这类filter,即使动态参数后面跟了错误的信息,该URL的SEO信息透出时,也不会默认取伪信息;这样给黑帽SEOer就带来不了价值,这是其二原因;

3)canonical规范化标签使用问题;其他动态参数与collections/vendors?q=页面的使用是不同的;

以上三点,是我认为的三个核心原因;当然可能还有其他原因。

为什么Shopify SEO产品经理会左右为难?

Shopify SEO产品经理出发点是好点,因为这样设计,可以为商家和Shopify平台本身带来巨大的SEO价值,但是还有其他因素阻碍:

1)canonical规范化标签与元标题,两个字段都与search vendors联动取值,看似完美,实则有缺陷,被人利用;但如果不联动,又不能实现"最初的梦想",没有更佳的方案;

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Google

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Google

2)实际上Shopify的商家大都是使用的第三方主题,不一定都升级支持vendors的filter功能,很有可能会忽略掉;

3)需要跨域组织需求评审,拉通搜索域、商品域、建站域等多个产研中心,对齐SEO需求方案;

4)不是每个商家都具备编码能力,能够对robots.txt文件或者theme.liquid文件进行编码;

5)产品运营、市场、客户成功等部门,未能很好的支持赋能商家SEO,只能靠产品驱动等

同时,可能还有其他原因等。

最终,二权相害取其轻。Shopify选择了现在的设计方案。但实际上还有优化空间。

4 我是产品经理,我会这样设计

4.1 collections/vendors?q= 参数搜索优化

对于https://example.com/collections/vendors?q=  这个动态的查询页面,基于商家域的商品数据,vendors数值进行内置;

仅当搜索/筛选vendors关键词完全匹配时,才存在该动态URL页面,且允许让Google收录;

如果搜索搜索vendors关键词,不能完全匹配时,则重定向进入通用搜索页(/products/search?q=),且不允许Google收录;

-- 此需求需要拉通Shopify的商品域、搜索域的产品同学,对齐SEO需求:

另外,关于动态参数URL设计的最佳实践,感兴趣可以阅读我往期的文章:跨境男孩 | 独立站URL参数处理SEO指南

4.2 对collections/vendors伪静态URL优化

对collections商品集资源对象下,handle为vendors进行内置,不允许商家创建;

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Shopify

方案一:(推荐)

将这个页面C端透出站点所有的商品,可以正常访问;

案例:https://www.jcojewellery.com/collections/vendors (正常,为全部产品数据,这个网站很有可能做了二开)

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Google

https://www.oxford.shop/collections/vendors (无产品或供应商数据)

方案二:

将每个Vendors页面静态化,做集合页,可以正常访问;方便GoogleBot抓取和索引

4.3 支持商家优化vendors URL的SEO Meta信息

目前Shopify的逻辑是,collections/vendors?q= 页面SEO title是默认取的"供应商 - PageN- 店铺名称" 、元描述取的页面前面的内容,并根据终端设备SERP规则截取字符;需规划通过SEO插件优化SEO信息。

5 Shopify SEO未来的优化方向

基于以上分析,Shopify主站大概率不会在robots.txt文件中加disallow 或在theme.liquid文件中head中加noindex;

Shopify可能会考虑使用我说的4.1、4.2及4.3优化方案。

同时Shopify的市场、论坛、生态合作伙伴等,都需要配合同步相关信息。

案例站点:https://www.jcojewellery.com/collections/vendors

6 聊聊该缺陷的商家自行解决方案

6.1 不需要vendors搜索页面索引

上篇文章*Shopify卖家必看,你的网站99.9%已经被黑了!已经讲过三种方案了,有商家反馈有点懵或者比较麻烦;

这里再补充个方案:核心逻辑就是,在该页面head中设置noindex,让Google等搜索引擎不要索引该页面,不给黑帽人员留空间。

 

重要提示:要使noindex规则生效,页面或资源不得被 robots.txt 文件阻止,并且爬虫必须可以访问它。如果页面被 robots.txt 文件阻止或爬虫无法访问该页面,则爬虫永远不会看到该noindex规则,并且该页面仍会出现在搜索结果中

如果使用了我上篇文章说的4.3方案,则不用采取这个方案了。

Google官方文档:https://developers.google.com/search/docs/crawling-indexing/block-indexing

这里我说下Shopify的操作步骤:

1)进入Admin - 在线商店 -模板页面,点击「编辑代码」按钮

2)在【布局】菜单下找到theme.liquid文件,在Head中加入noindex的代码即可

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Shopify

代码示例:

 

{%- if request.path == '/collections/vendors' and collection.all_products_count == 0 -%}

"robots" content="noindex, nofollow">

{%- endif -%}

当你加了上面的代码后,可以使用Google URL 检查工具请求 Google 重新抓取页面,去获取noindex指令。或者你就只有慢慢等GoogleBot去发现了。

-- -- --

或者加入刷新页面和自动跳转至首页,加入以下代码:

 

{%- if request.path == '/collections/vendors' and collection.all_products_count == 0 -%}

"robots" content="noindex, nofollow">

"Refresh" content="0; url='https://www.homepage.com'" />

{%- endif -%}

-- -- --

如果你根本不想使用此/collections/vendors页面功能,可以直接设置该页面的重定向至首页:

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Shopify

注意不要轻易使用301重定向,因为这是永久重定向,如果后续你要使用 /collections/vendors 功能时,可能会影响页面被Google收录、和权重。

6.2 想被Google收录正常的vendors URL

你需要具备编码能力,或者等Shopify官方按照我上面写的4.1-4.3等优化好;

或者抱有希望,那些黑帽不搞你的大站(但似乎不太可能)。

7 聊聊Amazon SEO启发

不得不说Amazon的SEO是真的牛逼。Shopify vendors查询q参数的动态URL设计,极大可能是参考的Amazon的策略。

但由于一个是电商平台,一个是建站SaaS及其他场景不同,导致Shopify产品左右为难,出现的设计漏洞,被黑帽SEOer利用。

Amazon其实除了这个动态参数URL设计策略外,还有其他做得比较好的SEO策略。

包含PLP和PDP页面 H标签、FAQ、结构化数据、多语言多站点SEO、本地化SEO等,感兴趣的可以用Google大法调研。

由于篇幅限制,后续我再做分析Amazon自动化SEO。

8 最后

最后,八卦下,其实早在2019年就有卖家反馈过此类问题,只是Shopify一直没重视,或者找到良好的解决方案,最终才被黑帽SEOer发现漏洞,出现数百万Shopify站点受影响。

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Shopify

在2021年8月16日,因为Shopify故障,我说过:Shopify才是最大的风险。

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Riven

还有钓鱼邮件提醒,商家处理邮件时,需注意域名信息,比如shoplfy.com、sh0pify.com等

Shopify缺陷被黑,我是产品经理会这样设计!

图片来源:Riven

以上,感谢阅读!

相关文章
weinxin
我的微信
微信扫一扫
huang, jialing
  • 本文由 发表于 2024年9月24日11:53:57
  • 转载请务必保留本文链接:https://www.seoriven.com/product-manager 并注明摘自:跨境男孩Riven
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: