spa 搜索引擎_网站seo-SEO的单页应用程序(SPA)生存指南
JavaScript库与JavaScript框架
解开SPA背后的技术最终将我们引向JavaScript库和框架的主题。
问一个开发人员“库和框架之间有什么区别”,你会得到很多有趣的答案。
你反复听到的一个最重要的区别是这样的:
您编写的代码调用库,而框架调用您编写的代码。
React和Angular都是SPA,但React在技术上是一个库,而Angular在技术上是一个框架。但是,您经常会听到人们将SPA技术称为“JavaScript框架”。
框架可以被认为是一种结构,就像预制房屋一样,它带有框架,干墙,管道和电线,所有你需要做的就是添加电器,窗户和覆盖物,地板,油漆等。
可以将库视为包含一组随时可用的预构建工具和功能的地方。您可以在代码中调用特定函数的库。
您可以看到,使用框架和/或库启动Web开发项目可以简化流程,而不是从头开始编写创建网站所需的所有代码。
单页应用程序的常见SEO问题
有很多关于Google在抓取和索引编制方面能够处理JavaScript的问题。
抓取和索引对排名至关重要。
Google在一个非常快速的过程中使用名为Googlebot的软件发现网页,这个过程通常称为“抓取”或“抓取”,在此过程中,它会下载找到的HTML文件,提取链接并同时访问它们,然后将下载的资源发送给索引器。
但是当谈到基于JavaScript的单页面应用程序网站时,这个过程会变得有点复杂。
这就像上面提到的那个过程,但是有一个延迟和额外的步骤,因为索引器的一部分必须通过解析和执行JavaScript来做一些繁重的工作,然后找到的新链接必须传递回爬行器以查看然后送回索引器; 你可以看到,由于JavaScript,效率较低。
SEO不仅仅是拥有“精彩内容”并且获得高质量的链接; 这也是为了让您的网页易于被谷歌等搜索引擎发现,并让他们通过内部链接了解哪些页面比其他页面更重要。
“传统的”基于HTML的网站更容易抓取和索引,并且通过扩展,更容易排名。Google可以轻松获取所有链接,并通过内部链接了解网页的重要性。
基于JavaScript的SPA网站让Google的生活变得更加困难,而且一些测试似乎表明,在依赖JavaScript进行索引时可能存在缺点。
谷歌显然愿意在这里做更多繁重的工作,而且在我看来,这表明他们会随着时间的推移而改进,而不是在未来向网站管理员宣布他们已经决定他们不想费心去做所需的额外工作。抓取并索引基于JavaScript的网站。
与发现链接的额外工作相关的另一个潜在的SEO问题是Google可能在评估这些页面的链接公平性方面存在问题。
很可能在时间上,至少一些流行使用的SPA框架将改进渲染过程,使Google更容易抓取和索引,甚至可能使其与“传统的”基于HTML的网站相提并论。
但与此同时,我们就在那里,那些测试过谷歌处理基于JavaScript的网站的能力的人已经证明了Google的能力不一致,而且我们仍然处在那些经常开发SPA的地方必须使用变通方法,例如使用prerender.io和Angular将完全呈现的页面提供给爬虫。
另一个解决方案是同构JavaScript,有时称为“通用JavaScript”,其中页面可以在服务器上生成并发送到浏览器,可以立即呈现和显示页面。这解决了SEO问题,因为Google不必在索引器中执行和呈现JavaScript。
无头Chrome是谷歌工程师最近提出的另一种选择,它也提到了另一个名为Preact的解决方案,该解决方案附带服务器端渲染。
创建格式正确的XML Sitemap并将其提交给Google Search Console 也是一个好主意。
现在,如果您是SEO帮助客户使用SPA启动或重新开发网站,那么似乎没有任何单一的解决方案或逐个数字的方法来解决您可能遇到的问题。
它归结为有效地传达所需的正确最终结果,并根据所部署的库或框架处理问题。
一些重要的单页应用程序资源
一些超级锐利的SEO和开发人员撰写了有关单页应用程序的有用文章,这里有一些我喜欢的资源,我认为你会发现有用的:
Tomasz Rudzki在这里写了一篇很棒的文章; 标题说明了一切:JavaScript SEO的终极指南
观看此视频由Google高级网站管理员趋势分析师John Mueller撰写 - 他提供了一个非常棒的单页应用程序概述以及Google如何对待它们
Justin Briggs非常熟悉搜索引擎优化和JavaScript,并编写了2篇你应该查看的内容:审计搜索引擎优化的SEO和JavaScript的搜索引擎优化的核心原则
Richard Baxter写了一段时间,但它仍然非常值得您花时间:AngularJS中的JavaScript框架SEO基础知识
Critchlow是否会分享这篇优秀文章:分裂测试JavaScript的早期结果
当您点击Barry Adams的JavaScript和SEO:最终资源列表时,请抓住您的帽子
如果你的时间有点短,这是一个很好的快速阅读:单页应用程序的SEO注意事项
我绝对建议您从Angular大学阅读这篇文章:Angular Single Page Applications(SPA):有什么好处?
这篇微软文章不适合SEO,但它是一个快速而有用的读物:在传统Web应用程序和单页应用程序(SPA)之间进行选择
这也是Johann Wagner对一些不同SPA类型的相对快速的阅读
最后,我强烈建议您抽出时间阅读本文,这是一个非常好的概述:单页应用程序:何时以及为什么要使用它们
最后的想法
单页应用程序正在迅速发展,Web技术领域也是如此。值得专业的SEO尽可能熟悉单页应用程序,还有加速移动页面,渐进式网络应用程序,内容管理系统,以及网站从头开始编码的技术。
我对情况的看法是,SPA和Google处理基于JavaScript的网站的能力将会加快,因为所涉及的利益相关者都知道SPA现在具有明确的SEO缺点。
完全有可能在一年左右的时间内,最受欢迎的SPA将附带内置的SEO解决方案,因为对SEO友好的基于JavaScript的网站的需求的认识正在增长。但是不能保证很快就会发生这种情况,所以我对今天的SEO的建议就是对这种技术趋势感到兴奋和拥抱。
spa 搜索引擎_网站seo-SEO的单页应用程序(SPA)生存指南相关推荐
- SPA (单页应用程序)
单页Web应用 编辑 单页Web应用(single page web application,SPA),就是只有一张Web页面的应用.单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程 ...
- jsp 构建单页应用_如何使用服务器端Blazor构建单页应用程序
jsp 构建单页应用 介绍 (Introduction) In this article, we will create a Single Page Application (SPA) using s ...
- razor页面跳转_如何在Blazor中使用Razor页面创建单页应用程序
razor页面跳转 In this article, we are going to create a Single Page Application (SPA) using Razor pages ...
- 使用Vanilla.js构建单页应用程序(SPA)网站
目录 项目 带有模块的组织代码 以可观察的方式应对变化 支持声明式数据绑定 将幻灯片(Slides)托管和加载为"页面" 使用路由器处理导航 带有CSS3动画的转换时间线 管理&q ...
- 即时低码数据库Web应用-ASP.NET Core 3.1单页应用(SPA)
目录 介绍 网格记录在编辑/添加上的持久性 用于创建单页应用程序(SPA)的步骤 在SQL Server Management Studio中创建数据库 打开Visual Studio Communi ...
- 低代码Web应用程序构造方法-ASP.NET Core 2.2单页应用程序(SPA)
目录 介绍 网格记录在编辑/添加上的持久性 以下步骤用于创建单页应用程序(SPA) 在SQL Server Management Studio中创建数据库 打开Visual Studio社区2019 ...
- 网站赞助打shang单页HTML源码
简介: 这是一款网站赞助打shang单页源码,支持3种支付打shang赞助,可以部署在自己的博客或者网站上面进行打shang,还有打shang名单公布!喜欢的可以自行下载! 网盘下载地址: http: ...
- 淘宝客静态单页_单页应用程序的Spring Boot静态Web资源处理
淘宝客静态单页 诸如gulp和grunt之类的Javascript构建工具确实让我大吃一惊,我看着这些工具的构建脚本之一,发现很难理解它,并且无法想象从头开始编写其中一个构建脚本. 这就是yeoman ...
- 带有Upida/Jeneva的ASP.NET MVC单页应用程序(前端/AngularJS)
目录 介绍 背景 基本结构 JS控制器 HTML视图 查看容器 结论 参考 下载源3.4 MB 在Codeplex上下载最新版本和更多示例 参见工作示例 介绍 在上一篇文章中,我演示了如何使用WebA ...
最新文章
- Mysql---Centos7软件安装
- matlab cuda的.cu文件应该放在那里_App Store限免推荐|日历和文件管理、无尽狂奔、Scalak等,共5款...
- photo如何制作长图(外送搞笑毒故事)
- 不再有神的概念,将所有存在称之为文明,这很有意思
- python fonttool_Python wx.Font方法代码示例
- SpringBoot_配置-@ConfigurationProperties与@Value区别
- SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统
- mysql 列连接_mysql – 将一个表中的多个列连接到另一个...
- 如何打造一支低效技术团队?
- 代码没写完,哪里有脸睡觉!17 张程序员壁纸推荐
- Vscode之搭建C++环境
- 探索哪个进程使磁盘I/O升高
- pytest-fixture
- 解决VMware虚拟机桥接模式无法上网
- java服务器后端框架_现在主流的java后端框架
- 大屏一体机!奥可视新品A5亮点浅析
- 10月最新720全景云系统,可生成小程序+带PC端+安装教程
- Excel最大值和最小值的提取问题
- 基于java汽车4S服务管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
- 分部积分法解决二重积分问题
热门文章
- Python个人网盘源码、云盘系统源程序,基于Django+Mysql
- 计算机与护理信息学,迎接信息时代的挑战——护理信息学的兴起与发展
- ‘冰封’合约背后的老牌劲敌 | 链安团队漏洞分析连载第二期 —— 拒绝服务漏洞
- matlab 图像尺寸 批量,matlab 图像批量修改图像大小
- 2021考研政治腿四错题、重点题汇总
- WEB前端程序员找工作跳槽简历该怎么写?
- NOI2004郁闷的出纳员题解
- win10 cortana搜索空白, 占用CPU, 官方powershell(唯一)解决办法
- Dubbo面试专题总结
- 票据 计算机 英语,银行常用英语:汇款汇票汇单用语