微信現已開放小程序內搜索,開發者可以通過 sitemap.json 配置,或者管理後臺頁面收錄開關來配置其小程序頁面是否允許微信索引。
當允許微信索引時,微信會通過爬蟲的形式,爲小程序的頁面內容建立索引。當用戶的搜索詞條觸發該索引時,小程序的頁面將可能展示在搜索結果中。 爬蟲訪問小程序內頁面時,會攜帶特定的 user-agent:mpcrawler 及場景值:1129。需要注意的是,若小程序爬蟲發現的頁面數據和真實用戶的呈現不一致,那麼該頁面將不會進入索引中。
sitemap 配置用於配置小程序及其頁面是否允許被微信索引,文件內容爲一個 JSON 對象,如果沒有 sitemap.json ,則默認爲所有頁面都允許被索引;sitemap.json 有以下屬性:
rules 配置項指定了索引規則,每項規則爲一個JSON對象,屬性如下所示:
matching 取值說明
例子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"
}]
}
例子5:
{
"desc": "關於本文件的更多信息,請參考文檔 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
"rules": [{
"action": "allow",
"page": "*"
}]
}
注:沒有 sitemap.json 則默認所有頁面都能被索引
注:{“action”: “allow”, “page”: “*”} 是優先級最低的默認規則,未顯式指明 “disallow” 的都默認被索引