为什么说前后端分离不利于 SEO 了?

本贴最后更新于 2255 天前,其中的信息可能已经时异事殊

为什么说前后端分离不利于 SEO,分离之后又是通过那些方案解决 SEO 这种问题的呢?

  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 23 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    245 引用 • 1338 回帖
  • 后端
    44 引用 • 126 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9254 引用 • 42093 回帖 • 119 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • lizhongyue248 2 2 赞同

    我来说说我的理解吧。
    第一个问题,为什么不利于 seo。
    前后端分离之前,我们都是在服务端渲染好了 html 页面再传过来,数据都已经在后端渲染在页面上了,爬过来的页面都是拥有数据的,所以利于搜索引擎蜘蛛爬取。如果前后端分离,你一开始请求的页面可能并没有你的数据,然后通过你请求出来的页面向后端发送请求,获取到数据以后,动态加载显示到页面上,这个时候搜索引擎蜘蛛想要爬到数据,就要有执行 JavaScript 的能力(google 的好像已经有了)。举个例子,最常见的 ajax 请求,页面加载的时候,ajax 请求到数据,然后加载 dom 等,如果搜索引擎蜘蛛不执行 ajax,那么可能爬的页面就没有数据了,只是一个空页面。现在是大部分的搜索引擎都不具备执行 JavaScript 的能力的。
    第二个问题,如何解决?

    1. PreRender 方式:预先渲染好 HTML,并针对于爬虫返回特定的 HTML
    2. ssr 方式,比如 vue 的 sst 解决方案
    3. 一动一静方式:提供两套前端,针对爬虫使用静态,针对用户使用动态。不过比较麻烦,而且现在 google 的已经可以模拟用户访问了。
    1 回复
  • 问一下,如果页面原本需要 js 加载的地方,预写默认数据 必须 vue {{data}} ,给这个 data 默认值,加载以后,再覆盖默认值,再想办法让这个默认值 隐藏掉,能解决这个问题吗?只是好奇乱想到的

    1 回复
  • lizhongyue248 1 赞同

    我是这样理解你的意思的,提供了一套拥有默认值静态的页面,然后动态加载改变。搜索引擎爬到的也就是你的静态页面(默认值的),就和我说的第三种一动一静的方式类似了。

    但是对于 vue 设置默认值肯定是不能解决的,你将 vue 应用打包后查看他的 index.html 你会发现是个空页面,例如:

    <!DOCTYPE  html>
    <html  lang=en>
    <head\>
    <meta  charset=utf-8>
    <meta  http-equiv=X-UA-Compatible  content="IE=edge">
    <meta  name=viewport  content="width=device-width,initial-scale=1">
    <link  rel=icon  href=/favicon.ico>
    <title>help-teacher</title>
    <link  href=/js/about.6f585aad.js  rel=prefetch>
    <link  href=/css/app.c9c62653.css  rel=preload  as=style><link  href=/js/app.8741d55b.js  rel=preload  as\=script>
    <link  href=/js/chunk-vendors.c3474500.js  rel=preload  as=script>
    <link  href=/css/app.c9c62653.css  rel=stylesheet>
    </head>
    <body>
    <noscript>
    <strong>We're sorry but help-teacher doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div  id=app>
    </div>
    <script  src=/js/chunk-vendors.c3474500.js></script>
    <script  src=/js/app.8741d55b.js></script>
    </body>
    </html>
    

    所以即便你使用 vue{{data}} 设置默认值,他也是需要执行 js 加载的,这个时候爬虫爬到的也不过是上面那个空页面。对于 vue 而言设置默认值肯定是不能够解决的。

    1 回复
  • 好的,明白了

EvilCodes
我的世界,我的代码,我的逻辑。

推荐标签 标签

  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖 • 1 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 1 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 158 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 721 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 13 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖 • 2 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 650 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • Anytype
    3 引用 • 31 回帖 • 13 关注
  • 996
    13 引用 • 200 回帖 • 4 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 544 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 652 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 684 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 34 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 18 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 248 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 107 关注
  • Excel
    31 引用 • 28 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 175 关注
  • 安全

    安全永远都不是一个小问题。

    203 引用 • 816 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 72 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 649 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    28 引用 • 226 回帖 • 138 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 4 关注