网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

百度自动推送代码进化版 头条JS自动推送 结构化和时间因子代码

GG网络技术分享 2025-03-18 16:18 0


百度站长平台提供链接索引的自动提交 JS 代码脚本。用百度自己的话讲:JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用。安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度。

今天IT粉丝网分享的这个自动推送 JS 代码 进化版来自百度站长学院

先来看看百度站长默认的自动推送 js 代码是这样的:

<script>

(function(){

var bp = document.createElement('script');

var curProtocol = window.location.protocol.split(':')[0];

if (curProtocol === 'https') {

bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';

}

else {

bp.src = 'http://push.zhanzhang.baidu.com/push.js';

}

var s = document.getElementsByTagName("script")[0];

s.parentNode.insertBefore(bp, s);

})();

</script>

只要把这段代码放入你的每个页面中,每当用户访问这些页面时,就会通过这段脚本从百度下载一个1x1的gif,同时记录页面此时此刻的URL地址,然后推送给百度。

使用百度默认的代码有两个问题:

第一 这段脚本先后会调用两个百度资源,这造成了冗余,不利于页面加载速度。

第二 该脚本会提交目前URL,但是许多URL会是动态URL,会带各种参数。虽然百度爬虫也有自己的判断方法,但无疑这增加了其负担。

于是,为了解决这两个问题,笔者咨询了好友柴云翔同时是前端开发的大牛。在大牛的帮助下,我们有了下面这个改良版本。

百度站长平台提供链接索引的自动提交 JS 代码脚本。用百度自己的话讲:JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用。安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度。

今天IT粉丝网分享的这个自动推送 JS 代码 进化版来自百度站长学院

先来看看百度站长默认的自动推送 js 代码是这样的:

 <script>

(function() {

var bp = document.createElement('script');

var curProtocol = window.location.protocol.split(':')[0];

if (curProtocol === 'https') {

bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';

} else {

bp.src = 'http://push.zhanzhang.baidu.com/push.js';

}

var s = document.getElementsByTagName("script")[0];

s.parentNode.insertBefore(bp, s);

})();

</script>

只要把这段代码放入你的每个页面中,每当用户访问这些页面时,就会通过这段脚本从百度下载一个1x1的gif,同时记录页面此时此刻的URL地址,然后推送给百度。

使用百度默认的代码有两个问题:

第一 这段脚本先后会调用两个百度资源,这造成了冗余,不利于页面加载速度。

第二 该脚本会提交目前URL,但是许多URL会是动态URL,会带各种参数。虽然百度爬虫也有自己的判断方法,但无疑这增加了其负担。

于是,为了解决这两个问题,笔者咨询了好友柴云翔同时是前端开发的大牛。在大牛的帮助下,我们有了下面这个改良版本。

 

<script>

(function(){

var canonicalURL, curProtocol;

//Get the <link> tag

var x=document.getElementsByTagName("link");

//Find the last canonical URL

if(x.length > 0){

for (i=0;i<x.length;i++){

if(x[i].rel.toLowerCase() == 'canonical' && x[i].href){

canonicalURL=x[i].href;

}

}

}

//Get protocol

if (!canonicalURL){

curProtocol = window.location.protocol.split(':')[0];

}

else{

curProtocol = canonicalURL.split(':')[0];

}

//Get current URL if the canonical URL does not exist

if (!canonicalURL) canonicalURL = window.location.href;

//Assign script content. Replace current URL with the canonical URL

!function(){var e=/([http|https]:\/\/[a-zA-Z0-9\_\.]+\.baidu\.com)/gi,r=canonicalURL,t=document.referrer;if(!e.test(r)){var n=(String(curProtocol).toLowerCase() === 'https')?"https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif":"//api.share.baidu.com/s.gif";t?(n+="?r="+encodeURIComponent(document.referrer),r&&(n+="&l="+r)):r&&(n+="?l="+r);var i=new Image;i.src=n}}(window);})();

</script>

这个新脚本的作用是多了一步查看页面的canonical URL的步骤。我们知道canonical属性表示该页面纵有千种URL的花样,请搜索引擎只认准href中给出的URL值。这样一来就不会让搜索引擎为了同一个页面(或许已经索引了)多次检查你的推送页面具体内容。

这个新脚本的另一个更改是直接将上述两个js的内容拿了出来。由于这两个js中的代码其实是静态的,每次都去调用并不必要。另一方面,我们需要对r的值进行更改,将它更改为canonical URL的值,因此这样解决了我们上面的第二个问题。

IT粉丝网看到这个版本好处在于推送的链接是 canonical 标签属性里面的链接,对于网站链接有过改版的网站是友好的,不会重复推送链接,上面的代码适用于任何网站!

需要注意的是使用这个改进版,百度默认的推送代码不能变,如果默认的自动推送代码改变,这个也会失效!

这个新脚本的作用是多了一步查看页面的canonical URL的步骤。我们知道canonical属性表示该页面纵有千种URL的花样,请搜索引擎只认准href中给出的URL值。这样一来就不会让搜索引擎为了同一个页面(或许已经索引了)多次检查你的推送页面具体内容。

这个新脚本的另一个更改是直接将上述两个js的内容拿了出来。由于这两个js中的代码其实是静态的,每次都去调用并不必要。另一方面,我们需要对r的值进行更改,将它更改为canonical URL的值,因此这样解决了我们上面的第二个问题。

IT粉丝网看到这个版本好处在于推送的链接是 canonical 标签属性里面的链接,对于网站链接有过改版的网站是友好的,不会重复推送链接,上面的代码适用于任何网站!

需要注意的是使用这个改进版,百度默认的推送代码不能变,如果默认的自动推送代码改变,这个也会失效!

 

按以下步骤操作:

1、创建名为“baidu_js_push.php”的文件,文件内容是上述自动推送JS代码;

2、在每个PHP模板页文件中的 <body> 标记后面添加一行代码:

<?php include_once("baidu_js_push.php") ?>

还是应该直接防止代码在header和footer文件中:

header中:结构化 和 时间因子 代码:(wellcms-yantaiport.com df-msku主题)

<!--结构化数据标记!-->

<script type=application/ld+json>{

"@context": {

"@context": {

"images": {

"@id": "http://schema.org/image",

"@type": "@id",

"@container": "@list"

},

"title": "http://schema.org/headline",

"description": "http://schema.org/description",

"pubDate": "http://schema.org/DateTime"

}

},

"@id": "<?php echo $_thread['url'];?>",

"title": "<?php echo $header['title'];?>-<?php echo $conf['sitename'] ;?>",

"description": "<?php echo $header['description'];?>",

"pubDate": "<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>",

"upDate": "<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>"

}

</script>

<!--百度落地页时间因子改造代码-->

<script type="application/ld+json">

{

"@context":"https://ziyuan.baidu.com/contexts/cambrian.jsonld",

"@id":"<?php echo $_thread['url'];?>",

"title":"<?php echo $header['title'];?>-<?php echo $conf['sitename'] ;?>",

"description":"<?php echo $header['description'];?>",

"pubDate":"<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>",

"upDate":"<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>",

"data":{

"webPage":{

"headline":"<?php echo $header['title'];?>-<?php echo $conf['sitename'] ;?>",

"tag":["<?php echo $_tagname; ?>"],

"pcUrl":"<?php echo $_thread['url'];?>",

"wapUrl":"<?php echo $_thread['url'];?>",

"fromSrc":"<?php echo $conf['sitename'] ;?>",

"datePublished":"<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>"

}

}

}

</script>

<!--百度结束!-->

<meta property="og:locale" content="zh_CN" />

<meta property="og:site_name" content="<?php echo $conf['sitename'] ;?>" />

<meta property="og:type" content="article"/>

<meta property="og:title" content="<?php echo $header['title'];?>-<?php echo $conf['sitename'] ;?>"/>

<meta property="og:description" content="<?php echo $header['description'];?>"/>

<meta property="article:published_time" content="<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>+00:00" />

<meta property="article:modified_time" content="<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>+00:00" />

<meta property="article:tag" content="<?php echo $_tagname; ?>" />

<meta property="og:url" content="<?php echo $_thread['url'];?>"/>

<meta property="og:image" content="<?php echo $thread['icon_fmt'];?>"/>

<meta property="og:site_name" content="<?php echo $conf['sitename'] ;?>"/>

<meta property="og:release_date" content="<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>+00:00"/>

<!--头条时间因子!-->

<meta property="bytedance:published_time" content="<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>+01:00" />

<meta property="bytedance:lrDate_time" content="<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>+01:00" />

<meta property="bytedance:updated_time" content="<?php echo date('Y-m-dTH:i:s', $thread['create_date']);?>+01:00" />

<!--头条时间因子结束!-->

header中:结构化 和 时间因子 代码:(wordpress justnews主题)

<!--结构化数据标记!-->

<?php

// 获取当前文章内容

if (have_posts()) : while (have_posts()) : the_post();

// 检查是否有特色图像

if (has_post_thumbnail()) {

$og_image = get_the_post_thumbnail_url();

} else {

// 获取文章中的第一张图片

$post_content = get_the_content();

preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post_content, $matches);

if (isset($matches[1][0])) {

$og_image = $matches[1][0];

} else {

// 设置默认图片

$og_image = '/wp-content/uploads/2024/05/GG-logo.png';

}

}

endwhile; endif;

?>

<script type=application/ld+json>{

"@context": {

"@context": {

"images": {

"@id": "http://schema.org/image",

"@type": "@id",

"@container": "@list"

},

"title": "http://schema.org/headline",

"description": "http://schema.org/description",

"pubDate": "http://schema.org/DateTime"

}

},

"@id": "<?php echo get_permalink(); ?>",

"title": "<?php the_title();?>-<?php bloginfo('name'); ?>",

"images": ["<?php echo esc_url($og_image); ?>"],

"description": "<?php echo strip_tags(get_the_excerpt()); ?>",

"pubDate": "<?php echo get_post_time('Y-m-d\TH:i:s'); ?>",

"upDate": "<?php echo get_post_time('Y-m-d\TH:i:s'); ?>"

}

</script>

<!--百度落地页时间因子改造代码-->

<script type="application/ld+json">

{

"@context":"https://ziyuan.baidu.com/contexts/cambrian.jsonld",

"@id":"<?php echo get_permalink(); ?>",

"title":"<?php the_title();?>-<?php echo $site_name; ?>",

"images":["<?php echo esc_url($og_image); ?>"],

"description":"<?php echo strip_tags(get_the_excerpt()); ?>",

"pubDate":"<?php echo get_post_time('Y-m-d\TH:i:s'); ?>",

"upDate":"<?php echo get_post_time('Y-m-d\TH:i:s'); ?>",

"data":{

"webPage":{

"headline":"<?php the_title();?>-<?php bloginfo('name'); ?>",

"tag":["<?php echo wp_strip_all_tags( get_the_tag_list( '', ', ', '' ) ); ?>],

"pcUrl":"<?php echo get_permalink(); ?>",

"wapUrl":"<?php echo get_permalink(); ?>",

"fromSrc":"<?php bloginfo('name'); ?>",

"datePublished":"<?php echo get_post_time('Y-m-d\TH:i:s'); ?>"

}

}

}

</script>

<!--百度结束!-->

<meta property="og:locale" content="zh_CN" />

<meta property="og:site_name" content="<?php bloginfo('name'); ?>" />

<meta property="og:type" content="article"/>

<meta property="og:title" content="<?php the_title();?>-<?php bloginfo('name'); ?>"/>

<meta property="og:description" content="<?php echo strip_tags(get_the_excerpt()); ?>"/>

<meta property="article:published_time" content="<?php echo get_post_time('Y-m-d\TH:i:s'); ?>+00:00" />

<meta property="article:modified_time" content="<?php echo get_post_time('Y-m-d\TH:i:s'); ?>+00:00" />

<meta property="article:tag" content="<?php echo wp_strip_all_tags( get_the_tag_list( '', ', ', '' ) ); ?>" />

<meta property="og:url" content="<?php echo get_permalink(); ?>"/>

<meta property="og:image" content="<?php echo esc_url($og_image); ?>"/>

<meta property="og:site_name" content="<?php bloginfo('name'); ?>"/>

<meta property="og:release_date" content="<?php echo get_post_time('Y-m-d\TH:i:s'); ?>+00:00"/>

<!--头条时间因子!-->

<meta property="bytedance:published_time" content="<?php echo get_post_time('Y-m-d\TH:i:s'); ?>+01:00" />

<meta property="bytedance:lrDate_time" content="<?php echo get_post_time('Y-m-d\TH:i:s'); ?>+01:00" />

<meta property="bytedance:updated_time" content="<?php echo get_post_time('Y-m-d\TH:i:s'); ?>+01:00" />

<!--头条时间因子结束!-->

footer中:js推送

<!--头条js推送!-->

<script>

(function(){

var el = document.createElement("script");

el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?xxxxxx替换为该域名的值xxxxxx";

el.id = "ttzz";

var s = document.getElementsByTagName("script")[0];

s.parentNode.insertBefore(el, s);

})(window)

</script>

<!--百度JS推送-->

<script>

(function() {

var bp = document.createElement('script');

var curProtocol = window.location.protocol.split(':')[0];

if (curProtocol === 'https') {

bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';

} else {

bp.src = 'http://push.zhanzhang.baidu.com/push.js';

}

var s = document.getElementsByTagName("script")[0];

s.parentNode.insertBefore(bp, s);

})();

</script>

Zblog tpure主题 </head>前添加,不能放到全局的header,否则会出错,一定要放在内容页的single.php中:

<!--结构化数据标记!-->

<script type=application/ld+json>{

"@context": {

"@context": {

"images": {

"@id": "http://schema.org/image",

"@type": "@id",

"@container": "@list"

},

"title": "http://schema.org/headline",

"description": "http://schema.org/description",

"pubDate": "http://schema.org/DateTime"

}

},

"@id": "{$article.Url}",

"title": "{$name}",

"images": ["{if $article.Metas.article_image}{$article.Metas.article_image}{else}https://www.n305.com/zb_users/theme/tpure/style/images/n305logo.png{/if}"],

"description": "{strip_tags($article.Intro)}",

"pubDate": "{$article.Time('Y-m-dTH:i:s')}",

"upDate": "{$article.Time('Y-m-dTH:i:s')}"

}

</script>

<!--百度落地页时间因子改造代码-->

{php}

$tagList = '';

{/php}

{foreach $article.Tags as $tag}

{php}

$tagList .= $tag->Name . ', ';

{/php}

{/foreach}

{php}

$tagList = rtrim($tagList, ', ');

{/php}

<script type="application/ld+json">

{

"@context":"https://ziyuan.baidu.com/contexts/cambrian.jsonld",

"@id":"{$article.Url}",

"title":"{$name}",

"images":["{if $article.Metas.article_image}{$article.Metas.article_image}{else}https://www.n305.com/zb_users/theme/tpure/style/images/n305logo.png{/if}"],

"description":"{strip_tags($article.Intro)}",

"pubDate":"{$article.Time('Y-m-dTH:i:s')}",

"upDate":"{$article.Time('Y-m-dTH:i:s')}",

"data":{

"webPage":{

"headline":"{$article.Title}-{$name}",

"tag":["{$tagList}"],

"pcUrl":"{$article.Url}",

"wapUrl":"{$article.Url}",

"fromSrc":"{$name}",

"datePublished":"{$article.Time('Y-m-dTH:i:s')}"

}

}

}

</script>

<!--百度结束!-->

<meta property="og:locale" content="zh_CN" />

<meta property="og:site_name" content="{$name}" />

<meta property="og:type" content="article"/>

<meta property="og:title" content="{$article.Title}-{$name}"/>

<meta property="og:description" content="{strip_tags($article.Intro)}"/>

<meta property="article:published_time" content="{$article.Time('Y-m-dTH:i:s')}+00:00" />

<meta property="article:modified_time" content="{$article.Time('Y-m-dTH:i:s')}+00:00" />

<meta property="article:tag" content="{$tagList}" />

<meta property="og:url" content="{$article.Url}"/>

<meta property="og:image" content="{if $article.Metas.article_image}{$article.Metas.article_image}{else}https://www.n305.com/zb_users/theme/tpure/style/images/n305logo.png{/if}">

<meta property="og:site_name" content="{$name}"/>

<meta property="og:release_date" content="{$article.Time('Y-m-dTH:i:s')}+00:00"/>

<!--头条时间因子!-->

<meta property="bytedance:published_time" content="{$article.Time('Y-m-dTH:i:s')}+01:00" />

<meta property="bytedance:lrDate_time" content="{$article.Time('Y-m-dTH:i:s')}+01:00" />

<meta property="bytedance:updated_time" content="{$article.Time('Y-m-dTH:i:s')}+01:00" />

<!--头条时间因子结束!-->

标签: 结构化 结构

提交需求或反馈

Demand feedback