第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. 解决Dcat Admin laravel框架登录报错问题,(blocked:mixed-content)

    前言 在使用 Dcat Admin 后台登录时,发生 error 报错:(blocked:mixed-content) xhr VM484:1,浏览器拦截 其实这是浏览器在 HTTPS 页面中尝试加载 ...

  2. vscode运行js文件

    一. 首先你需要下载安装 nodejs 下载地址 二. 在 VS Code中有一个插件 code runner,安装后可以直接运行在 node 环境中,然后就可以在 vscode 中输出文件的结果. ...

  3. php 过滤掉emoji表情

    <?php function filter_emoji($str) { $str = preg_replace_callback( //执行一个正则表达式搜索并且使用一个回调进行替换 '/./u ...

  4. MySQL 常用优化

    目录 单表优化 字段 索引 查询SQL 引擎 MyISAM InnoDB 系统调优参数 升级硬件 读写分离 缓存 表分区 分区的好处是: 分区的限制和缺点: 分区的类型: 分区适合的场景有: 垂直拆分 ...

  5. MySQL 8.0 误删了root用户怎么办

    MySQL 8.0 误删了root用户怎么办 修改配置文件 修改配置文件,让其可以无账号登录 默认的文件为: /etc/my.cnf 添加:skip-grant-tables 重启服务 service ...

  6. BandiZip无广告版安装

    BandiZip无广告版安装 Bandizip 是一款压缩软件,它支持Zip.7-Zip 和 RAR 以及其它压缩格式.它拥有非常快速的压缩和解压缩的算法,从大学用到现在,但是现在最新的版本在每次压缩 ...

  7. Windows Server评估版/正式版/数据中心版的来源及转换

    评估版: 从微软评估中心下载的版本,相当于微软提供的试用版,可免费使用一段时间.但该版本无法使用 KMS授权或 MAS 永久授权进行激活. 正式版/数据中心版: 从微软许可证中心下载的版本已标识了GL ...

  8. DeepSeek 会话补全 API

    DeepSeek 会话补全 API 是一个超强大的 AI 对话接口 ,可以让你: 打造自己的 智能聊天机器人 让 AI 帮你 写文章.改代码.编故事 甚至模拟 各种角色(比如猫娘.霸道总裁.科幻作家- ...

  9. windows 环境下vs code配置go mod 包管理进行开发,终于解决go mod 模式下可以编译运行,但引入包"github.com/gin-gonic/gin"的飘红黄波浪警告

    最近在积极的转入go后端开发,学习gin的时候,能够编译运行,但是在improt github.com/gin-gonic/gin 波浪警告 当时忘记截图了,类似于这样的波浪警告 , 内容大概是&qu ...

  10. 在使用import win32api时,报错:No module named win32api

    二.在使用import win32api时,报错:No module named win32api 网上查到有下面解决办法: pip install pypiwin32 或 pip3 install ...