去年五月份在百度搜索资源平台,搜索学院下更新了一篇名为《度搜索落地页时间因子规范》百的文章。声称落地页时间因子是百度搜索判断网站收录、展示、排序结果的重要参考依据。
思维浅析
————
百度表示当前的PC端及移动端网站落地页,存在页面时间因素标记模糊,无法确认信息的时效性,而造成用户浏览体验不佳。为了改善这种不友好的搜索浏览体验,我们(百度)将给予符合落地页时间因子要求、且时效性较高的网页更多的收录和展现机会,同时对不符合(时间因子规范)的网站减少展现机会。
也就是说符合百度搜索落地页时间因子规范的网页,将会得到更好的收录以及展现。通过对百度公示的时间因子规范的解读,明确其核心是站长需要对网页相关时间点进行标注,比如pubDate(发布时间)upDate(更新时间)lrDate(最新回复时间)三种时间因子,但并非所有类型的页面都必须同时提供这三种时间点。
01
—
官方时间因子规范字段说明
时间因子提交格式案例如上图所示,并注意以下三点:
1、此代码与熊掌号后台中页面改造所使用jsonld代码为同一套代码,如熊掌号页面改造中已注明时间,无需多次在页面中备注时间
2、若没有开通熊掌号,appid可选择“否”
3、移动站要求同时提交熊掌号appid,提升时间因子可信度;PC端暂时不要求提交熊掌号appid。
02
—
不同类型页面需提供的时间因子说明
首页、频道首页:提供该列表所有内容中的最新更新时间(update)。
列表页、专题页:必须提供该列表所有内容中的最新更新时间(update);页面发布时间(pubdate)为可选项。
文章详情页:必须提供内容的发布时间(pubdate)内容更新时间(update)为可选项。
问答、论坛:必须提供问题发布时间(pubdate)和第一个用户可看到的回答时间(update)以及最新回答时间(lrDate)。
03
—
织梦CMS落地页时间因子改造浅析
分别对织梦首页、栏目列表页、内容详情页模板文件<head></head>标签内添加时间因子提交代码:
织梦首页
<script type="application/ld+json">
{
"upDate":"{dede:arclist row='1' typeid='all' orderby='pubdate'}[field:pubdate function='strftime("%Y-%m-%dT%H:%M:%S",@me)' /] {/dede:arclist}"
}
</script>
织梦栏目页
<script type="application/ld+json">
{
"upDate":"{dede:arclist row='1' typeid='' orderby='pubdate'}[field:pubdate function='strftime("%Y-%m-%dT%H:%M:%S",@me)' /] {/dede:arclist}"
}
</script>
织梦内容详情页
<script type="application/ld+json">
{
"pubDate":"{dede:fieldname='pubdate'function='strftime("%Y-%m-%dT%H:%M:%S","@me")'/}",
"upDate":"{dede:field name='senddate' function='strftime("%Y-%m-%dT%H:%M:%S","@me")' /}"
}
</script>
注:以上代码仅给出织梦CMS各页面时间字段的调用代码,其余字段可根据实际情况选择填写。
1、@id字段以及images字段,应填写包含http(https)在内的完整URL。
2、title字段需填写对应页面模板<title></title>标签内的所有内容,根据规范中要求应填写当前页面的标题,而非织梦标签{dede:field.title/}调用的当前文档标题(文章标题)。
3、首页及列表页只提供当前页面的更新时间点,首页的更新时间调用全站(typeid='all')最新文档的更新时间,列表页调用当前栏目(typeid='')最新文档的更新时间。
4、内容详情页的发布时间pubdate及更新时间update分别用{dede:field name='pubdate'/}与{dede:field name='senddate'/}标签值,前者是录入时间(会随着内容更新而发生变化),后者是文档发布时间(不会随着文档更新发生变化)。细心的站长会发现这样调用出来的数据,文章更新时间会早于文章发布时间,这明显不合常理。
04
—
织梦标签pubdate时间点早于senddate的原因及修改方法
pubdate标签与senddate标签对应的值分别是archives数据表pubdate与senddate字段值,pubdate记录的是文章开始编辑时的时间点,而senddate记录的是文章编辑完成后点击发布的时间点,因此时间因子改造中会出现内容详情页的pubdate(更新)时间早于senddate(发布)时间。
解决方法:打开dede(网站后台文件目录)下的article_add.php文件并将
$senddate = time();
修改成
$senddate = GetMkTime($pubdate);
修改保存后进入织梦后台,重新发布一篇文章就会发现senddate和pubdate的时间点一致(符合常理),当对文章进行修改之后就会发现pubdate更新成了文档修改时间点,而senddate时间点并没有发生改变。
Tips:该方法仅对新发布文章有效,而之前已发布的文章内容pubdate时间点依然早于senddate时间点。SEO视界只想到了通过SQL语句批量更新dede_archives数据表中的pubdate字段值等于senddate字段值。涉及数据库务必提前做好备份,防止造成不必要的损失!如果你有更好的解决办法请留言分享!
UPDATE dede_archives SET pubdate = senddate WHERE pubdate < senddate
该SQL语句意为:dede_archives数据表中如果pubdate值小于senddate值(如果文章发布后,又被编辑更新过,则其更新时间肯定晚于发布时间,即update大于senddate值为正常),则更新pubdate值等于senddate值。
写在最后
————
至此织梦CMS搜索落地页时间因子改造完成,对于织梦程序新搭建的网站,完成article_add.php文件的修改后就可以了。但运营(有内容更新发布)一定时间后进行落地页时间因子改造,则需要对pubdate时间点早于senddate时间点进行调整。如果是对织梦程序以及网站建设知识不够了解的个人站长,则根据落地页时间因子规范,仅注明内容详情页发布时间(pubdate)这一时间点即可,不需要添加更新时间(update),这就避免了更新时间早于发布时间的问题。
同样是做SEO,对于SEO思维和实操,不同的SEOer都有自己的见解与心得,欢迎每一位喜欢SEO的朋友留言交流!!!