谷歌搜索引擎优化指南 谷歌搜索引擎优化指南 谷歌搜索引擎优化指南 谷歌搜索引擎优化指南
  • 首页
  • 谷歌SEO工具
    • 关键词工具
    • 内容SEO工具
    • 链接查询分析工具
    • 排名监控工具
    • 网站SEO分析工具
    • 谷歌浏览器SEO插件
  • WordPress主题
  • WordPress插件
  • 谷歌SEO优化官方文档
  • 排行榜
  • 提交工具
谷歌搜索引擎优化指南 谷歌搜索引擎优化指南
  • 首页
  • 谷歌SEO工具
    • 关键词工具
    • 内容SEO工具
      • AI写作工具
    • 链接查询分析工具
    • 排名监控工具
    • 网站SEO分析工具
    • 谷歌浏览器SEO插件
  • WordPress主题
    • WordPress插件
  • 谷歌SEO优化指南
    • Google搜索要素
    • SEO基础知识
    • Google抓取和编入索引
    • Google排名和搜索结果呈现
      • 排名算法系统
      • 结构化数据
      • 页面体验
    • 监控和调试
    • 针对特定网站的指南
  • 谷歌SEO技术
    • 谷歌SEO入门教程
  • SEO工具使用指南

谷歌SEO优化指南(新版)

  • 谷歌搜索引擎优化(SEO)简介
  • Google搜索要素
    • Google 搜索要素概览
    • Google 搜索技术要求
    • 适用于 Google 网页搜索的垃圾内容政策
  • SEO基础知识
    • 使您的网站显示在 Google 搜索结果中
    • 关于 Google 搜索运作方式的深度指南
    • 创建实用、可靠、以用户为中心的内容
    • 谷歌搜索引擎优化 (SEO) 新手指南
    • 您需要 SEO 吗?什么是 SEO 专家?
    • 维持网站的SEO效果(技术型SEO技巧与策略)
    • Google 搜索使用入门:开发者搜索指南
  • Google抓取和编入索引
    • 抓取和索引编制主题概览
    • Google可编入索引的文件类型
    • GoogleSEO网址结构最佳实践(Google网址结构准则)
    • GoogleSEO链接最佳实践(内链、外部链接)
    • 关于移动网站和优先将移动版网站编入索引的最佳实践
    • 站点地图Sitemap
      • 了解站点地图(什么是站点地图Sitemap)
      • 创建和提交站点地图(Sitemap格式规范)
      • 使用站点地图索引文件管理站点地图(拆分较大的站点地图)
      • 图片站点地图格式和规范
      • Google新闻站点地图格式和规范
      • 视频站点地图和替代方案(视频站点地图示例)
      • 如何结合使用站点地图扩展
    • 抓取工具管理
      • 请求 Google 重新抓取您的网站网址
      • 减慢Googlebot的抓取速度
      • 验证Googlebot和其他Google抓取工具
      • 面向大型网站所有者的抓取预算管理指南
      • HTTP 状态代码以及网络连接错误和 DNS 错误对 Google 搜索有何影响
      • Google抓取工具和抓取器(用户代理)概览
      • Googlebot-什么是Googlebot
      • Google Read Aloud 用户代理
      • APIs-Google 用户代理
      • Feedfetcher
    • Robots.txt
      • Robots.txt简介与指南
      • 如何编写和提交robots.txt文件(robots协议规则写法)
      • 更新robots.txt文件
      • Google如何解读robots.txt规范
    • 网址规范化
      • 什么是网址规范化
      • 如何使用rel=”canonical”及其他方法指定规范网址
      • 解决规范化问题
    • AMP
      • 与 Google 搜索中的 AMP 网页相关的准则
      • 了解AMP在搜索结果中的运作原理
      • 增强在Google搜索结果中显示的AMP内容
      • 验证AMP内容是否可以显示在Google搜索结果中
      • 从 Google 搜索结果中移除 AMP 网页
    • JavaScript
      • 了解JavaScriptSEO基础知识
      • 解决与 Google 搜索相关的 JavaScript 问题
      • 修正延迟加载的网站内容
      • 将动态呈现作为临时解决方法
    • 网页和内容元数据
      • Google搜索的有效页面元数据
      • Google支持的meta标记和属性
      • 漫游器元标记规范(Robots meta标记、data-nosnippet和X-Robots-Tag规范)
      • 使用noindex阻止搜索引擎编入索引
      • 安全搜索功能和您的网站
      • 向Google说明您的出站链接的用意(rel属性)
    • 删除
      • 控制您在Google搜索中分享的内容
      • 从Google搜索结果中移除您网站上托管的网页
      • 从搜索结果中移除您网站上托管的图片
      • 让隐去的信息不显示在 Google 搜索中
    • 网站迁移和变更
      • 重定向和Google搜索
      • 网站更换托管服务提供商或迁移到内容分发网络 (CDN)
      • 在更改网址的情况下迁移网站
      • 有关在Google搜索中进行A/B测试的最佳实践
      • 暂停或停用网站
  • Google排名和搜索结果呈现
    • Google搜索结果呈现 主题概览
    • AI概览和您的网站
    • Google搜索的视觉元素库
    • Google搜索结果中的标题链接(Title)
    • Google搜索结果中的摘要(如何撰写元描述)
    • 图片搜索引擎优化 (SEO) 最佳实践
    • 视频搜索引擎优化 (SEO) 最佳实践
    • 影响您在Google搜索中的署名日期
    • 定义要在搜索结果中显示的网站图标(Favicon)
    • 经过翻译的功能-1 Google搜索中的翻译搜索结果
    • 经过翻译的功能-2 让广告网络能够使用与翻译相关的Google搜索功能
    • 精选摘要和您的网站
    • 使内容出现在Google探索中
    • Google搜索结果中的网站名称
    • 搜索结果中的站点链接
    • 在Google上启用网络故事、创建网络故事的最佳做法及内容政策
    • 实施灵活抽样时需遵循的常规指南
    • 本地功能-1 向Google添加商家详情
    • 本地功能-2 热门地点列表优化
    • 本地功能-3 退出Google Local
    • Google搜索和您网站上的备注(实验性功能)
    • “包裹跟踪”功能尝鲜者计划
    • 排名系统
      • Google搜索排名系统指南
      • Google搜索实用内容系统
      • Google搜索的评价系统
    • 页面体验
      • 了解Google搜索结果中的网页体验
      • 了解核心网页指标和Google搜索结果
      • 避免使用干扰性插页式广告和对话框
      • 在Google搜索中使用 Signed Exchange
    • 结构化数据
      • Google搜索中的结构化数据标记简介及其运作方式
      • 结构化数据常规指南
      • 丰富且互动的搜索结果
      • 使用 JavaScript 生成结构化数据
      • Google搜索支持的结构化数据标记(结构化数据列表)
      • 文章(Article、NewsArticle、BlogPosting)结构化数据
      • 图书操作 (Book) 结构化数据
      • 面包屑导航 (BreadcrumbList) 结构化数据(路径)
      • 轮播界面 (ItemList) 结构化数据
      • 课程信息(Course 和 CourseInstance)结构化数据
      • 课程列表 (Course) 结构化数据
      • 数据集(Dataset、DataCatalog、DataDownload)结构化数据
      • 论坛 (DiscussionForumPosting) 结构化数据
      • 知识问答(Quiz、Question 和 Answer)结构化数据
      • 雇主总体评分 (EmployerAggregateRating) 结构化数据
      • 估算工资 (Occupation) 结构化数据
      • 活动 (Event) 结构化数据
      • 事实核查 (ClaimReview) 结构化数据
      • 常见问题解答FAQ(FAQPage、Question、Answer)结构化数据
      • 居家活动 (VirtualLocation) 结构化数据
      • Google 图片中的图片元数据
      • 职位搜索的招聘信息 (JobPosting) 结构化数据
      • 学习视频(LearningResource、VideoObject、Clip)结构化数据
      • 本地商家 (LocalBusiness) 结构化数据
      • 数学求解器 (MathSolver) 结构化数据
      • 影片轮播界面 (Movie) 结构化数据
      • 单位组织 (Organization) 结构化数据
      • 练习题 (Quiz) 结构化数据
      • 产品/商品(Product、Review、Offer)结构化数据简介-0
      • 产品/商品(Product、Review、Offer)结构化数据-1商品摘要
      • 产品/商品(Product、Offer)结构化数据-2商家信息
      • 产品/商品结构化数据(ProductGroup、Product)-3变体(商品款式/规格)
      • 个人资料页面 (ProfilePage) 结构化数据
      • 问答 (QAPage) 结构化数据
      • 食谱(Recipe、HowTo、ItemList)结构化数据
      • 评价摘要(Review、AggregateRating)结构化数据
      • 站点链接 (WebSite) 结构化数据
      • 软件应用 (SoftwareApplication) 结构化数据
      • 订阅和付费内容结构化数据 (CreativeWork)
      • 民宿 (VacationRental) 结构化数据
      • 车辆详情 (Car) 结构化数据
      • 视频(VideoObject、Clip、BroadcastEvent)结构化数据
      • 可朗读(Article、WebPage)结构化数据(Beta 版)
      • COVID-19 通知 (SpecialAnnouncement) 结构化数据(Beta 版)
  • 监控和调试
    • 调试 Google 搜索流量下降问题
    • 通过Search Console进行监控
      • Search Console使用入门
      • 利用Search Console气泡图改进搜索引擎优化 (SEO) 效果
    • 使用搜索运算符进行调试
      • Google 搜索运算符概览
      • site: 搜索运算符
      • cache: 搜索运算符
      • Google图片src: 搜索运算符
    • 预防和监控滥用行为
      • 预防和监控网站上的滥用行为概览
      • 防止网站和平台存在用户生成的垃圾内容
      • 恶意软件和垃圾软件
      • 防止感染恶意软件
      • 社会工程学(钓鱼式攻击和欺骗性网站)
      • Google安全浏览屡次违规网站政策
  • 针对特定网站的指南
    • 电子商务网站
      • 在Google搜索中推广电子商务网站的最佳做法 概览
      • 电子商务内容可以展示在Google上的什么位置
      • 与 Google 分享商品数据
      • 添加电子商务网站的结构化数据
      • 如何在Google上发布新的电子商务网站
      • 撰写优质评价
      • 设计电子商务网站的网址结构
      • 电子商务网站导航结构
      • 分页和增量加载以及它们对 Google 搜索的影响
    • 国际网站和多语言网站
      • 国际性和多语言网站主题概览
      • 管理多区域网站和多语言网站
      • 将网页的本地化版本告知Google
      • Google如何抓取语言区域自适应网页

Google搜索引擎优化 (SEO) 指南(旧版)

  • 谷歌搜索引擎优化(SEO)简介
  • Google搜索基础知识
    • 1.快速入门:了解 Google 搜索的基础知识
    • 2.在 Google 上占有一席之地
    • 3.搜索的工作方式(面向新手)
    • 4.针对搜索引擎优化您的网站
    • 5.衡量您的网站在 Google 上的效果
  • Google新手SEO
    • 1.Google搜索新手入门指南
    • 2.Google 搜索的工作方式
    • 3.Google搜索引擎优化 (SEO) 新手指南
    • 4.您需要 SEO 吗?
    • 5.在 Google 上建立商家详情
    • 6.谷歌站长工具Search Console 新手指南
  • Google高级SEO
    • 1.Google高级SEO使用入门
    • 2.进阶内容:Google 搜索的运作方式
    • 3.Google 搜索使用入门:开发者指南
    • 4.谷歌站长工具Search Console 高级指南
    • 5.Google优化指南
      • 5.1Google优化指南概览(目录)
      • 5.2Google网站站长指南
      • 5.3Google常规指南
        • 5.3-1保持简单的网址结构
        • 5.3-2向 Google 说明您的出站链接的用意
        • 5.3-3将网站标记为面向儿童的内容
        • 5.3-4浏览器兼容性
        • 5.3-5避免创建重复内容
        • 5.3-6确保链接可供抓取
        • 5.3-7确保 Googlebot 未被阻止
        • 5.3-8借助 Google 搜索进行网站测试的最佳做法
      • 5.4针对特定内容的指南
        • 5.4-1Google图片最佳做法
        • 5.4-2Google视频最佳做法
        • 5.4-3Google有关富媒体文件的最佳做法
        • 5.4-4与 Google 搜索中的 AMP 网页相关的准则
        • 5.4-5AJAX增强型网站
        • 5.4-6关于 AJAX 的常见问题解答
        • 5.4-7Google 搜索提供的 COVID-19 资源和提示
      • 5.5网站页面质量指南
        • 5.5-1自动生成的内容
        • 5.5-2欺骗性重定向
        • 5.5-3链接方案
        • 5.5-4付费链接
        • 5.5-5伪装真实内容
        • 5.5-6隐藏文字和链接
        • 5.5-7门页
        • 5.5-8抄袭内容
        • 5.5-9联属计划
        • 5.5-10不相关的关键字(关键字堆砌)
        • 5.5-11创建会执行恶意行为的网页
        • 5.5-12用户生成的垃圾内容
        • 5.5-13阻止垃圾评论的方法
        • 5.5-14举报网络垃圾、付费链接或恶意软件
    • 6.控制抓取和索引编制
      • 6.01抓取和索引编制主题概览(目录)
      • 6.02编入索引简介
      • 6.03创建网址列表
      • 6.04向 Google 提交网址
      • 6.07从 Google 中移除信息
      • 6.08暂停在线商家
      • 6.09整合重复网址
      • 6.10创建自定义 404 网页
      • 6.11转移、移动或迁移网站
      • 6.13Google 可以识别的特殊标记
      • 6.14漫游器元标记、data-nosnippet 和 X-Robots-Tag 规范
      • 6.15管理抓取速度:请求 Google 重新抓取您的网址和减慢 Googlebot 的抓取速度
      • 6.05管理站点地图
        • 6.5-1了解站点地图
        • 6.5-2创建和提交站点地图
        • 6.5-3拆分较大的站点地图
        • 6.5-4视频Sitemap及其替代方案
        • 6.5-5图片站点地图
        • 6.5-6创建 Google 新闻站点地图
      • 6.06阻止访问您的内容
        • 6.6-1阻止访问您的内容
        • 6.6-2控制与 Google 分享的内容
        • 6.6-3使用”noindex”阻止搜索引擎编入索引
        • 6.6-4.1通过 robots.txt 阻止访问-robots.txt 简介
        • 6.6-4.2创建 robots.txt 文件
        • 6.6-4.3向 Google 提交更新后的 robots.txt
        • 6.6-4.4有关漫游器robots.txt的常见问题解答
        • 6.6-4.5Robots.txt 规范
        • 6.6-5阻止您页面上的图片出现在搜索结果中
      • 6.12管理多区域和多语言网站
        • 6.12-1管理多区域和多语言网站
        • 6.12-2将网页的本地化版本告知 Google
        • 6.12-3Google 如何抓取语言区域自适应网页
        • 6.12-4跨语言搜索结果
      • 6.16Google 抓取工具
        • 6.16-1Google 抓取工具(用户代理)概览
        • 6.16-2谷歌机器人Googlebot
        • 6.16-3Google Read Aloud 用户代理
        • 6.16-4APIs-Google 用户代理
        • 6.16-5Feedfetcher
        • 6.16-6网页上的 Duplex”用户代理
        • 6.16-7验证 Googlebot
      • 6.17管理JavaScript内容
        • 6.17-1了解 JavaScript SEO 基础知识
        • 6.17-2解决与 Google 搜索相关的 JavaScript 问题
        • 6.17-3修正延迟加载的内容
        • 6.17-4实现动态呈现
    • 7.更改搜索结果呈现
      • 7.1搜索结果呈现主题概览
      • 7.2控制搜索结果中的标题链接
      • 7.4为网站启用搜索结果功能
      • 7.3控制搜索结果中的摘要
      • 7.5精选摘要和您的网站
      • 7.6站点链接
      • 7.7向 Google 搜索提供发布日期
      • 7.8定义要在搜索结果中显示的网站图标
View Categories
  • 首页
  • 谷歌SEO优化官方文档
  • 谷歌SEO优化指南(新版)
  • Google抓取和编入索引
  • JavaScript

了解JavaScriptSEO基础知识

您是否怀疑 JavaScript 问题可能导致您的网页或网页上的部分内容无法显示在 Google 搜索结果中?请参阅我们的问题排查指南,了解如何解决 JavaScript 相关问题。

JavaScript 是网络平台的重要组成部分,因为它提供的很多功能可将网络转变成一个非常强大的应用平台。请设法让用户能够通过 Google 搜索轻松找到您的由 JavaScript 提供支持的 Web 应用,这样做有助于您在用户搜索您的 Web 应用所提供的内容时发掘新用户并再度吸引现有用户。虽然 Google 搜索使用常青 Chromium 来运行 JavaScript,但您可从几个方面进行优化。

本指南将介绍 Google 搜索如何处理 JavaScript,以及与针对 Google 搜索改进 JavaScript Web 应用相关的最佳实践。

Google 如何处理 JavaScript #

Google 对 JavaScript 网络应用的处理流程分为 3 大阶段:

  1. 抓取
  2. 呈现
  3. 索引编制
了解JavaScriptSEO基础知识

Googlebot 会将网页加入队列以进行抓取和呈现。当某个网页正在等待被抓取/被渲染时,这种状态很难直接判断出来。

当 Googlebot 尝试通过发出 HTTP 请求从抓取队列中抓取某个网址时,它首先会检查您是否允许抓取。Googlebot 会读取 robots.txt 文件。如果此文件将该网址标记为“disallowed”,Googlebot 就会跳过向该网址发出 HTTP 请求的操作,然后会跳过该网址。

接下来,Googlebot 会解析 HTML 链接的 href 属性中其他网址的响应,并将这些网址添加到抓取队列中。若不想让 Googlebot 发现链接,请使用 nofollow 机制。

您可以使用 JavaScript 将链接注入 DOM,前提是此类链接遵循适用于可供抓取的链接的最佳实践。

抓取网址并解析 HTML 响应非常适用于传统网站或服务器端渲染的网页;在这些网站或网页中,HTTP 响应中的 HTML 包含所有内容。某些 JavaScript 网站可能会使用应用 Shell 模型;在该模型中,初始 HTML 不包含实际内容,并且 Google 需要执行 JavaScript,然后才能查看 JavaScript 生成的实际网页内容。

Googlebot 会将所有网页都加入渲染队列,除非 robots meta 标记或标头告知 Google 不要将网页编入索引。网页在此队列中的存在时长可能会是几秒钟,但也可能会是更长时间。一旦 Google 的资源允许,无头 Chromium 便会渲染相应网页并执行 JavaScript。Googlebot 会再次解析所渲染的链接 HTML,并将找到的网址加入抓取队列。Google 还会使用所呈现的 HTML 将网页编入索引。

请注意,依然建议您采取服务器端渲染或预渲染,因为:(1) 它可让用户和抓取工具更快速地看到您的网站内容;(2) 并非所有漫游器都能运行 JavaScript。

用独特的标题和摘要来描述网页 #

独特的描述性 <title> 元素和有用的元描述可帮助用户快速找到符合其目标的最佳结果;我们的指南中解释了怎样才算是良好的 <title> 元素和元描述。

您可以使用 JavaScript 设置或更改元描述及 <title> 元素。

Google 搜索可能会根据用户的查询显示不同的标题链接。 当标题或描述与网页内容的相关度较低时,或者当我们在网页中找到了与搜索查询更相符的替代项时,就会发生这种情况。详细了解为什么搜索结果标题可能与网页的 <title> 元素不同。

编写兼容的代码 #

浏览器提供了很多 API,而 JavaScript 是一种快速演变的语言。Google 对所支持的 API 和 JavaScript 功能有一些限制。若要确保您的代码与 Google 兼容,请遵循我们的 JavaScript 问题排查指南。

如果您使用功能检测机制检测到您所需的某个浏览器 API 缺失了,我们建议您使用差异化渲染和 polyfill。由于无法对一些浏览器功能使用 polyfill,因此我们建议您查看 polyfill 文档以了解是否存在某些限制条件。

编写兼容的代码 #

Googlebot 会通过 HTTP 状态代码确定抓取网页时是否出现了问题。

如需告知 Googlebot 无法抓取某个网页或无法将某个网页编入索引,请使用有意义的状态代码(例如:404 表示找不到网页,401 代码表示必须登录才能访问网页)。您可以使用 HTTP 状态代码告知 Googlebot 某个网页是否已移至新网址,以便系统相应地更新索引。

这里列出了 HTTP 状态代码及其对 Google 搜索的影响。

避免单页应用中出现 soft 404 错误 #

在客户端呈现的单页应用中,路由通常实现为客户端路由。 在这种情况下,使用有意义的 HTTP 状态代码可能是无法实现或不实际的。 为避免在使用客户端渲染和路由时出现 soft 404 错误,请采用以下策略之一:

  • 使用 JavaScript 重定向至服务器响应 404 HTTP 状态代码(例如 /not-found)的网址。
  • 使用 JavaScript 向错误页面添加 <meta name=”robots” content=”noindex”>。

以下是重定向方法的示例代码:

fetch(`/api/products/${productId}`)
.then(response => response.json())
.then(product => {
  if(product.exists) {
    showProductDetails(product); // shows the product information on the page
  } else {
    // this product does not exist, so this is an error page.
    window.location.href = '/not-found'; // redirect to 404 page on the server.
  }
})

以下是 noindex 标记方法的示例代码:

fetch(`/api/products/${productId}`)
.then(response => response.json())
.then(product => {
  if(product.exists) {
    showProductDetails(product); // shows the product information on the page
  } else {
    // this product does not exist, so this is an error page.
    // Note: This example assumes there is no other robots meta tag present in the HTML.
    const metaRobots = document.createElement('meta');
    metaRobots.name = 'robots';
    metaRobots.content = 'noindex';
    document.head.appendChild(metaRobots);
  }
})

使用 History API 而非片段 #

只有当链接是包含 href 属性的 <a> HTML 元素时,Google 才能抓取您的链接。

对于实现客户端路由的单页应用,请使用 History API 在 Web 应用的不同视图之间实现路由。为确保 Googlebot 能够解析并抓取您的网址,请避免使用片段加载不同的网页内容。以下示例是一个不好的做法,因为 Googlebot 无法可靠地解析网址:

<nav>
  <ul>
    <li><a href="#/products">Our products</a></li>
    <li><a href="#/services">Our services</a></li>
  </ul>
</nav>

<h1>Welcome to example.com!</h1>
<div id="placeholder">
  <p>Learn more about <a href="#/products">our products</a> and <a href="#/services">our services</p>
</div>
<script>
window.addEventListener('hashchange', function goToPage() {
  // this function loads different content based on the current URL fragment
  const pageToLoad = window.location.hash.slice(1); // URL fragment
  document.getElementById('placeholder').innerHTML = load(pageToLoad);
});
</script>

不过,您可以通过实现 History API,确保 Googlebot 可以访问您的网址:

<nav>
  <ul>
    <li><a href="/products">Our products</a></li>
    <li><a href="/services">Our services</a></li>
  </ul>
</nav>

<h1>Welcome to example.com!</h1>
<div id="placeholder">
  <p>Learn more about <a href="/products">our products</a> and <a href="/services">our services</p>
</div>
<script>
function goToPage(event) {
  event.preventDefault(); // stop the browser from navigating to the destination URL.
  const hrefUrl = event.target.getAttribute('href');
  const pageToLoad = hrefUrl.slice(1); // remove the leading slash
  document.getElementById('placeholder').innerHTML = load(pageToLoad);
  window.history.pushState({}, window.title, hrefUrl) // Update URL as well as browser history.
}

// Enable client-side routing for all links on the page
document.querySelectorAll('a').forEach(link => link.addEventListener('click', goToPage));

</script>

正确注入 rel=”canonical” 链接标记 #

您可以使用 JavaScript 注入 rel=”canonical” 链接标记,但我们不建议这样做。 在呈现网页时,Google 搜索会提取注入的规范网址。 下例展示了如何使用 JavaScript 注入 rel=”canonical” 链接标记:

fetch('/api/cats/' + id)
  .then(function (response) { return response.json(); })
  .then(function (cat) {
    // creates a canonical link tag and dynamically builds the URL
    // e.g. https://example.com/cats/simba
    const linkTag = document.createElement('link');
    linkTag.setAttribute('rel', 'canonical');
    linkTag.href = 'https://example.com/cats/' + cat.urlFriendlyName;
    document.head.appendChild(linkTag);
  });
使用 JavaScript 注入 rel=”canonical” 链接标记时,请确保这是网页上唯一的 rel=”canonical” 链接标记。不正确的实现方式可能会创建多个 rel=”canonical” 链接标记或更改现有的 rel=”canonical” 链接标记。 存在冲突或有多个 rel=”canonical” 链接标记可能会导致意外结果。

谨慎使用 robots meta 标记 #

您可以通过 robots meta 标记阻止 Google 将某个网页编入索引或跟踪链接。 例如,在网页顶部添加以下 meta 标记可阻止 Google 将该网页编入索引:

<!-- Google won't index this page or follow links on this page -->
<meta name="robots" content="noindex, nofollow">

您可以使用 JavaScript 将 robots meta 标记添加到网页中或更改其内容。以下示例代码展示了如何使用 JavaScript 更改 robots meta 标记以防止在 API 调用未返回内容时将当前网页编入索引。

fetch('/api/products/' + productId)
  .then(function (response) { return response.json(); })
  .then(function (apiResponse) {
    if (apiResponse.isError) {
      // get the robots meta tag
      var metaRobots = document.querySelector('meta[name="robots"]');
      // if there was no robots meta tag, add one
      if (!metaRobots) {
        metaRobots = document.createElement('meta');
        metaRobots.setAttribute('name', 'robots');
        document.head.appendChild(metaRobots);
      }
      // tell Google to exclude this page from the index
      metaRobots.setAttribute('content', 'noindex');
      // display an error message to the user
      errorMsg.textContent = 'This product is no longer available';
      return;
    }
    // display product information
    // ...
  });

Google 在运行 JavaScript 之前,如果在 robots meta 标记中遇到 noindex,便不会渲染相应网页,也不会将其编入索引。

如果 Google 遇到 noindex 标记,就会跳过渲染和 JavaScript 执行步骤。由于 Google 会在这种情况下跳过您的 JavaScript,也就没有机会从网页上移除标记。
使用 JavaScript 更改或移除 robots meta 标记可能不会起到预期效果。如果 robots meta 标记最初包含 noindex,Google 会跳过渲染和 JavaScript 执行步骤。如果您确实希望将网页编入索引,请勿在原始网页代码中使用 noindex 标记。

使用长效缓存 #

Googlebot 会主动缓存内容,以减少网络请求和资源使用量。WRS 可能会忽略缓存标头。这可能会导致 WRS 使用过时的 JavaScript 或 CSS 资源。为了避免这个问题,您可以创建内容指纹,使其成为文件名的一部分(如 main.2bb85551.js)。指纹取决于文件的内容,因此每次更新都会生成不同的文件名。如需了解详情,请参阅 web.dev 长效缓存策略指南。

使用结构化数据 #

在您的网页上使用结构化数据时,您可以使用 JavaScript 生成所需的 JSON-LD 并将其注入网页中。请务必测试您的实现效果,避免出现问题。

遵循网络组件最佳做法 #

Google 支持网络组件。 当 Google 呈现某个网页时,它会扁平化 shadow DOM 和 light DOM 内容。 这意味着 Google 只能看到在所呈现的 HTML 中可见的内容。若要确保 Google 在您的内容渲染后仍能看到该内容,请使用富媒体搜索结果测试或网址检查工具并查看所渲染的 HTML。

如果该内容在所呈现的 HTML 中不可见,Google 将无法将其编入索引。

以下示例会创建一个网络组件,以便在其 shadow DOM 内显示 light DOM 内容。 确保 light DOM 和 shadow DOM 内容均能显示在所呈现的 HTML 中的一种方法是使用 Slot 元素。

<script>
  class MyComponent extends HTMLElement {
    constructor() {
      super();
      this.attachShadow({ mode: 'open' });
    }

    connectedCallback() {
      let p = document.createElement('p');
      p.innerHTML = 'Hello World, this is shadow DOM content. Here comes the light DOM: <slot></slot>';
      this.shadowRoot.appendChild(p);
    }
  }

  window.customElements.define('my-component', MyComponent);
</script>

<my-component>
  <p>This is light DOM content. It's projected into the shadow DOM.</p>
  <p>WRS renders this content as well as the shadow DOM content.</p>
</my-component>

呈现后,Google 可以将此内容编入索引:

<my-component>
  Hello World, this is shadow DOM content. Here comes the light DOM:
  <p>This is light DOM content. It's projected into the shadow DOM<p>
  <p>WRS renders this content as well as the shadow DOM content.</p>
</my-component>

修正图片和延迟加载的内容 #

图片在带宽和性能方面的开销可能会非常高昂。一种可取的策略是:使用延迟加载方法,仅在用户即将看到图片时才加载图片。若要确保以方便用户搜索的方式实现延迟加载,请遵循我们的延迟加载指南。

以无障碍为设计宗旨 #

针对用户(而不仅仅针对搜索引擎)创建网页。在设计网站时要考虑用户的需求,包括那些可能使用不支持 JavaScript 功能的浏览器的用户(例如使用屏幕阅读器或旧版移动设备的用户)。测试网站可访问性的其中一种最简单的方法是:在停用 JavaScript 后通过浏览器预览网站,或在纯文本浏览器(例如 Lynx)中查看网站。以纯文本形式查看网站还可帮助您找出 Google 难以看到的其他内容,例如图片中嵌入的文字。

分享这篇文章 :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
更新 2024年1月19日

暂无评论

再想想
暂无评论...
文档目录
  • Google 如何处理 JavaScript
  • 用独特的标题和摘要来描述网页
  • 编写兼容的代码
  • 编写兼容的代码
    • 避免单页应用中出现 soft 404 错误
  • 使用 History API 而非片段
  • 正确注入 rel="canonical" 链接标记
  • 谨慎使用 robots meta 标记
  • 使用长效缓存
  • 使用结构化数据
  • 遵循网络组件最佳做法
  • 修正图片和延迟加载的内容
  • 以无障碍为设计宗旨
SEO算法教程

Copyright © 2021 SEO工具导航 粤ICP备15089945号-7 粤公网安备 44098102441079号

  
常用
搜索
工具
社区
生活
    热门推荐: