tangly1024 / NotionNext

使用 NextJS + Notion API 实现的,支持多种部署方案的静态博客,无需服务器、零门槛搭建网站,为Notion和所有创作者设计。 (A static blog built with NextJS and Notion API, supporting multiple deployment options. No server required, zero threshold to set up a website. Designed for Notion and all creators.)
https://tangly1024.com
MIT License
7.48k stars 10.34k forks source link

[SEO相关] 部署页面没有纯静态渲染,是客户端JS渲染 #2574

Open kitety opened 2 months ago

kitety commented 2 months ago

描述bug 【此项必填】部署出来页面SEO数据不对,转换成了客户端渲染 vercel 部署出来结果也是,参考网址:https://www.kitety.com/

期望的正常结果 【此项必填】希望部署出来的页面源码中有很多的合法标签数据,但是好像现在的是客户端的渲染模式,不利于SEO

复现步骤 【此项必填】 1.Clone https://github.com/tangly1024/NotionNext main 分支,本地yarn build &&yarn start

  1. 检查页面和数据 image 3.检查源码信息 *发现div标签才七个,这个明显不够啊* image

环境

补充说明 【可选】与问题相关的其它说明 vercel 部署出来结果也是,参考网址:https://www.kitety.com/ image

kitety commented 2 months ago

与此同时,因为转换成了客户端渲染,很多验证,比如百度站长的meta标签等等也会收到影响

kitety commented 2 months ago

补充:如果是文章页面,本地跑的就是对的了。应该吧,毕竟div有100多个 image 但是我的网站,在vercel跑的还是不对 image

tangly1024 commented 2 months ago

你好,项目设计如此的。 如果需要改成页面纯div ,只能采取纯静态方案,这点可以在文档中找到。

补充:

这种客户端渲染机制不会影响到SEO,现代的搜索引擎都支持JS渲染器,会将页面脚本渲染成用户最终所见效果。

如果搜索引擎单纯只爬取

的内容作为索引,会被一些作弊手段利用,例如在
中写入正常内容,但是页面打开后用js脚本自动跳转到广告页面等真实意图页面,这样做会导致搜索引擎被大量的钓鱼网站和内容农场霸占。这是任何搜索引擎都不希望看到的。

代码状态 image

搜索文章效果, image

bing搜索

image

再补充

国内的搜索引擎由于技术和政治原因,需要收录站点会比较困难,例如百度搜狗等都不太行,基本搜索不到好的内容。

kitety commented 2 months ago

感谢大佬解答,确实Google能够抓取js,可能我的思维还是想着渲染出来html好点,那我采用静态部署实试试看。

kitety commented 2 months ago

但是nextjs14不是对请求的数据那些会有缓存的吗,如果不是强制刷新或者过期,那么是不会重新在服务端渲染的。这样也会节省资源的。 地址:https://nextjs.org/docs/app/building-your-application/caching

kitety commented 2 months ago

还有请问一下,为什么我本地yarn export导出的数据还是不对呢?还是没有渲染为html的那样,就像你的博客

image
kitety commented 2 months ago

@tangly1024 大佬 我用纯静态的,还是输出不对啊