结构化数据让 PWA 在搜索结果中可被发现
面向 PWA 可发现性的 JSON-LD 实战模式,向搜索引擎和应用目录传递安装提示与应用特性信号。
为什么 PWA 需要 SEO 结构化数据
如果一个 PWA 无法被搜索引擎发现,那么寻找该应用的用户就看不到它。结构化数据——尤其是 JSON-LD 标记——告诉搜索爬虫你的站点是一个可安装的 Web 应用,在搜索结果中展示安装提示,并将其纳入应用目录。没有它,可安装性和应用类特性会只停留在浏览器内部,永远无法触达自然发现。
Manifest 文件与 service worker 构成了 PWA 的技术事实。结构化数据则把这一事实向整个网络公开。
使用 SoftwareApplication schema 声明你的 PWA
SoftwareApplication schema 表示你的站点作为一个独立的运行应用。添加这段 JSON-LD:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "你的应用名称",
"url": "https://your-app.com/",
"applicationCategory": "ProductivityApplication",
"operatingSystem": "All",
"browserRequirements": "需要支持 PWA 的现代浏览器",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"featureList": "离线支持,推送通知,可安装",
"installUrl": "https://your-app.com/manifest.json",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"ratingCount": "1250"
}
}
</script>PWA 可发现性的关键字段:
applicationCategory: 从 Schema.org 中选择一个类别,以支持相关搜索过滤。operatingSystem: "All" 或 "Web" 表示跨平台可安装性。installUrl: 指向你的 web app manifest,以提示 PWA 可用性。featureList: 包含 "离线支持"、"推送通知" 与 "可安装",以提示应用类行为。aggregateRating: 如果收集了评分,则包含它以提升可信度。
为渐进式 Web 应用添加 WebApplication 特有字段
专门针对渐进式 Web 应用,用 WebApplication 扩展 schema,并加入暗示 PWA 能力的字段:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "你的应用名称",
"url": "https://your-app.com/",
"applicationCategory": "ProductivityApplication",
"browserRequirements": "需要 JavaScript 与 PWA 支持",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"featureList": [
"可离线工作",
"接收推送通知",
"可从浏览器安装"
],
"installUrl": "https://your-app.com/manifest.json",
"permissions": "通知,离线访问",
"description": "你的应用描述...",
"screenshot": "https://your-app.com/images/preview.png",
"softwareVersion": "2.3.0",
"datePublished": "2026-05-19"
}
</script>permissions 字段用于披露 PWA 请求哪些能力——对建立信任与过滤很有帮助。screenshot 为富搜索结果提供预览图。
提示可安装状态与安装入口
用 schema 告诉搜索引擎你的 PWA 何时符合安装条件以及用户如何安装:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "你的应用名称",
...
"installUrl": "https://your-app.com/manifest.json",
"installSupported": true,
"featuredImage": "https://your-app.com/images/feature.png"
}
</script>如果将 PWA 打包到应用商店,引用这些包:
{
...
"offers": [
{
"@type": "Offer",
"price": "0",
"priceCurrency": "USD",
"seller": {
"@type": "Organization",
"name": "Play Store"
},
"availability": "https://schema.org/InStock"
}
]
}这有助于搜索引擎将你的 PWA 与 Google Play 或其他商店中的打包版本关联起来。
验证并发布结构化数据
部署前使用 Rich Results Test 验证 JSON-LD。常见问题:
- 缺少必填字段(
@type、name、@context) - 数据类型错误(
price用字符串而不是数字) - URL 无效或未使用 HTTPS
- 同一页面上有重复的 schema 块.
验证通过后,发布到生产环境,并在 Search Console 中监控索引错误。
清单:PWA SEO 可发现性
- [ ] 应用首页包含
SoftwareApplication或WebApplicationschema JSON-LD。 - [ ]
installUrl指向 manifest 文件。 - [ ]
featureList包含 "installable"、"offline support" 与 "push notifications". - [ ]
operatingSystem设为 "All" 或 "Web" 以体现跨平台。 - [ ] 如果应用收集评价,则填写
aggregateRating. - [ ]
screenshot与featuredImage使用 HTTPS URL. - [ ] schema 通过 Rich Results Test 验证。
- [ ] Search Console 没有 JSON-LD 错误。
- [ ] 如果打包,则存储链接到 Play Store/iTunes 的
"offers".
这对自然发现的意义
可安装性是浏览器侧的提示——只有你主动告诉搜索引擎,它才会看到。结构化数据桥接了"技术上可安装"与"在搜索结果中可被发现"的落差。当用户搜索应用或生产力工具时,经过正确标记的 PWA 会与原生应用一样,在搜索结果中显示安装提示、评分与预览图。
把结构化数据当作你的 PWA 面向公众的可安装元数据。Manifest 供浏览器读取,schema 则向所有人宣告。