
做站点优化这些年,我们武荣网络碰到过不少自适应站点的细节问题,时间因子抓取异常就是很容易被忽略的一个。很多站长查后台发现,PC端搜索结果里文章能正常显示发布时间,移动端却始终不展示,去百度抓取诊断一看,移动端UA下蜘蛛根本没识别到时间因子。
不少人觉得奇怪,自适应站不是同一套页面吗,怎么还会两端不一样?其实问题大多出在前端的响应式处理上,看着是同一个页面,移动端的DOM可见性、元素结构悄悄变了,蜘蛛自然抓不到。
为什么同一套自适应页面,移动端抓不到时间因子?
别小看这个细节,出问题的原因基本都在前端处理上,很多都是为了移动端视觉简洁顺手改的,没考虑到蜘蛛的识别逻辑。
第一个最常见:移动端用CSS隐藏了时间元素。
很多前端做响应式适配的时候,觉得移动端屏幕小,发布时间不重要,就给时间标签加了隐藏属性,只在PC端显示。对用户来说确实看不到了,但百度蜘蛛抓取移动端页面时,会判定这个元素不可见,不会提取里面的时间内容,自然就识别不到时间因子。
我们上个月刚处理过一个客户的站就是这个问题,移动端时间藏了大半年自己都没发现,改完之后十来天,移动端搜索结果就陆续带上时间了。
第二个:时间内容完全靠JS动态生成。
不少用前端框架做的自适应站,发布时间是前端调用接口渲染出来的,页面静态源码里根本没有时间文本。虽然百度蜘蛛现在具备一定的JS解析能力,但移动端抓取的优先级和解析完整度和PC端有差异,很容易出现PC端能解析到、移动端没等JS执行完就结束抓取的情况,自然提取不到时间。
第三个:time标签用法不规范,或者嵌套层级过深。
有些站长知道要加time标签,但写法不对,比如datetime属性格式写错,或者把time标签藏在好几层类名复杂的div里面,甚至嵌套在其他无关标签里。百度提取时间因子有固定的规则,结构太混乱、格式不标准的话,很容易被过滤掉,移动端的识别容错率本身就更低一点。
第四个:PC和移动端做了两套时间DOM节点。
有的站点为了两端展示样式不一样,写了两个时间节点,PC端显示一个,移动端显示另一个。这种做法很容易出现其中一个节点没有加标准标签,或者内容不一致的情况,蜘蛛抓取时很容易判断混乱,干脆都不提取。
怎么排查和解决?按步骤来很简单
这个问题排查起来不难,不用猜,用官方工具一测就清楚。
先去百度资源平台找抓取诊断工具,UA选择移动端,抓取对应的页面,看返回的源码里,时间元素是不是存在、有没有被隐藏、是不是静态文本。如果抓取结果里看不到时间内容,那就是前端的问题,照着对应原因改就行。
具体优化可以照着这几点来:
首先,时间必须服务端静态输出,不要交给前端JS渲染。直接把时间文本写在HTML源码里,不管PC还是移动端,读取的都是同一个节点,从根源上避免解析问题。
其次,用标准的time标签标注,datetime属性写全标准格式,标签里的展示文本可以灵活调整,但属性值一定要规范。
第三,移动端不要隐藏时间元素。哪怕觉得占位置,也可以调小字号、改浅颜色,保持元素可见,不要用属性彻底隐藏。
最后,自适应站保持一套时间DOM,不要做两套节点分开控制。两端展示样式可以用CSS调整,但共用同一个HTML节点,保证信息一致。
很多站长觉得时间因子是小事,不影响排名就不在意。其实搜索结果里的发布时间,对用户点击率影响不小,尤其是有时效性的内容,带时间的结果明显更受信任。而且准确的时间因子也能帮助百度判断页面的新鲜度,对时效性收录和排名都有正向作用。
做SEO本来就是细节堆出来的,类似这种不起眼的小问题,一个个处理好了,整体效果自然就上来了。
上一篇:现在百度收录越来越难怎么办?