PWA页面百度能识别吗?
你刚把网站升级成PWA,首页秒开、离线能用、还能添加到桌面……结果一查百度收录,发现新页面压根没进库?或者老页面排名反而掉了?别急着删Service Worker——问题可能不在PWA本身,而在百度“看”它的方式。
百度蜘蛛能抓取PWA内容吗?
能,但只看你给它看什么。
百度蜘蛛不会等JS执行完,也不会点“加载更多”,它打开你的页面,就看服务器吐出来的第一份HTML。如果你的index.html里只有<div id="app"></div>和一行Loading...,那它真就只抓到这个。
关键不是“用了PWA”,而是“首屏HTML有没有干货”。
比如一个做本地生活资讯的团队,把列表页从纯客户端渲染改成服务端渲染(SSR)后,首页HTML里直接包含了前6条店铺名称、地址和营业状态。百度蜘蛛进来一眼扫完,收录速度明显加快,后续长尾词的曝光也多了起来。
PWA的“App外壳”对SEO是利是弊?
外壳本身不伤SEO,伤的是你把它做得太“轻”。
所谓App外壳,就是用极简HTML搭个架子,靠JS动态塞内容。用户觉得快,但蜘蛛如果连架子都看不到实质,就会绕道走。
反过来看,PWA带来的加载速度提升,是百度明确写进搜索算法里的加分项。当用户点开你的页面,0.3秒就出标题和正文,跳出率降了,停留时间长了——这些真实行为数据,百度会记在小本本上。
所以别纠结“要不要外壳”,重点是:外壳底下,得先铺好内容地基。比如在<main>里预埋标题+摘要+发布时间,哪怕只是静态HTML,也比空盒子强。
Service Worker会不会挡住百度蜘蛛?
不会。百度蜘蛛压根不跑你的JS,更不会注册Service Worker。
它就像个只收快递不拆箱的派件员——HTTP请求发过去,服务器回什么,它就拿什么。Service Worker再厉害,也管不到服务器那一端。
但有个细节容易踩坑:如果你在Service Worker里缓存了旧版HTML,而某个用户恰好用老版本访问过,又点了分享链接,别人点进去看到的就是过期页面。虽然百度蜘蛛自己不会被缓,但用户分享的链接质量下降,间接影响传播和点击。
还有一种危险操作:在Service Worker里判断UA,对百度蜘蛛返回精简版HTML。这属于典型的风险动作,一旦被识别为“伪装页面”,轻则降权,重则清库。
记住:对蜘蛛和真人,给同一份HTML,最安全。
Manifest文件能带来搜索特权吗?
不能。至少现在百度搜索结果页里,不会因为你有manifest.json,就给你加个“可安装”角标。
但它不是摆设。manifest.json里填的name、short_name、description,会被百度用来生成搜索摘要中的标题和描述。填得准不准,直接影响用户点不点你。
另外,start_url和display: "standalone"这些配置,决定了用户从桌面图标点进来时,看到的是干净的全屏界面,还是带浏览器地址栏的网页。体验顺滑了,用户多看两眼、多点一个分类页,这些信号长期积累下来,对SEO是有实打实帮助的。
如何让百度更好地理解你的PWA?
两个最实在的动作,今天就能做:
给核心页面加上JSON-LD结构化数据
比如文章页,在<head>里加一段Article类型的数据,把标题、作者、发布时间、正文开头200字明确标出来。这不是给用户看的,是给百度蜘蛛准备的“内容说明书”。检查每个页面是否都有独立、可直访的URL
别用/home#detail=123这种带#的路由。改用History API,让每篇文章对应一个真实路径,比如/article/xxx。这样百度才能把每一页当独立内容来收录。
今天就能执行的一个具体操作
现在,请你打开百度搜索资源平台(就是你天天看索引量那个后台),进入「抓取诊断」工具,输入你PWA里一个最新发布的文章链接。
盯住两个地方:
- 左边「抓取的HTML」:里面有没有这篇文章的标题、作者、第一段正文?还是只有
<div id="root"></div>? - 右边「抓取截图」:模拟百度看到的画面里,文字内容是否完整呈现?有没有卡在“正在加载”?
如果发现内容缺失,别碰Service Worker,先回头改index.html或服务端模板——确保用户和蜘蛛第一次打开时,看到的是同一份“有料”的HTML。这是所有优化里,优先级最高的一步。