有个页面,比较复杂,之前用 vue 写的,问题就是搜索引擎无法搜录这种客户端渲染的页面。
现在想的一个办法是,用服务端渲染出来页面内容,只有内容,没有排版和样式,然后客户端再用 vue 重新渲染为正确的页面。
不知道这样会不会被搜索引擎认为是用户看到的和搜索引擎看到的不一样而惩罚。
1
kop1989 2021-06-11 15:30:27 +08:00
不会,搜索引擎只负责收录。
否则动态页面都要被搜索引擎惩罚。 |
2
julyclyde 2021-06-11 15:55:37 +08:00
1 为什么要考虑搜索引擎怎么想
2 为什么要搞这么动态 |
3
waiaan 2021-06-11 16:03:49 +08:00
不是有 robot.txt 吗?
|
4
balabalaguguji OP @waiaan #3 你应该理解错了这个文件的用法,请看百度的解释:robots.txt 可以告诉百度您网站的哪些页面可以被抓取,哪些页面不可以被抓取。
|
5
Jblue 2021-06-11 16:17:56 +08:00
没有排版和样式谷歌排名也不会高啊,收录的意义是啥? vue 可以 SSR
|
6
shapl 2021-06-11 16:27:52 +08:00
改 nuxt 吧。
|
7
waiaan 2021-06-11 16:35:19 +08:00
@balabalaguguji
还真是,但你重新渲染后原来服务端渲染的内容就没了,不知道搜索引擎对这个是怎么处理的。 |
8
zjuster 2021-06-11 16:37:16 +08:00
搜索引擎最终都会作为结构化的信息文本来存储网页内容。
如果你的网页信息对 crawler 或者“用户”来看,其内容是不一样的,或者超出合理的经常变化,有被 spam 的可能。 Bing 的 cloaking 就是指这种“挂羊头卖狗肉”的情况。main content 是一个正常文本,但实际上用户访问这个“main content”巴掌大,其他全是无关或者 seo 内容。 |
9
vx2e 2021-06-11 18:27:09 +08:00
你看看花瓣网,用百度的 user agent 去访问试试。有些网站这么搞没事,有些就说不准了。
|
10
no1xsyzy 2021-06-11 22:03:37 +08:00
你考虑下用户开了 NoScript 的情况
不一致不是说动态的不一致,而是指请求结果不一致 对于 Google,我怀疑如果说装用户的动态结果和爬虫 UA 的静态结果一致(甚至可能只要词云基本一致)也不会惩罚,或者动态生成的内容会爬出最终结果,比如我曾经搜索到网易云的评论,而后我发现它的评论是动态请求获得的。 |
11
DeutschXP 2021-06-11 22:27:19 +08:00
至少 Google 收录应该应用类似 headless browser,所以不会抓取不到动态内容的。
在上古时期,2010 年之前,那时候一种流行的 SEO 方法,就是在页面底部堆上一堆关键词,开始用 display:none;,后来用背景色,再后来 google 就能识别这种作弊方法了,网页文本的位置,文字大小,显示效果,都会影响分数。 |
12
simonsww 2021-06-11 22:32:45 +08:00
这种其实问题不大,影响很小。
|
13
Kaciras 2021-06-11 22:44:22 +08:00
Vue 有 SSR 功能啊
|
14
westoy 2021-06-11 22:51:19 +08:00
我的建议是真要做就保留页面结构
你这个和黑链还有隐藏堆砌关键词作弊特征很像 小站没多少人工介入的机会, 没什么试错机会的 @DeutschXP 会, 但效果不好 google 以前搞过一套标准, 网站拿#!_escaped_fragment_吐数据给它, 结结实实坑了一波网站 后来 twiiter 、fb 之类的大站都老老实实第一次加载搞服务端渲染, 然后再通过 js 加载和渲染 不过现在大平台靠搜索引擎带流量的比例很低了, 这两年开始都逐渐砍掉服务端渲染了 |
15
xieqiqiang00 2021-06-11 23:55:13 +08:00
谷歌支持 SPA 应用的收录的,会运算好页面再爬内容,不需要专门做 SSR,其他搜索引擎不清楚
|
16
ChefIsAwesome 2021-06-12 01:07:11 +08:00
谷歌推荐的是这个服务器渲染的工具: https://developers.google.com/search/blog/2019/01/dynamic-rendering-with-rendertron
我前两年用过,收录很好,没问题。 谷歌是支持爬 js 页面。但是对同一个页面它会采集好几次。第一次采集时,只会采集 html 。第二次采集什么时候进行你也不知道,这时候收录就有问题了。 |
17
Rocketer 2021-06-12 07:14:29 +08:00 via iPhone
不用那么复杂,把内容放到 noscript 里就可以。
首次请求一个 URL 给它把内容放到 noscript 里,以后就是 SPA 了 |
18
opengps 2021-06-12 10:14:13 +08:00
我理解不会处罚,毕竟这确实是原始内容,而不是虚假内容
|
19
nashaofu 2021-06-12 11:08:54 +08:00 via Android
可针对搜索引擎返回服务端渲染内容,正常用户还是使用客户端渲染,例如用 ua 区分
|
20
balabalaguguji OP @xieqiqiang00 #15 谷歌也不支持的,只有同步 js 可以支持
|
21
balabalaguguji OP @nashaofu #19 我现在就是这么做的,用 prerender 。不过这种方式响应太慢了,响应慢也会有影响。
|
22
balabalaguguji OP @ChefIsAwesome #16 这个跟 prerender 差不多,我现在正在用这个,速度有些慢,可能要 5s 一个页面,不知道你说的这个快不快。
|
23
alexkkaa 2021-06-13 10:27:58 +08:00 via Android
这个是根据你的质量决定的,虽然说检索的是文本, 但是谷歌在抓取前会根据你的网页的排版和内容决定抓取频率和排名的。
|