微信现已开放小程序内搜索,开发者可以通过 sitemap.json 配置,或者管理后台页面收录开关来配置其小程序页面是否允许微信索引。当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索词条触发该索引时,小程序的页面将可能展示在搜索结果中。 爬虫访问小程序内页面时,会携带特定的 user-agent:mpcrawler 及场景值:1129。需要注意的是,若小程序爬虫发现的页面数据和真实用户的呈现不一致,那么该页面将不会进入索引中。
若小程序中存在不适合展示信息如用户个人信息、商业秘密、成人相关等内容,不想被微信索引到。可以通过以下方式关闭页面收录。
以蚂蚁树林微信小程序为例,在微信小程序下拉列表搜“蚂蚁树林”就可以看见当前小程序了。
有三种方式可以关掉页面收录
1.小程序 sitemap.json 配置
小程序根目录下的 sitemap.json
文件用于配置小程序及其页面是否允许被微信索引,文件内容为一个 JSON 对象,如果没有 sitemap.json
,则默认为所有页面都允许被索引;sitemap.json
有以下属性:
{
"rules": [
{
"action": "allow", // 是否能被索引 allow,disallow 默认allow
"page": "path/to/page", //页面的路径,* 表示所有页面,
"params": ["a", "b"], //被本规则匹配时可能使用的页面参数名称的列表
"matching": "exact" // 页面在被本规则匹配时,此参数说明 params 匹配方式
"priority": number // 非必填,优先级,值越大则规则越早被匹配
}
]
}
//matching 取值说明
exact 当小程序页面的参数列表等于 params 时,规则命中
inclusive 当小程序页面的参数列表包含 params 时,规则命中
exclusive 当小程序页面的参数列表与 params 交集为空时,规则命中
partial 当小程序页面的参数列表与 params 交集不为空时,规则命中
没有 sitemap.json 则默认所有页面都能被索引
配置示例
示例1
path/to/page?a=1&b=2
=> 优先索引path/to/page
=> 不被索引path/to/page?a=1
=> 不被索引path/to/page?a=1&b=2&c=3
=> 不被索引- 其他页面都会被索引
{
"rules":[{
"action": "allow",
"page": "path/to/page",
"params": ["a", "b"],
"matching": "exact"
}, {
"action": "disallow",
"page": "path/to/page"
}]
}
示例2
path/to/page?a=1&b=2
=> 优先索引path/to/page?a=1&b=2&c=3
=> 优先索引path/to/page
=> 不被索引path/to/page?a=1
=> 不被索引- 其他页面都会被索引
-
{ "rules":[{ "action": "allow", "page": "path/to/page", "params": ["a", "b"], "matching": "inclusive" }, { "action": "disallow", "page": "path/to/page" }] }
示例3
path/to/page
=> 优先索引path/to/page?c=3
=> 优先索引path/to/page?a=1
=> 不被索引path/to/page?a=1&b=2
=> 不被索引- 其他页面都会被索引
-
{ "rules":[{ "action": "allow", "page": "path/to/page", "params": ["a", "b"], "matching": "exclusive" }, { "action": "disallow", "page": "path/to/page" }] }
示例4
path/to/page?a=1
=> 优先索引path/to/page?a=1&b=2
=> 优先索引path/to/page
=> 不被索引path/to/page?c=3
=> 不被索引- 其他页面都会被索引
-
{ "rules":[{ "action": "allow", "page": "path/to/page", "params": ["a", "b"], "matching": "partial" }, { "action": "disallow", "page": "path/to/page" }] }
注:没有 sitemap.json 则默认所有页面都能被索引
注:{"action": "allow", "page": "*"}
是优先级最低的默认规则,未显式指明 "disallow" 的都默认被索引
2.管理后台 “设置” 来配置小程序隐私设置
登录小程序微信公众平台,设置下的页面
此设置默认开启,除非开发者主动关闭或调整,否则将会持续处于“开启”状态。
3.小程序页面采取设置登录态
爬虫访问小程序内页面时,会携带特定的 user-agent:mpcrawler
及场景值1129
onLoad(options) {
// 获取场景值
var scence = options.scene
if (scence == 1129) {
wx.redirectTo({
url: '/pages/loading/loading'
})
}
}