第7章: SEO与渲染方式

在现代Web开发中,JavaScript扮演着越来越重要的角色。然而,JavaScript的广泛使用也为搜索引擎优化(SEO)带来了新的挑战。本章将深入探讨JavaScript SEO的核心问题,不同的渲染机制对SEO的影响,以及如何优化JavaScript驱动的网站以获得更好的搜索引擎排名和用户体验。

1. Google爬虫类型及其工作原理

搜索引擎爬虫是SEO的核心组成部分,了解它们的工作原理对于优化网站至关重要。本节将重点介绍Google爬虫,因为Google是当今最主要的搜索引擎。

1.1 Google爬虫的演变

传统爬虫的局限性

早期的搜索引擎爬虫主要设计用于处理静态 HTML 页面。它们通过解析 HTML 文档的结构来理解页面内容,但对于 JavaScript 生成的动态内容却无能为力。这导致了许多 JavaScript 驱动的网站在搜索结果中表现不佳 。


现代 JavaScript 渲染爬虫的出现 ⚙️

为了适应 Web 技术的发展,Google 在 2015 年推出了能够渲染 JavaScript 的爬虫。这种新型爬虫能够执行 JavaScript 代码,从而更好地理解和索引动态生成的内容。这是搜索引擎技术的一个重大进步,为 JavaScript 驱动的网站提供了更公平的竞争环境


1.2 主要的 Google 爬虫类型

Google 使用多种专门的爬虫来索引不同类型的网络内容,以下是一些主流爬虫

  • Googlebot(网页爬虫):这是 Google 的主要爬虫,负责抓取和索引网页内容。它有桌面版和移动版两种形式。

  • Googlebot Images(图片爬虫):专门用于发现和索引网络上的图片内容 ️。

  • Googlebot Video(视频爬虫):负责抓取和索引视频内容,包括视频元数据和缩略图 ️。

  • AdsBot(广告质量评估爬虫):这个爬虫用于评估 Google 广告的落地页质量


1.3 Googlebot 的工作原理

Googlebot 的工作过程可以分为三个主要阶段

抓取阶段

在这个阶段,Googlebot 会访问网站并解析 HTML。通过解析 HTML,Googlebot 会发现页面中链接的其他资源,如 JS 文件、图片和其他 HTML 页面。它会选择性地下载资源,特别是那些影响页面布局的文件。️ 通常不会在这个阶段下载 JavaScript 文件或其他大型资源

渲染阶段和下载阶段

在这个阶段,Googlebot 会像浏览器一样执行 JavaScript 代码进行渲染。这个过程可能会延迟几秒到几天不等,具体取决于 Google 的资源分配和页面复杂度。

索引阶段

渲染完成后,Googlebot 会分析页面内容,包括文本、图片、视频等,并将这些信息存储在 Google 的索引中。这个索引随后会用于响应用户的搜索查询 。

了解这些基本概念后,我们将在下一节继续探讨不同的网页渲染机制及其对 SEO 的影响

欢迎加入群聊,我们一起讨论一些更有趣的技术、商业、闲聊。

第七章: SEO与渲染方式的更多相关文章

  1. “全栈2019”Java异常第七章:try-catch-finally组合方式

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  2. SEO 第七章

    SEO第七章 网站网址链接 路径优化 网站的网址路径分为相对路径和绝对路径 绝对路径:绝对路径是完整的路径,不仅可以在站内打开,去其他地方依然可以打开. 相对路径:不是一个完整的路径,这种路径只能在站 ...

  3. [GEiv]第七章:着色器 高效GPU渲染方案

    第七章:着色器 高效GPU渲染方案 本章介绍着色器的基本知识以及Geiv下对其提供的支持接口.并以"渐变高斯模糊"为线索进行实例的演示解说. [背景信息] [计算机中央处理器的局限 ...

  4. [书籍翻译] 《JavaScript并发编程》第七章 抽取并发逻辑

    本文是我翻译<JavaScript Concurrency>书籍的第七章 抽取并发逻辑,该书主要以Promises.Generator.Web workers等技术来讲解JavaScrip ...

  5. 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (38) ------ 第七章 使用对象服务之动态创建连接字符串和从数据库读取模型

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第七章 使用对象服务 本章篇幅适中,对真实应用中的常见问题提供了切实可行的解决方案. ...

  7. Java语言程序设计(基础篇) 第七章 一维数组

    第七章 一维数组 7.2 数组的基础知识 1.一旦数组被创建,它的大小是固定的.使用一个数组引用变量,通过下标来访问数组中的元素. 2.数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储 ...

  8. 第七章 LED将为我们闪烁:控制发光二极管

     第七章 LED将为我们闪烁:控制发光二极管 本章我们将会看到一个完整的linux驱动程序,通过linux驱动程序控制LED的四个小灯,通俗的说就是通过向linux驱动程序来控制LED小灯的开关.用到 ...

  9. apue第七章学习总结

    apue第七章学习总结 1.main函数 程序是如何执行有关的c程序的? C程序总是从main函数开始执行.main函数的原型是 int main(int argc,char *argv[]); 其中 ...

  10. [Effective Java]第七章 方法

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. php 配置Gmail 发送邮件 PHPMailer

    hotmail 获取邮箱授权码 准备 首先你应该登陆https://mail.google.com地址,注册一个Gmail邮箱,然后设置开启IMAP访问 打开设置,开启IMAP访问 获取应用专用密码 ...

  2. STM32_RTOS_V2编程模板1-消息队列

    #pragma region QUEUE1 // 1DEFINE osMessageQueueId_t queueDemo1 = NULL; // 2INIT queueDemo1 = osMessa ...

  3. 树状数组(Fenwick Tree)原理和优化全面解析

    你正在开发一个交易系统,需要实时完成两种操作: 更新某个时间点的价格(单点修改) 快速计算某段时间段内的交易总量(区间查询) 当数据量较小时,我们可能会这样实现: vector<int> ...

  4. PriorityQueue作用和源码

    一.PriorityQueue作用和源码 PriorityQueue跟前几个阻塞队列不一样,并没有实现BlockingQueue接口,只是实现了Queue接口,Queue接口中定义了几组放数据和取数据 ...

  5. MySQL 中的 Log Buffer 是什么?它有什么作用?

    MySQL 中的 Log Buffer 是什么?它有什么作用? Log Buffer 是 MySQL InnoDB 存储引擎的一部分,用于存储写入日志数据的内存区域.它主要用于记录事务的变更日志,这些 ...

  6. 常用的 JVM 配置参数有哪些?

    常用的 JVM 配置参数 JVM 配置参数可以用来控制 Java 程序的内存分配.垃圾回收.性能优化等.以下是一些常用的 JVM 配置参数: 1. 堆内存相关参数 -Xms:设置 JVM 初始堆内存大 ...

  7. 在 Go 语言中,构造一个并发安全的 map 集合

    Map 集合是 Go 中提供的一个 KV 结构的数据类型,对它的操作在实际的开发中应该是非常多的,不过它不是一个线程安全的. 1 .Map 不是线程安全的 编写下面的测试代码: func TestUn ...

  8. Go 切片的扩容规则是怎么样的

    切片是动态数组,容量是根据元素动态增加的. 本来想看看源码怎么写的,发现切片追加元素的方法是内置的,看起来还挺麻烦 源码位于 builtin.go 中: // The append built-in ...

  9. .net core分布式锁的实现(基于redis)

    一.单个redis节点 实现原理:核心采用StackExchange.Redis的LockTake方法实现.支持同步获取锁,或者等待直到超时获取锁. 基于SENTX命令. copy一下文档的demo ...

  10. ubuntu安装clamav

    直接apt安装 sudo apt-get update sudo apt-get install clamav clamav-daemon clamscan --version 停止服务更新病毒库 为 ...