Javascript对SEO的影响
你应该知道的关于SEO和Javascript的6个事实
了解JavaScript的基础知识已成为SEO专家的一项重要技能,尽管到目前为止,这两个学科之间的关系一直存在争议。
关于SEO和JavaScript的关键问题是发现搜索引擎蜘蛛是否可以正确地感知网站内容并实际评估用户体验。
虽然可以通过爬虫直接读取与PHP,CSS等一起使用的HTML,但是基于JavaScript的网站不能系统地访问。百度的抓取工具必须首先分析DOM,然后才能浏览网站。
一般定义
在深入研究JavaScript优化的最佳实践之前,让我们先看一下基本术语:
JavaScript是一种用于使网页动态和交互的编程语言。您可以将JavaScript放在HTML文档中,链接到它或引用它。
HTML代表超文本标记语言。简单来说,这是一个内容组织者:HTML提供网站结构(列表,标题,副标题,段落等)并定义静态内容。
AJAX是异步JavaScript和XML。基本上,这允许在不刷新整个页面的情况下更新内容。AJAX允许Web应用程序和服务器进行通信,而不会干扰正在显示的页面。
但是,您应该注意到,百度将不再需要AJAX来浏览基于JavaScript的网站。
SEO专家也应该对DOM(文档对象模型)有基本的了解。您应该将DOM视为百度用于浏览和分析网页的工具。
首先,百度收到HTML文档并识别其JavaScript元素。然后,导航器启动DOM,允许搜索引擎呈现页面。
1.让搜索引擎看到你的JavaScript
robots.txt文件配置为搜索引擎提供适当的探索可能性。如果你阻止他们看到JavaScript,那么对于探索蜘蛛而言,页面的显示方式将不同于用户。
这意味着搜索引擎无法获得完整的用户体验,百度可能会将这些操作解释为隐藏。
最好的方法是为爬虫提供他们查看网页所需的所有资源,方式与用户相同。
2.内部链接
内部链接是强大的优化工具,用于向搜索引擎显示您的网站架构并将其指向最重要的网页。
这里最基本的建议是:使用内部链接。
最好通过在HTML或DOM中使用常规锚标记来实现内部链接,以便为用户提供更好的体验。
- URL结构
基于JavaScript的网站用于在URL中包含片段标识符,
正确的URL也称为SEO友好的URL,由简单的文本组成,非专家用户可以轻松理解。
考虑使用pushState()进行无限滚动,以便每次用户访问页面的新部分时URL都会更新。在完美的场景中,用户可以刷新页面并保持完全相同的位置。
此外,探索SEO和URL的最佳实践,并开始使用它们来改善用户体验。
4.测试您的网站
百度能够探索和理解许多形式的JavaScript,尽管其中一些可能比其他形式存在更多困难。
但是,预测可能的错误和问题并避免它们仍然更好,那么为什么不进行测试呢?
按照以下两个基本步骤来检测可能的破裂:
检查您的网页内容是否出现在DOM中。
测试一些页面以确保百度能够为您的内容编制索引。
了解百度是否能够在robots.txt中查看您的内容和JavaScript以及正确分析它至关重要。因此,请考虑手动检查您的内容元素并使用百度恢复它们以查看内容是否显示。
您还可以使用一些将JavaScript考虑在内的抓取工具。
- HTML快照
这是一个长篇故事和热门话题。
首先,我们来看看HTML快照是什么。
快照包含完整分析,解释和呈现后的页面内容。HTML快照的角色是可解释的,无需执行JavaScript代码。
您需要知道的是,百度仍然支持HTML快照,尽管它已经声明这是一个要避免的元素。
在某些情况下,HTML快照可能是必需的,因此您至少应该熟悉它们。
例如,如果搜索引擎无法检索您网站上的JavaScript,则可以为其提供HTML快照,这比根本没有索引内容更好。
在完美的世界中,网站将在服务器端使用某种类型的用户代理检测,并向蜘蛛和用户显示HTML快照。
您应该注意到百度正试图看到与用户完全相同的体验。因此,最好将HTML快照返回给搜索引擎蜘蛛。
6.网站延迟
当浏览器从接收到的HTML文档创建DOM时,它会按照HTML文档中提到的顺序加载大部分资源。
如果HTML文档顶部存在一个海量文件,浏览器将首先加载这个巨大的文件,所有其他信息只会在显着延迟之后出现。
百度“关键渲染路径”的关键思想是首先为用户加载基本信息。换句话说,为用户提供最重要的内容。
如果您的JavaScript文件或某些无用的资源阻止了页面加载时间,您可能会阻止渲染JavaScript,这称为感知延迟。
这意味着您的网页可能会更快显示,但JavaScript代码会降低它们的速度。
以下是解决此问题的2种解决方案:
在HTML中添加属性“async”以异步呈现JavaScript。
减少HTML文档中的JavaScript元素。
当您尝试改善这种情况时,请记住JavaScript的基本规则。
例如,脚本必须按特定顺序进行分类。如果某些脚本引用文件,则只能在加载引用的文件后使用它们。
您应该经常与IT团队保持联系,以确保修改不会破坏用户体验。
结论
搜索引擎不断发展,因此他们很有可能在未来更好,更快地解释您的JavaScript。
目前,请确保您可以使用合理的网站延迟浏览和获取现有内容。
排名第一. https://www.paimingdiyi.com/252.html 版权所有. 转载时必须以链接形式注明作者和原始出处及本声明。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云新版人脸识别基于JAVA签名校验使用示例教程
概述 阿里云会对每个访问的请求进行身份验证,所以无论使用 HTTP 还是 HTTPS 协议提交请求,都需要在请求中包含签名(Signature)信息。通过使用 Access Key ID 和 Access Key Secret 进行对称加密的方法来验证请求的发送者身份。阿里云提供了多种语言的 SDK 及第三方 SDK,可以免去您对签名算法进行编码的麻烦。您可以从这里了解更多阿里云 SDK 的信息,前面系列博客也结合各种语言的SDK进行了实现。本文以DetectFace API为示例,演示实际基于签名校验的实现。 操作步骤 1、pom.xml <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents
- 下一篇
SpringBoot基于数据库实现简单的分布式锁
本文介绍SpringBoot基于数据库实现简单的分布式锁。 1.简介 分布式锁的方式有很多种,通常方案有: 基于mysql数据库 基于redis 基于ZooKeeper 网上的实现方式有很多,本文主要介绍的是如果使用mysql实现简单的分布式锁,加锁流程如下图: 其实大致思想如下: 1.根据一个值来获取锁(也就是我这里的tag),如果当前不存在锁,那么在数据库插入一条记录,然后进行处理业务,当结束,释放锁(删除锁)。 2.如果存在锁,判断锁是否过期,如果过期则更新锁的有效期,然后继续处理业务,当结束时,释放锁。如果没有过期,那么获取锁失败,退出。 2.数据库设计 2.1 数据表介绍 数据库表是由JPA自动生成的,稍后会对实体进行介绍,内容如下: CREATE TABLE `lock_info` ( `id` bigint(20) NOT NULL,
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度