分享一个后端仔,为了官网的 SEO,在“前端娱乐圈”被毒打两天的故事

2 天前
 Asimov01

兄弟们,是这样的,我原本是一个 CRUD 仔,最近做了个开源项目 PigeonPod 得到了不少朋友的喜欢。我就趁热打铁搞了个时髦的 Landing Page,结果在前端这块被结结实实地上了一课,想分享一下踩坑血泪史,希望能帮同样是后端背景的兄弟们省点时间。

故事是这样的:

  1. 开局: 我用的是典型的“稳重派”,技术栈直接选了生态最强的 React + Mantine UI。心想这套搞熟了就能一招鲜吃遍天,PigeonPod 本体的 Web App 就是这套技术栈做的,用得很舒服。我就同样把代码改吧改吧直接做了 Landing Page ,很快做完上线,看着 Lighthouse 的 performance 92; Best Practices 100; SEO 85 的评分,感觉稳得很。
  2. 转折: 一个月后,Google 上压根搜不到我的网站。这才被迫搞明白,我那套 pre-render 小伎俩在真爬虫面前就是个笑话,必须上真正的 SSG 。
  3. 第一劫:Next.js 。 都说它是 React 的“亲哥”,无缝迁移。结果呢?花了好几个小时迁过去,准备部署到 Cloudflare 的时候才发现,这玩意儿跟 Vercel 是深度绑定的,图片优化之类的核心功能离了 Vercel 就废了。感觉自己被“PUA”了。试了 OpenNext 、静态导出,全都是坑,又浪费了大半天。
  4. 第二劫:Astro 。 痛定思痛,决定换个思路。Astro 看起来简直是梦中情“框”:默认 SSG 、能用 React 组件、部署自由。结果呢?兴冲冲地把代码迁过去,一编译就报错。最后在官方文档里找到一句冰冷的 “Not a chance” —— Astro 和所有 CSS-in-JS 的 UI 库(比如我用的 Mantine )八字不合。

前前后后快两天时间,代码没写几行,算是把前端这些框架的哲学和门派给彻底搞懂了。

最后悟出几个道理:

把整个心路历程和技术上的思考都写成了文章,里面有更详细的踩坑细节和“暴论”,希望能帮大家看清前端这个“花花世界”。

博客原文链接在这儿: https://asimov.top/posts/react-vs-nextjs-vs-astro-for-backend-devs

3371 次点击
所在节点    分享创造
41 条回复
refear99
2 天前
直接 prerender ,保持 spa 的简单,还能兼顾 seo ,什么 ssr ssg 都扯淡
zhengfan2016
2 天前
直接用 jsp 吧,古法 SSR ,相信古人的智慧!
Asimov01
2 天前
@refear99 一开始用的就是 prerender ,但是效果确实非常有限,Google 似乎已经不太认这种简单的 prerender 出来的 “假 HTML 了”。
rev0
2 天前
说出来不怕你笑话,我用类似 jsp 的框架手搓的站,比 nuxt 站流量大十几倍
serco
2 天前
react-router v7 基本可以无痛
Asimov01
2 天前
@rev0 笑话?这是牛逼啊!方便分享一下站点地址吗?小弟学习学习
Asimov01
2 天前
@serco 卧槽?我用 v8 用错了? v7 怎么做 SSG 呢?能直接和 Astro 一起用吗?
zpvip
2 天前
Ruby on Rails, 框架鼻祖绝非浪得虚名, CRUD, SSR, SEO 手拿把掐. 真心推荐给 CTO 及 全栈工程师.

一个公司用什么语言和框架是由 CTO 决定的, CTO 用什么跟他在学校学的东西相关, 学校及培训机构当然是 Java, JS, C#, 所以 Ruby on Rails 可能不那么流行. 但用起来真舒服, 语法是真简洁, 心智负担是真轻, 开发是真快速, 测试是真省心. 现在有了 AI, 我现在 99% 的代码都是 AI 在写, 我来看 git diff 及审核自动测试, 我觉得最聪明的是 Claude-4.5-sonnet.

99% 的公司网站的瓶颈绝对不会在语言及框架上, 如果有 CTO, 建议试试, 可以少招程序员, 效率杠杠地.
renmu
2 天前
这种简单落地页直接原生+jquery
cvooc
2 天前
好文, 问一下我能转载到我博客上吗?我会标明来源(纯个人记录下,我博客基本没人访问 ORZ)
Asimov01
2 天前
@renmu 这样写出好看的页面对我来说很难😂 有设计基线的 ui 库是我的首选,不然我做出来就是一坨,还有主题切换,多语言什么的,用 jq 处理起来还是比较费劲的。我前几年就是 jq 一把梭,现在确实是有些梭不动了 😂
Asimov01
2 天前
@cvooc 欢迎转载!注明来源,放上原文链接就行
cvooc
2 天前
@Asimov01 #12 好的,感谢. 我已经转载并表明来源了.地址在我个人简介里. 我就不在你帖子里发链接了😁
Asimov01
2 天前
@cvooc 不客气!欢迎互链交个朋友~
Jesmora
2 天前
都是资本的力量,后面你发现同样的内容和涉及,nextjs 的自然流量比 nuxtjs\remixjs\solidstart\sveltekit 都要高
serco
2 天前
@Asimov01 哪里有 v8 ,最新不也才 v7 嘛? seo 的话 SSR ,SSG 不都可以嘛,看文档 https://reactrouter.com/start/framework/rendering
abc0123xyz
2 天前
直接手搓几个 index.html 丢 nginx 下
Asimov01
2 天前
@serco 不好意思,我看错了,我以为你说的 Mantine v7 😅
Asimov01
2 天前
@Jesmora 这是好事啊! vercel 付钱给我提升 SEO 权重,后续又多了一个选择 Next.js 的理由了 😂
refear99
2 天前
@Asimov01 能详细说一下吗,我现在用的 prerender 感觉效果还行,render 出来的就是真实的网站内容,目前收录十几个页面,sitemap 里还有 3000 个正在运行不知道能不能收录

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1168844

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX