没有合适的资源?快使用搜索试试~ 我知道了~
首页微信小程序SEO优化实战:前后端协同与路径策略
微信小程序SEO优化实战:前后端协同与路径策略
需积分: 12 1 下载量 149 浏览量
更新于2023-03-03
收藏 75KB PDF 举报
微信小程序简易SEO优化是一项关键任务,尤其对于已有老小程序而言,提升其在搜索引擎中的可见性和用户体验至关重要。在为期约2天的优化过程中,作者着重介绍了两个重要的前端和后端优化点。 前端优化: 1. 直接跳转的URL - 分享出去的小程序卡片应当能够直接打开,这就涉及到页面的渲染逻辑和URL处理。确保分享出去的是详情页,而不是包含了所有内容的列表。例如,当用户点击列表中的项目时,后端应提供独立的/x/detail接口,通过id获取详细数据,避免因一次性分享过多信息导致的页面加载失败或SEO问题。此外,分享页的接口应该设定为无需登录,方便用户分享。 2. URL参数管理 - 避免使用localStorage临时存储数据,尤其是来自上一页的key。爬虫不会传递这些内存数据,所以应将这些信息附加在URL的query参数中,以便于搜索引擎抓取。 服务端优化: 3. 页面路径推送 - 利用微信小程序的页面路径推送功能,相当于向搜索引擎提交小程序的页面路径和查询字符串。这可以通过Node.js实现,开发者需要编写相应的代码来主动更新小程序的索引,确保搜索引擎能够跟踪并理解页面结构。 这两个优化点不仅解决了SEO问题,还提高了用户体验,使得用户在分享时能得到简洁、易于访问的内容,同时让搜索引擎更容易理解和收录小程序。在整个优化过程中,前后端协作至关重要,以确保每个环节都能有效地配合,达到良好的SEO效果。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/16207895/bg1.jpg)
微信小程序简易微信小程序简易SEO优化优化
半个月前给客户做了一个老小程序的 SEO 的初步优化计划,合计费时约 2 天左右,个中细节比较多, 这里举例两个比较重要,但是又不算难改的优化
点。
前端优化:跳转的前端优化:跳转的 URL 可以直接打开可以直接打开
简单可以测试为,分享出去的卡片,均可以直接打开(请务必测试是否登录,神坑)。
这里牵扯到两个问题。
页面渲染逻辑
query 所携带的参数
组件内 URL 问题
第一个问题会牵扯到后端接口下发的内容,比如这样的场景:
后端下发了一个列表数据,种种原因导致列表中就包含了点击列表后详情所要展示的所有内容,然后分享出去的是详情。这种情况基本是一个分享一个
炸,自然微信小程序的页面爬虫也是个个 GG。这种情况就得前后端一起优化,独立一个 /x/detail 的接口,通过 id 等方式可获取详情的详情数据,并且注
意,分享页务必接口设定无需登录。
然后就是这个 id 之类的东西如何带进去,这就是第二个问题。
有时候可能会因为一些特殊原因在 localStorage 或干脆直接挂在 getApp() 实例内存上,临时储存上个页面的 key,然后下个页面出来后在 onLoad 中拿这
个 key 去使用。如果你有这个操作或者历史遗留问题,务必将其放在下个页面的 path 上,挂载在 query 后面。原因就是爬虫不会从上页面给你带内存数
据,更不会验证本地缓存是否有效。
第三个问题也很常见,因为小程序 SEO 中有一条是能用 navigator 则用 navigator, 而很有可能 nav 的功能被你封装在了一个组件内,常见比如 card 类
组件,其本身就是一个 view(记得换成 navigator)下包含了其他元素。而点击操作之前可能是 bindtap 后根据组件携带的 item 计算出来的 path,而 item
是父级页面获取的接口 list 元素。如果出现这种情况,那么首先把组件的根 view 换成navigator,删除 bindtap 与相应事件,给 navigator 的 url 属性写上
item.url(或类似),然后在父级页面获取 list 的地方,多一个步骤,把 list 给 map 一下,或者 forEach 一下,给 list 的元素分别加上 url,这个 url 的计算
在这里直接进行即可。
服务端优化:使用页面路径推送能力服务端优化:使用页面路径推送能力
这个就跟搜索引擎的站长提交链接地址一样,只不过这里提交的是小程序页面 path 与 query。多的不说,直接 NodeJS 代码参考下即可。
function pushWeixinPages() {
// 默认起始 ID
let id = 0
// 这里放个本地文件保存上次推送的页面 ID,建议 ID 为数据库自增索引
// 本地保存是为了服务器重启不至于又来一遍
fs.readFile('./menu\_id', async (error, menu\_id) => {
console.log(error)
if(error) {
// 如果本地没有记录文件,则新建一个从零开始
fs.writeFileSync('./menu\_id', '0')
} else {
id = menu\_id.toString()
// 某页面数据库储存的数据
let push\_sql = \`
SELECT \[selector\] FROM \[from\] where \[where\] order by id;
\`
// console.log(push\_sql)
// 执行数据库语法,请自行封装
let ret = await util.sqlHandle(push\_sql)
// 推送的页面数组
let pages = \[\]
ret.forEach(({ id }, idx) => {
// 添加每一项进数组
pages.push({
path: '/pages/detail/index',
query: \`id=${id}\`
})
// 最后一项的时候,本地存一下进度 ID
if(idx === ret.length - 1) {
fs.writeFileSync('./menu\_id', menu.id)
}
})
// 获取微信 access\_token,请自行封装
let { data } = await local.get('/wx/access\_token')
// 推给微信
await axios.post(\`https://api.weixin.qq.com/wxa/search/wxaapi\_submitpages?access\_token=${data.access\_token}\`, {
pages,
})
// 其他,愿意的话可以做做安全判断
}
})
}
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
weixin_38617604
- 粉丝: 4
- 资源: 895
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)