sitemap.json
sitemap.json文件说明:
微信现已开放小程序内搜索,开发者可以通过 sitemap.json 配置,或者管理后台页面收录开关来配置其小程序页面是否允许微信索引。当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索词条触发该索引时,小程序的页面将可能展示在搜索结果中。 爬虫访问小程序内页面时,会携带特定的 user-agent:mpcrawler 及场景值:1129。需要注意的是,若小程序爬虫发现的页面数据和真实用户的呈现不一致,那么该页面将不会进入索引中。
小程序根目录下的 sitemap.json 文件用于配置小程序及其页面是否允许被微信索引,文件内容为一个 JSON 对象,如果没有 sitemap.json ,则默认为所有页面都允许被索引;sitemap.json 有以下属性:
配置项:
rules
类型:Object[]
是否必填:是
描述:索引规则列表
rules 配置项指定了索引规则,每项规则为一个JSON对象,属性如下所示:
page
类型:string
是否必填:是
默认值
取值:"*"、页面的路径
取值说明:*
表示所有页面,不能作为通配符使用
action
类型:string
是否必填:否
默认值:“allow”
取值:“allow”、“disallow”
取值说明:命中该规则的页面是否能被索引
params
类型:string[]
是否必填:否
默认值:[]
取值:
取值说明:当 page 字段指定的页面在被本规则匹配时可能使用的页面参数名称的列表(不含参数值)
matching
类型:string
是否必填:否
默认值:“inclusive”
取值:
取值说明:当 page 字段指定的页面在被本规则匹配时,此参数说明 params 匹配方式。
取值说明,他有4个值:
exact 当小程序页面的参数列表等于 params 时,规则命中
inclusive 当小程序页面的参数列表包含 params 时,规则命中
exclusive 当小程序页面的参数列表与 params 交集为空时,规则命中
partial 当小程序页面的参数列表与 params 交集不为空时,规则命中
priority
类型:Number
是否必填:否
默认值
取值:
取值说明:优先级,值越大则规则越早被匹配,否则默认从上到下匹配
sitemap.json配置示例1:
{
"rules":[{
"action": "allow",
"page": "path/to/page",
"params": ["a", "b"],
"matching": "exact"
}, {
"action": "disallow",
"page": "path/to/page"
}]
}
path/to/page?a=1&b=2 => 优先索引path/to/page => 不被索引
path/to/page?a=1 => 不被索引
path/to/page?a=1&b=2&c=3 => 不被索引
其他页面都会被索引
sitemap.json配置示例2:
{
"rules":[{
"action": "allow",
"page": "path/to/page",
"params": ["a", "b"],
"matching": "inclusive"
}, {
"action": "disallow",
"page": "path/to/page"
}]
}
path/to/page?a=1&b=2 => 优先索引path/to/page?a=1&b=2&c=3 => 优先索引
path/to/page => 不被索引
path/to/page?a=1 => 不被索引
其他页面都会被索引
sitemap.json配置示例3:
{
"rules":[{
"action": "allow",
"page": "path/to/page",
"params": ["a", "b"],
"matching": "exclusive"
}, {
"action": "disallow",
"page": "path/to/page"
}]
}
path/to/page => 优先索引path/to/page?c=3 => 优先索引
path/to/page?a=1 => 不被索引
path/to/page?a=1&b=2 => 不被索引
其他页面都会被索引
sitemap.json配置示例4:
{
"rules":[{
"action": "allow",
"page": "path/to/page",
"params": ["a", "b"],
"matching": "partial"
}, {
"action": "disallow",
"page": "path/to/page"
}]
}
path/to/page?a=1 => 优先索引path/to/page?a=1&b=2 => 优先索引
path/to/page => 不被索引
path/to/page?c=3 => 不被索引
其他页面都会被索引