改善网页 SEO 与社交分享预览
检查源 HTML、生成器或构建路径、线上响应和渲染后的 DOM。区分公开且可索引的页面与受保护或可分享的页面,同时保留网站的访问与索引策略。搜索结果、可读的源响应和 Google 实际收录的版本属于不同证据。
正文交付
修改 head 或正文交付方式时,阅读 public-page-seo-patterns.md。
- 明确用户希望被搜索到的内容。固定说明可以使用普通 HTML;文章、报告和排名需要实际相关内容,不能只有产品介绍。图表或计算工具无需嵌入完整历史记录。
- JSON 可以继续作为事实来源。根据项目选择构建时生成、现有内容更新流程或服务端渲染;不要为每个页面都要求新增调度器或框架。
noscript是无 JavaScript 备用内容,不能证明 Google 收到了预期的渲染正文。检查应用挂载是否替换了它或其他初始内容。- 明确哪个代码负责初始 HTML 和交互内容。不要因为 JS 已启动就删除有用的初始内容。Hydration 需要匹配的标记和初始数据;不能随意让普通生成 HTML 进行 Hydration。避免重复的可见正文或无样式闪现。
- 分别测试首次访问数据失败和刷新失败:新访客没有以前加载过的数据。在网站的新鲜度规则允许的范围内保留可用且有效的快照,并如实显示其状态。不要编造快照,也不要为压制错误而移除生成校验。
- 准确报告不确定的原因。通用的生成不匹配信息也可能代表模式、数量或时间戳校验;应检查实际条件后再命名根因。
这些是设计与验证标准,不表示未经测试的架构已经解决索引问题。只改造请求涉及的路由或生成器。保留被排除的子系统及其独立维护的元数据契约。
元数据与分享
- 在应用或分析脚本之前的初始响应中输出 charset、title、description、canonical、OG/Twitter 及适当的 robots。charset 应靠近 head 开头。让 canonical 和
og:url与最终路由及 sitemap 中的loc(如有)一致。 - 遵循项目的 favicon 和语言约定。选择与页面匹配的结构化数据:工具不会因为数据变化就变成文章。阅读 time-snippet-safety.md,区分数据时间与真实发布日期。
- 在项目允许且有可靠来源时,为 sitemap
lastmod使用真实的重要内容修改日期;未知或项目不使用时省略。仅有部署或 cron 唤醒不代表内容发生变化。 - 对受保护的分享,阅读 private-page-sharing-patterns.md。在入口处只暴露安全的、与路由相关的元数据;不要削弱登录或 API 授权。
- 对图片卡片和社交客户端问题,阅读 social-preview-verification.md。使用尺寸真实且能代表内容的公开图片,不要使用 favicon 或私有资源。纯文字卡片属于有意保留的兼容性限制。
- 识别由服务端负责的 HTML 区域。通过现有的生成和部署流程保留其标记和当前内容;相关时结合
static-deploy-refresh-check。
验证
- 初始响应和禁用 JS 的视图包含约定的公开正文;正常渲染后的 DOM 也仍包含该正文。检查首次加载错误、相关的生成不匹配和直接详情 URL。
- 构建结果和线上 head 应有唯一的 title/canonical、有效的 JSON-LD 以及最终 URL 信号。检查真实响应状态和重定向链。
- 数据时间戳遵循项目的片段规则,不把过期数据伪装成当前数据。不要把内部提示词、权限或运维备注放入公开 HTML、注释或载荷。
- 对分享,使用相关爬虫 User-Agent 请求并检查响应或图片元数据。实际发送聊天消息需要用户授权;编辑器预览不能证明最终卡片内容。
- 如果可以使用 Search Console 的渲染或抓取 HTML,应将其与本地浏览器证据分开。不要仅凭标签、
noscript、site:结果或另一个搜索后端承诺已被收录。