前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用Meta申明来做百度、谷歌、雅虎、微软等搜索的开放适配

利用Meta申明来做百度、谷歌、雅虎、微软等搜索的开放适配

作者头像
张戈
发布于 2018-03-26 06:00:00
发布于 2018-03-26 06:00:00
1.3K00
代码可运行
举报
文章被收录于专栏:张戈的专栏张戈的专栏
运行总次数:0
代码可运行

前段时间分享过利用 Meta 申明来做百度开放适配,前几天在解决 sitemap 报错问题时,看到了谷歌、雅虎及微软等搜索引擎开放适配方法,感觉有点意思,就折腾了下代码,现在来分享下。虽然她被墙了,但是我们应该怀着一颗乐观向上的心,随时迎接谷姐归来。。。

一、谷歌开放适配规则

对应 URL 举例:

pc:http://zhangge.net/

移动:http://m.zhangge.net

meta 申明方法:

a)pc 页面添加 meta:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link href=http://m.zhangge.net" rel="alternate" media="only screen and (max-width: 640px)" />

注意:640px,这里指移动设备最大宽度,只是谷歌一个举例,为了最大化适配效果,这里可以填写 9999px,张戈博客的主界面宽度为 980px,所以选择了 1000px,即告诉谷歌,当屏幕宽度小于 1000px 的将展示移动主题。

b)而在移动版网页上,所需的注释应为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link href="http://zhangge.net" rel="canonical" />

c)URL 级别 sitemap:详见:https://developers.google.com/webmasters/smartphone-sites/details?hl=zh-cn#0-bdhome-1-33534-1d18d5141e8cb800a4977d54d80686cb

二、做好开放适配映射 sitemap

a)这个 sitemap 与以往的 sitemap.xml 文件格式不同,请严格遵循百度、谷歌官方指南操作

b)给百度、谷歌分别单独做一个映射 sitemap,不要做在一起(做在一起搜索引擎其实也可以识别,但是为保证效果还是分开的好)

c)单独给你的移动端网站建立一个 sitemap.xml 文件,并做好 ping 机制。

Ps:以上可参考之前张戈博客发布的相关文章:

移动 SEO 分享:php 自动提交复合型 Sitemap 到百度搜索 移动搜索 SEO 分享:PHP 自动生成百度开放适配及 360 移动适配专用的 Sitemap 文件 移动搜索 SEO 分享:利用 Meta 声明来做百度开放适配

三、注意事项

1、将移动用户跳转至移动端网站,这个操作要过滤掉蜘蛛,从服务器端仅判断用户,避免影响蜘蛛抓取。

Ps:用张戈博客之前的方法就可以避免:完美实现移动主题在 360 网站卫士缓存全开情况下的切换

2、移动端页面去除强 PC 特征,这个不要直接把 PC 端页面结构全部搬到移动端,要注重用户体验,改删减的就删减。

3、移动端网页的收录用 site 是查询不到的,尤其是百度。只看百度后台的适配进度、和 GA 的流量即可。

Ps:另一种查看效果的方法是在手机百度 site 电脑端域名,可以出现如下结果:

而直接 site 移动端域名则如图提示找不到(具体可以到手机端 site 一下张戈博客域名:zhangge.net)

4、移动端网页的权重是继承 PC 端的

四、张戈的做法

理论的东西看起来总是迷糊,张戈就分享一下实际的 php 动态 meta 申明代码吧!

由于每个页面都是一 一对应关系,而 wordpress 一般都是共用一个 header.php,所以我们需要在 header 里面加上打印当前页面对应的 meta 信息的语句,比如:

以下代码添加到 PC 主题的 header 中,就只会在文章页面打印对应的谷歌 meta 申明:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php wp_reset_query();if ( is_single()){ ?>
<!--文章页面谷歌meta适配申明-->
<link href="http://m.zhangge.net/<?php the_ID(); ?>.html" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>

然后移动主题的 header 则对应添加如下代码即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php wp_reset_query();if ( is_single()){ ?>
<link href="http://zhangge.net/<?php the_ID(); ?>.html" rel="canonical" />
<?php } ?>

以上则为一个完整的文章页面的谷歌 meta 开放适配!

依葫芦画瓢,可以得出首页、文章页、单页面及分类页的完整 meta 适配代码:

PC 主题添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--首页meta适配申明-->
<?php wp_reset_query();if ( is_home()){ ?>
<link href="http://m.zhangge.net/" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--文章页面谷歌meta适配申明-->
<?php wp_reset_query();if ( is_single()){ ?>
<link href="http://m.zhangge.net/<?php the_ID(); ?>.html" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--单页面谷歌meta适配申明-->
<?php wp_reset_query();if ( is_page()){ ?>
<link href="http://m.zhangge.net/<?php echo the_slug(); ?>" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--分类页面谷歌meta适配申明-->
<?php wp_reset_query();if ( is_category()){ ?>
<link href="http://m.zhangge.net/<?php $catArray = get_the_category();
    $cat=$catArray[array_rand($catArray,1)];
    $cat_parent = get_category($catArray[0]->category_parent);
    if (!empty($cat_parent->slug)) {
        echo $cat_parent->slug."/";
    }
    echo $cat->category_nicename;?>" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>

移动主题添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--首页-->
<?php wp_reset_query();if ( is_home()){ ?>
<link href="http://zhangge.net/" rel="canonical" />
<?php } ?>
<!--文章页-->
<?php wp_reset_query();if ( is_single()){ ?>
<link href="http://zhangge.net/<?php the_ID(); ?>.html" rel="canonical" />
<?php } ?>
<!--单页面-->
<?php wp_reset_query();if ( is_page()){ ?>
<link href="http://zhangge.net/<?php echo the_slug(); ?>" rel="canonical" />
<?php } ?>
<!--分类页-->
<?php wp_reset_query();if ( is_category()){ ?>
<link href="http://zhangge.net/<?php $catArray = get_the_category();
    $cat=$catArray[array_rand($catArray,1)];
    $cat_parent = get_category($catArray[0]->category_parent);
    if (!empty($cat_parent->slug)) {
        echo $cat_parent->slug."/";
    }
    echo $cat->category_nicename;?>" rel="canonical" />
<?php } ?>

当然,我们还有百度开放适配,只要结合以前张戈分享过的《移动搜索 SEO 分享:利用 Meta 声明来做百度开放适配》的做法,那么就可以同时做百度和谷歌的开放适配了,完整代码如下:

PC 主题添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--首页百度和谷歌meta适配申明-->
<?php wp_reset_query();if ( is_home()){ ?>
<meta name="mobile-agent" content="format=xhtml;url=http://m.zhangge.net/" />
<link href="http://m.zhangge.net/" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--文章页面百度和谷歌meta适配申明-->
<?php wp_reset_query();if ( is_single()){ ?>
<meta name="mobile-agent" content="format=xhtml;url=http://m.zhangge.net/<?php the_ID(); ?>.html" />
<link href="http://m.zhangge.net/<?php the_ID(); ?>.html" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--单页面百度和谷歌meta适配申明-->
<?php wp_reset_query();if ( is_page()){ ?>
<meta name="mobile-agent" content="format=xhtml;url=http://m.zhangge.net/<?php echo the_slug(); ?>" />
<link href="http://m.zhangge.net/<?php echo the_slug(); ?>" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--分类页面百度和谷歌meta适配申明-->
<?php wp_reset_query();if ( is_category()){ ?>
<meta name="mobile-agent" content="format=xhtml;url=http://m.zhangge.net/<?php $catArray = get_the_category();
    $cat=$catArray[array_rand($catArray,1)];
    $cat_parent = get_category($catArray[0]->category_parent);
    if (!empty($cat_parent->slug)) {
        echo $cat_parent->slug."/";
    }
    echo $cat->category_nicename;?>" />
<link href="http://m.zhangge.net/<?php $catArray = get_the_category();
    $cat=$catArray[array_rand($catArray,1)];
    $cat_parent = get_category($catArray[0]->category_parent);
    if (!empty($cat_parent->slug)) {
        echo $cat_parent->slug."/";
    }
    echo $cat->category_nicename;?>" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>

移动端主题:由于百度并未提供移动端开放适配对应的 meta,所以移动端加上谷歌的 meta 申明即可(上面已提供)。

本文代码中的分类和单页面 url 需要新增一个 function 函数,具体请参考:《完美实现移动主题在 360 网站卫士缓存全开情况下的切换一文中的第三步

如果你和张戈一样用的是二级域名移动站,那么这个 Meta 代码还可以继续添加|“结合 js 判断 UA 的地址的跳转代码”,可谓一举多得!篇幅有限,张戈就直接贴上自己的实际使用代码,供有心人参考使用:

百度、谷歌、雅虎、微软开放适配及手机端 UA 判断跳转代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--加载UA判断JS-->
<script src="<?php bloginfo('template_directory'); ?>/js/uaredirect.js" type="text/javascript"></script>
<!--首页移动站跳转及meta适配申明-->
<?php wp_reset_query();if ( is_home()){ ?>
<script type="text/javascript">uaredirect("http://m.zhangge.net/");</script>
<meta name="mobile-agent" content="format=xhtml;url=http://m.zhangge.net/" />
<link href="http://m.zhangge.net/" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--文章页面移动站跳转及meta适配申明-->
<?php wp_reset_query();if ( is_single()){ ?>
<script type="text/javascript">uaredirect("http://m.zhangge.net/<?php the_ID(); ?>.html");</script>
<meta name="mobile-agent" content="format=xhtml;url=http://m.zhangge.net/<?php the_ID(); ?>.html" />
<link href="http://m.zhangge.net/<?php the_ID(); ?>.html" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--单页面移动站跳转及meta适配申明-->
<?php wp_reset_query();if ( is_page()){ ?>
<script type="text/javascript">uaredirect("http://m.zhangge.net/<?php echo the_slug(); ?>");</script>
<meta name="mobile-agent" content="format=xhtml;url=http://m.zhangge.net/<?php echo the_slug(); ?>" />
<link href="http://m.zhangge.net/<?php echo the_slug(); ?>" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>
<!--分类页面移动站跳转及meta适配申明-->
<?php wp_reset_query();if ( is_category()){ ?>
<script type="text/javascript">uaredirect("http://m.zhangge.net/<?php $catArray = get_the_category();
    $cat=$catArray[array_rand($catArray,1)];
    $cat_parent = get_category($catArray[0]->category_parent);
    if (!empty($cat_parent->slug)) {
        echo $cat_parent->slug."/";
    }
    echo $cat->category_nicename;?>");
</script>
<meta name="mobile-agent" content="format=xhtml;url=http://m.zhangge.net/<?php $catArray = get_the_category();
    $cat=$catArray[array_rand($catArray,1)];
    $cat_parent = get_category($catArray[0]->category_parent);
    if (!empty($cat_parent->slug)) {
        echo $cat_parent->slug."/";
    }
    echo $cat->category_nicename;?>" />
<link href="http://m.zhangge.net/<?php $catArray = get_the_category();
    $cat=$catArray[array_rand($catArray,1)];
    $cat_parent = get_category($catArray[0]->category_parent);
    if (!empty($cat_parent->slug)) {
        echo $cat_parent->slug."/";
    }
    echo $cat->category_nicename;?>" rel="alternate" media="only screen and (max-width: 1000px)" />
<?php } ?>

Ps:如果是知更鸟主题,首页和其他页的 header 是分开的,以上代码的实际使用也请分开插入。

添加后,可以到首页、文章页、单页面及分类页查看源代码即可查看到如图对应 meta 标注:

 每种类型的页面仅出现对应的 meta 标注,则为成功!

以上关于谷歌开发适配的方法参考自:《移动 SEO 方案及注意事项》,张戈博客提供的是动态 meta 标注方法。

写在最后:

至此,张戈博客关于移动适配和开放适配的研究就真正告一段落了!搜索引擎的覆盖面已经足够广了!

至于做 seo 有没有用?张戈可以肯定的告诉你,绝对是有用的!质疑的朋友可以随时查看张戈博客的收录和排名情况,虽然张戈并未对博客的关键词排名做优化,但是已收录的关键词一直在稳步上升,比如【张戈】这个关键词已经从第 4 页 27 名慢慢爬到了第一页第 4 名:

另外,关于博客的技术类文章最近总是出现无聊灌水以及不受欢迎的现象,张戈还是那句话,张戈一个 IT 屌丝,文笔确

实挺烂,因此只有当你有需求的时候你才会认真看,才会看得懂;所以,不喜勿看,不喜勿评,省得浪费您的宝贵时间,是不?看不懂的童鞋请转至留言板灌水即可~文章页真心不需要无畏的捧场,张戈博客的技术文章只写给有需要的人,谢谢了!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年06月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】2023年08月 Three.js专题-基本概念和使用
Three.js是一个用于创建和呈现3D图形的JavaScript库。它提供了一组易于使用的工具和API,使得开发人员可以轻松地在Web应用程序中创建复杂的3D场景和动画。Three.js可以与其他JavaScript库和框架一起使用,如jQuery和React等。它是一个开源项目,有一个活跃的社区在支持和扩展它。
愚公搬代码
2025/05/28
700
【愚公系列】2023年08月 Three.js专题-基本概念和使用
【愚公系列】2023年08月 Three.js专题-光源
光源是能够发出光的物体或设备,它能够发出光线,使我们看到周围的环境和物体。常见的光源包括太阳、灯泡、蜡烛、火把、手电筒等。根据发光方式不同,光源可以分为自发光源和非自发光源。自发光源是指能够自行发出光线的物体,如太阳等;而非自发光源是指需要外部能量刺激才能发出光线的物体,如灯泡、荧光棒等。
愚公搬代码
2025/05/28
290
【愚公系列】2023年08月 Three.js专题-光源
【愚公系列】2023年08月 Three.js专题-相机
相机是一种用来记录图像或视频的设备。现代相机通常由镜头、图像传感器、取景器、快门和图像处理器等部件组成。相机可以拍摄各种类型的照片,包括家庭照片、肖像照片、风景照片、动物照片和艺术照片等。现在,许多相机还具有额外的功能,例如视频录制、自动对焦和无线连接等。随着技术的发展,相机变得更加便携和高质量,已成为记录和分享生活的重要工具。
愚公搬代码
2025/05/28
560
【愚公系列】2023年08月 Three.js专题-相机
【愚公系列】2023年08月 Three.js专题-事件
事件是指发生在某个时间和地点的具体事情或活动,常常具有重要性和意义。事件可以是任何形式的事情,例如自然灾害、政治事件、文化活动、体育比赛、社会活动等等。人们通常把事件看作是引起公众广泛关注和讨论的重要现象,可以对社会、政治和文化生活产生深远的影响。
愚公搬代码
2025/05/28
450
【愚公系列】2023年08月 Three.js专题-事件
【愚公系列】2023年08月 Three.js专题-材质
材质是指制造物品所使用的原料或物质的种类,常见的材质包括金属、塑料、木材、玻璃、石头等。材质的选择取决于所制造物品的用途、设计和预算等因素。不同的材质有不同的特点和优缺点,如金属通常较为坚固,但较重且易锈蚀;塑料轻便且不易损坏,但耐久性较差。材质也会影响制造物品的外观和质感,如木材可以赋予物品自然美感,而玻璃则可以营造现代感。
愚公搬代码
2025/05/28
330
【愚公系列】2023年08月 Three.js专题-材质
【愚公系列】2023年08月 Three.js专题-相机控件
相机控件是一种可以在移动设备上使用的软件工具,它可以让开发者轻松地在应用程序中添加相机功能。相机控件可以提供诸如拍照、录像、闪光灯控制、对焦等功能,并允许开发人员对其进行自定义配置和调整。使用相机控件,开发者可以快速构建相机应用程序或将相机功能集成到现有应用程序中,从而为用户提供更好的拍照和录像体验。
愚公搬代码
2025/05/28
520
【愚公系列】2023年08月 Three.js专题-相机控件
这次来实现VR全景看房,三种前端实现方案
事情是这样的,前几天我接到一个外包工头的新需求,某品牌要搭建一个在线VR展厅,用户可以在手机上通过陀螺仪或者拖动来360度全景参观展厅,这个VR展厅里会有一些信息点,点击之后可以呈现更多信息(视频,图文等)...
秋风的笔记
2021/08/27
2.4K0
这次来实现VR全景看房,三种前端实现方案
情人节程序员用HTML网页表白【浪漫爱心旋转】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
1 网页简介:基于 HTML+CSS+JavaScript 制作七夕情人节表白网页、生日祝福、七夕告白、 求婚、浪漫爱情3D相册、炫酷代码 ,快来制作一款高端的表白网页送(他/她)浪漫的告白,制作修改简单,可自行更换背景音乐,文字和图片即可使用
IT司马青衫
2022/08/20
1.8K0
情人节程序员用HTML网页表白【浪漫爱心旋转】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
学习Three.js
window resize 需要设置camera的aspect 属性,设置renderer的尺寸
小刀c
2024/04/03
2010
css3D 全景图 - 含有定位的文字Label
(adsbygoogle = window.adsbygoogle || []).push({});
tianyawhl
2019/06/21
1.2K0
css3D 全景图 - 含有定位的文字Label
Three.js 手写跳一跳小游戏(下)
现在是 click 的时候就跳,实际上应该是 mousedown 的时候蓄力,mouseup 的时候跳。
神说要有光zxg
2023/08/28
5040
Three.js 手写跳一跳小游戏(下)
threejs 之 复制删除正方体 原
这是threejs官方的一个例子webgl_interactive_voxelpainter.html  查看效果 查看效果
tianyawhl
2019/05/31
1.2K0
基于 three.js 的 3D 粒子动效实现
粒子特效是为模拟现实中的水、火、雾、气等效果由各种三维软件开发的制作模块,原理是将无数的单个粒子组合使其呈现出固定形态,借由控制器、脚本来控制其整体或单个的运动,模拟出现真实的效果。three.js是用JavaScript编写的WebGL的第三方库,three.js提供了丰富的API帮助我们去实现3D动效,本文主要介绍如何使用three.js实现粒子过渡效果,以及基本的鼠标交互操作。(注:本文使用的关于three.js的API都是基于版本r98的。)
个推
2019/04/08
7.2K0
基于 three.js 的 3D 粒子动效实现
情人节程序员用HTML网页表白【冬季雪花生日礼物制作一个超浪漫的告白3D相册】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
1 网页简介:基于 HTML+CSS+JavaScript 制作七夕情人节表白网页、生日祝福、七夕告白、 求婚、浪漫爱情3D相册、炫酷代码 ,快来制作一款高端的表白网页送(他/她)浪漫的告白,制作修改简单,可自行更换背景音乐,文字和图片即可使用
IT司马青衫
2022/08/20
5070
情人节程序员用HTML网页表白【冬季雪花生日礼物制作一个超浪漫的告白3D相册】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
第1章 开启Threejs之旅(二)
为了方便实验,我们提供了2个简单的框架供你使用。你只要改变其中的一些代码或者参数,就能够得到实验的结果。第一个框架的效果是显示一个绿色的正方体,
webvrmodel模型网
2022/05/14
1.4K0
第1章 开启Threejs之旅(二)
用 Three.js 和 AudioContext 实现音乐频谱的 3D 可视化
最近听了一首很好听的歌《一路生花》,于是就想用 Three.js 做个音乐频谱的可视化,最终效果是这样的:
神说要有光zxg
2021/12/04
2.9K0
用 Three.js 和 AudioContext 实现音乐频谱的 3D 可视化
用 Three.js 画一个哆啦A梦的时光机
在 three.js 里以向右的方向为 x 轴,向上的方向为 y 轴,向前的方向为 z 轴:
神说要有光zxg
2023/08/28
5780
用 Three.js 画一个哆啦A梦的时光机
Three.js 手写跳一跳小游戏(上)
玩家从一个方块跳到下一个方块,如果没跳过去就算失败,跳过去了就会再出现下一个方块。
神说要有光zxg
2023/08/28
6670
Three.js 手写跳一跳小游戏(上)
【愚公系列】2022年09月 微信小程序-three.js绘制正方体
Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。
愚公搬代码
2022/09/28
1K0
【愚公系列】2022年09月 微信小程序-three.js绘制正方体
探究Three.js中模型移动与旋转的交互逻辑
Three.js作为一个功能强大的JavaScript 3D库,极大地简化了在网页上创建和展示3D图形的过程。它在游戏开发、产品展示、虚拟现实等众多领域都被广泛应用。通过Three.js,开发者能够轻松创建出复杂的三维场景和交互性强的3D应用,为用户带来沉浸式的体验。
Front_Yue
2025/03/16
3220
探究Three.js中模型移动与旋转的交互逻辑
推荐阅读
相关推荐
【愚公系列】2023年08月 Three.js专题-基本概念和使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验