codecamp

微信小程序 小程序搜索·优化指南

小程序搜索优化指南

爬虫访问小程序内页面时,会携带特定的 user-agent "mpcrawler" 及场景值:1129

判断请求是否来源于官方搜索爬虫的方法:

签名算法与小程序消息推送接口的签名算法一致。

参数在请求的header里设置,分别是: X-WXApp-Crawler-Timestamp X-WXApp-Crawler-Nonce X-WXApp-Crawler-Signature

签名流程如下: 1.将token、X-WXApp-Crawler-Timestamp、X-WXApp-Crawler-Nonce三个参数进行字典序排序 2.将三个参数字符串拼接成一个字符串进行sha1加密 3.开发者获得加密后的字符串可与X-WXApp-Crawler-Signature对比,标识该请求来源于微信

1. 小程序里跳转的页面 (url) 可被直接打开。

小程序页面内的跳转url是我们爬虫发现页面的重要来源,且搜索引擎召回的结果页面 (url) 是必须能直接打开,不依赖上下文状态的。 特别的:建议页面所需的参数都包含在url

2. 页面跳转优先采用navigator组件。

小程序提供了两种页面路由方式:a. navigator 组件b. 路由 API,包括 navigateTo / redirectTo / switchTab / navigateBack / reLaunch 建议使用 navigator 组件,若不得不使用API,可在爬虫访问时屏蔽针对点击设置的时间锁或变量锁。

3. 清晰简洁的页面参数。

结构清晰、简洁、参数有含义的 querystring 对抓取以及后续的分析都有很大帮助,但是将 JSON 数据作为参数的方式是比较糟糕的实现。

4. 必要的时候才请求用户进行授权、登录、绑定手机号等。

建议在必须的时候才要求用户授权(比如阅读文章可以匿名,而发表评论需要留名)。

5. 我们不收录 web-view 中的任何内容。

我们暂时做不到这一点,长期来看,我们可能也做不到。

6. 利用 sitemap 配置引导爬虫抓取,同时屏蔽无搜索价值的路径。

https://www.w3cschool.cn/weixinapp/weixinapp-cspq38rh.html

7. 设置一个清晰的标题和页面缩略图。

页面标题和缩略图对于我们理解页面和提高曝光转化有重要的作用。 通过 wx.setNavigationBarTitle 或 自定义转发内容 onShareAppMessage 对页面的标题和缩略图设置,另外也为 video、audio 组件补齐 poster / poster-for-crawler 属性。

8. 使用页面路径推送能力

可极大丰富微信可以收录的内容,进而提高小程序内容的曝光机会。请参考:

https://www.w3cschool.cn/weixinapp/weixinapp-it7838x9.html


微信小程序 小程序测速
微信小程序 小程序搜索·商品数据接入(内侧)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }