Products
GG网络技术分享 2025-03-18 16:18 1
百度站长平台提供链接索引的自动提交 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