-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
编译成百度小程序被百度蜘蛛抓取,url后被加上大量taroTimeStamp参数导致收录异常 #11713
Comments
求解,我这边也有这样的情况。 |
@Chen-jj @luckyadam 两位大佬帮看下。 |
Taro 只会在页面 onLoad 的时候修改一下路由参数加个时间戳: taro/packages/taro-runtime/src/dsl/common.ts Line 121 in a025bcb
不懂为什么百度抓了一堆 timeStamp 后缀 |
看地址,不一次执行了onLoad,而是很多次 |
这里是不是也讨论一下,如果有$taroTimestamp的情况下,进行一下覆盖?而不是新加。 |
也不是新加吧,你看上面的代码,只是改了 options 一次。新页面 onLoad,又是新的 options 对象了。就算百度扔相同的 options 对象进来,设置相同 keyname 的属性也不会出现多条数据。。 |
恩,具体看了一下代码,确实是。 |
如果spider来抓,其实不能加timestamp,否则会被认为是不同资源,或者根据来抓的蜘蛛UA,碰到蜘蛛就不要加timestamp |
参数一变,就当成不同资源了,作为百度蜘蛛来说没错,但是作为小程序这边,相同的资源,内容没有发生变化,或者说内容是静态的情况下,确实不应该加timestamp,否则对于cache也不友好 |
作为小程序来说,Taro 只知道 onLoad 触发了,并且能接收 options 参数,并不知道有蜘蛛来抓。 原因应该就是多次对 url encode 造成的,或许他们需要一个 encode 是幂等的 url。 |
同样遇到这个问题 目前有几个比较畸形的解决方式 1. urlencode的时候会把 "$" 符号编码,解决方式:"$"替换成一个不会被编码的 "_" 或者其它的符号 taro/packages/taro-runtime/src/dsl/common.ts Line 121 in a025bcb
// 换成 _taroTimestamp 来标记 不知道去掉这个会不会有影响。。。
options._taroTimestamp = Date.now() 2. 做了一点测试 百度小程序onInit生命周期比onLoad生命周期要提前
// 这里 直接还原成 onLoad 会损失一部分性能
config.page[0] = 'onLoad' @Chen-jj 大佬有时间看下 还有没有更合理的方案 |
@yuconora 另外这还和 |
@Chen-jj 神策统计这边也会抓取到$taroTimestamp参数, 在统计某个带参数的页面时, 由于$taroTimestamp时间戳值不一样, 导致统计时无法统计准确。 所以想知道,$taroTimestamp 目前的作用是? 是否可以干掉或者考虑让用户自己去开启或者关闭? |
关注 |
相关平台
百度小程序
小程序基础库: 3.320.32
使用框架: React
复现步骤
测试的taro版本是 3.4.6
直接编译成小程序提交给百度平台,审核过了以后,查看索引收录,会发现一大堆的相同页面,我这里出现了1600多条低质量页面,url前面路径完全一样,只不过url后面TaroTimeStamp挂了不同的值
这个地址是baiduapp的蜘蛛爬取的
对于这些链接,百度提示:资源内容低质则无法被搜索索引,请尽快修复或 删除死链
错误原因:该页面内容空短,不符合索引要求,请修改后重新提交
有问题的链接(从1600多条里面任选3条共参考):
/pages/index/index?%24taroTimestamp=1650014884199&%2524taroTimestamp=1649991556745&%252524taroTimestamp=1649968514119&%25252524taroTimestamp=1649892730538&%2525252524taroTimestamp=1649816854870
/pages/index/index?%24taroTimestamp=1650133248471&%2524taroTimestamp=1650079123259&%252524taroTimestamp=1650024688141&%25252524taroTimestamp=1649968624472&%2525252524taroTimestamp=1649968597357
/pages/index/index?%24taroTimestamp=1650112016426&%2524taroTimestamp=1650111757652&%252524taroTimestamp=1650100893370&%25252524taroTimestamp=1650090070493&%2525252524taroTimestamp=1650068412300
期望结果
在baiduapp蜘蛛抓取小程序内容时,不应该出现 TaroTimeStamp的参数
链接仅仅应该是:
/pages/index/index
实际结果
同一个url,后面出现大量不同的TaroTimeStamp的值
有问题的链接(从1600多条里面任选3条共参考):
/pages/index/index?%24taroTimestamp=1650014884199&%2524taroTimestamp=1649991556745&%252524taroTimestamp=1649968514119&%25252524taroTimestamp=1649892730538&%2525252524taroTimestamp=1649816854870
/pages/index/index?%24taroTimestamp=1650133248471&%2524taroTimestamp=1650079123259&%252524taroTimestamp=1650024688141&%25252524taroTimestamp=1649968624472&%2525252524taroTimestamp=1649968597357
/pages/index/index?%24taroTimestamp=1650112016426&%2524taroTimestamp=1650111757652&%252524taroTimestamp=1650100893370&%25252524taroTimestamp=1650090070493&%2525252524taroTimestamp=1650068412300
环境信息
The text was updated successfully, but these errors were encountered: