教程 框架 组件 接口 工具 其他

sitemap 配置教程

快应用内容搜索,现已基于sitemap标准开放,开发者可以通过 sitemap.json 配置允许厂商对页面进行索引。配置后,搜索后台的爬虫通过技术手段访问快应用页面,为内容建立索引。当用户在各个场景触发关键字时,可以展示在搜索列表中,并能直达快应用。

爬虫访问快应用页面时,会携带特定的 user-agent : qa-crawler 信息供后端参考;而快应用前端判断爬虫的依据为: global._inSpider = true

sitemap 配置

在快应用工程 src 目录下,新增 sitemap.json 文件,表示该应用将允许被爬虫索引。为保证良好的开发体验,您的快应用开发工具(IDE),建议更新到 v4.0 以上。

具体配置说明:

  • 配置索引页面: 根目录下的 sitemap.json 文件用来配置快应用页面是否允许被爬虫索引,可对特定页面的索引进行开启或者关闭;
  • 设置页面META信息: 代码中通过调用 this.$page.setMeta 接口设置与当前页面相关的标题、缩略图、摘要等必要信息。

需要注意的是,首次接入内容搜索时,各厂商可能需要签订相关补充协议,具体请参考 厂商支持情况

1. 配置索引页面

配置文件 sitemap.json

sitemap.json 文件 rules 字段定义了索引集,每项页面索引规则是一个json对象,属性如下所示:

属性类型必填默认值取值取值说明
rulestring"enable""enable"、"disable"命中该规则的页面是否能被索引
pagestring"*"、页面的路径页面路径,为核心匹配规则;* 表示所有页面均可收录,暂时不支持正则表达式
paramsstring[][]页面参数,为辅助匹配规则,当 page 字段指定的页面在被本规则匹配时可能使用的页面参数名称的列表(不含参数值), 即 key 值数组;不影响根据page匹配到的页面,但会优先索引同时命中params的页面。快应用页面可基于public 内定义的同名属性获取到参数value值
lastmodstring上次修改时间,用于引擎抓取优化。时间格式需符合 ISO-8601标准, 如 2020-06-16T03:01:21Z

注:

  • 没有 sitemap.json 文件则所有页面都无法被索引。
  • { "rule": "enable", "page": "*" } 是 rules 的默认规则, 爬虫遵循无禁止即允许的基本原则。

配置示例

假设 manifest.json 中已有如下页面:

  "router": {
    "entry": "pages/A",
    "pages": {
      "pages/A": {
        "component": "index"
      },
      "pages/B": {
        "component": "index"
      },
      "pages/C": {
        "component": "index"
      },
      "pages/D": {
        "component": "index"
      }
    }
  },

sitemap.json 示例一

{
  "rules": [
    { "rule": "enable", "page": "pages/A", "params": ["foo", "bar"] },
    { "rule": "disable", "page": "pages/B" },
    { "rule": "enable", "page": "*" }
  ]
}
  • pages/A?foo=1&bar=2 => 优先被索引
  • pages/A => 被索引
  • pages/B?foo=1&bar=2 => 不被索引
  • pages/B => 不被索引
  • pages/C => 被索引
  • pages/D => 被索引

注:最终路径是否带参数不会影响爬虫索引,但是会影响索引的优先级,爬虫优先索引包含配置了具体参数的页面。

sitemap.json 示例二

{
  "rules": [
    { "rule": "enable", "page": "pages/A" },
    { "rule": "enable", "page": "pages/B" }
  ]
}
  • pages/A => 被索引
  • pages/B => 被索引
  • pages/C => 被索引
  • pages/D => 被索引

注:由于{ "rule": "enable", "page": "*" }是 rules 的默认规则,所以如上配置(无禁止项)会让所有页面都能被爬虫访问索引到。

sitemap.json 示例三

如果只想允许 A,B 两个页面被索引到,简约的配置方式如下:

{
  "rules": [
    { "rule": "enable", "page": "pages/A" },
    { "rule": "enable", "page": "pages/B" },
    { "rule": "disable", "page": "*" }
  ]
}
  • pages/A => 被索引
  • pages/B => 被索引
  • pages/C => 不被索引
  • pages/D => 不被索引

2. 设置页面META信息

setMeta接口 1090+

根据 sitemap 的配置,爬虫可以对页面进行索引,页面收录后,需要抓取到有效的页面信息,才会有机会展示在厂商各个场景的搜索结果中;开发者可以通过调用 this.$page.setMeta 接口设置与当前页面相关的标题、缩略图、摘要等必要信息。

setMeta 接口在爬虫中可以即时使用,不受版本影响。但是快应用平台需要 1090+ 才支持,所以建议使用时做兼容处理,避免在低版本快应用平台上报错,参考使用示例。

接口参数

属性类型必填说明
titleString当前页面用于搜索的标题。注:通过 setMeta 设置的标题仅用于搜索,页面 titleBar 标题请通过setTitleBar设置
descriptionString当前页面内容摘要
picString当前页面内容缩略图的在线地址。注:缩略图及其质量对收录和召回权重有重要影响,缺少缩略图也会丧失部分场景投放资格,导致数据价值降低
keywordsString描述页面内容的关键词,多个可用逗号(英文状态下)隔开

使用示例

// setMeta 接口为1090新增,可以用以下方式兼容在低版本平台的运行。
if (this.$page.setMeta) {
  this.$page.setMeta({
    title: '什么叫奥运会',
    pic: 'https://pic.com/olympic.png',
    description: '奥运会即奥林匹克会东辉,是由国际奥林匹克委员会主办的世界规模最大的综合性运动会,发源于两千多年前的古希腊,因举办地在奥林匹亚而得名。',
    keywords: '奥运会, 古希腊'
  })
}

欲提升页面的收录效果,请遵循优化指示 搜索优化指南

厂商支持情况

厂商支持备注
小米no-
中兴no-
华为no-
金立no-
联想no-
魅族no-
努比亚no-
OPPOYES-
vivoYES首次接入内容搜索时,上传审核前需要先签署网签协议:网签链接
一加no-

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容