1145.cn 百度MIP适配实例
MIP,全称Mobile Instant Pages(移动端即时页面),是百度推出的一套移动端网页开放技术标准。网站移动端页面统计MIP改造,能实现页面缓存,从而达到移动网页加速效果。
百度官方已经明确表示,应用了MIP的移动网站,将在百度搜索引擎获得更高权重。
在杭州沙龙的现场盛况中,Zac大神对百度工程师提出了非常尖锐的问题,“百度MIP到底会不会影响排名”,现场沉寂几秒中后响起了雷鸣般的掌声,对此,百度工程师也明确的表示:“百度MIP会影响排名”。我想这一点是所有SEO从业者最想要听到的吧,这一次百度工程师表态很坚定,他表示:”普通网页是通过蜘蛛抓取速度来评判网页速度的,而有了MIP后,MIP本身就网站速度快的证明。“如果你想提高移动端的网站打开速度,那么在MIP技术还没有完全普及的时候抢占MIP先机,将会事半功倍。
目前网上能找到的MIP改造的实例非常少,所以将我们公司网站 1145企业信用(http://www.1145.cn) 的部分MIP改造拿出来跟大家分享,希望能给希望进行MIP改造的站长提供一些帮助。
此次进行MIP适配的是 1145企业信用的子站点:食品药品安全。HTML站点URL为 http://www.1145.cn/cfda/ ,MIP站URL规则为http://www.1145.cn/cfda/mip/ 。从Meta看,此站点为PC,Mobile自适应站。
<meta name="applicable-device" content="pc,mobile">
在html站点,加入以下代码,通知百度蜘蛛页面对应的mip页URL。
<link rel="miphtml" href="http://www.1145.cn/cfda/mip/">
在mip站点,加入一下代码与html站点对应:
<link rel="canonical" href="http://www.1145.cn/cfda/">
MIP站点的通用的html结构:
<!DOCTYPE html>
<html mip>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<link rel="stylesheet" type="text/css" href="https://mipcache.bdstatic.com/static/v1/mip.css">
<!--对应的非mip页面URL-->
<link rel="canonical" href="http://www.1145.cn/cfda/">
<title>食品药品安全数据 - 1145.cn</title>
<style mip-custom>
<!--CSS放到这里,mip标准不允许引入外部css-->
</style>
</head>
<body>
页面正文内容
<!--mip 运行环境,必须引入-->
<script src="https://mipcache.bdstatic.com/static/v1/mip.js"></script>
</body>
</html>
注意几个基本要点:
- 在<html>标签中增加mip标识
- 编码为 utf-8
- 添加meta-viewport,用于移动端展现
- 比如引入MIP运行环境,包括CSS,以及JS
- mip不允许引入除mip css以外的外部css,必须把css都写到页面<style mip-custom>内部
在页面正文内容中,和我们平时做网页模版没有什么区别。注意以下几点:
- 官方建议用<mip-link>标签代替原来的标签(目前可以保留^lt;a>标签)且href值必须是完整路径,不能用相对路径。
<a href="http://www.1145.cn/cfda/mip/category/10">国家食品安全监督抽检(合格产品)</a>
标签比如用<mip-img>标签代替,而且必须有</mip-img>关闭符。<mip-img>必须设置图片的width和height。详情:https://www.mipengine.org/doc/3-widget/2-inner-widget/img-widget.html
- div,p,span,table等基本HTML标签都可以直接使用。不要使用javascript,因为MIP不允许引用外部javascript,所以我们常用的jquery,bootstrap都不能用。 MIP页面的最终目的是加速,所以我们应该尽量使用最基本的html代码。
做好模版之后,可以在官网的MIP校验工具检测一下我们做的模版。https://www.mipengine.org/validator/validate

注意:MIP页面最终呈现给移动端用户并不是我们直接在浏览器打开的效果,因为用户访问的其实是从百度搜索结果点击过来的,是从百度mip缓存服务器展示您的页面,所以如果要预览您的页面,需要从 https://www.mipengine.org/validator/preview 输入你的mip的url,进行预览。除了你自己,基本不会有人直接访问你的mip的url。比如百度搜索关键词: 百度 mip,排在第一位的mipengine.org,如果在移动端点开结果,打开的其实是这个url: http://m.baidu.com/mip/c/s/www.mipengine.org/article/5-reasons-to-try-mip.html ,而不是mip页面的真实url http://www.mipengine.org/article/5-reasons-to-try-mip.html
所以用户最终看到的MIP页面的url规则是
http://m.baidu.com/mip/c/s/***************
因为MIP页面是从百度的缓存服务器读取展现给用户,所以速度非常快。如果你的MIP页面发成了修改,必须从百度站长平台后台,刷新你修改了的MIP页面。你可以把百度MIP想象成永不过期的CDN,必须手动刷新。
1145.cn 百度MIP适配实例的更多相关文章
- 百度MIP页规范详解 —— canonical标签
百度MIP的规范要求必须添加强制性标签canonical,不然MIP校验工具会报错: 强制性标签<link rel="/^(canonical)$/"> 缺失或错误 这 ...
- Webharvest网络爬虫应用总结,web-harvest 编写脚本 读取 百度 博客 实例
Webharvest网络爬虫应用总结 Web-Harvest是一个Java开源Web数据抽取工具.它能够收集指定的Web页面并从这些页面中提取有用的数据.其实现原理是,根据预先定义的配置文件用ht ...
- 给你的网站添加谷歌AMP、百度MIP、神马MIP链接自动提交功能
我们在做网站的时候,经常会听到别人说SEO优化,网站优化等等.但是我们经常听的云里雾里的,但是经过我们运营一段时间之后,我们慢慢的就会熟悉了,知道什么是SEO.SEO中文译名为搜索引擎优化,既然是叫搜 ...
- PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例
原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html&g ...
- selenium-java web自动化测试工具抓取百度搜索结果实例
selenium-java web自动化测试工具抓取百度搜索结果实例 这种方式抓百度的搜索关键字结果非常容易抓长尾关键词,根据热门关键词去抓更多内容可以用抓google,百度的这种内容容易给屏蔽,用这 ...
- 谷歌AMP和百度MIP是什么鬼?
首先我们来看定义: 谷歌AMP(Accelerated Mobile Pages,加速移动页面)是Google推出的一种为静态内容构建 web 页面,提供可靠和快速的渲染,加快页面加载的时间,特别是在 ...
- 利用PHP str_replace()函数替换符合百度MIP内容标准
了解过百度MIP的同学都知道(什么?你不知道什么是百度MIP?就是移动网页加速器鸭
- 百度地图api 实例 自动提示 并计算两地的行驶距离
百度地图api 实例 自动提示 并计算两地的行驶距离 <!DOCTYPE html> <html> <head> <meta http-equiv=" ...
- 百度MIP移动页面加速——不只是CDN
MIP是用CDN做加速的么?准确答案是:是,但不只是. MIP全称Mobile Instant Pages,移动网页加速器,是百度提出的页面加速解决方案.MIP从前端渲染和页面网络传输两方面进行优化, ...
随机推荐
- 【牛客网71E】 组一组(差分约束,拆位)
传送门 NowCoder Solution 考虑一下看到这种区间或与区间与的关系,拆一下位. 令\(s_i\)表示前缀和,则: 那么如果现在考虑到了第\(i\)为,有如下4种可能: \(opt=1\) ...
- 字符串拼接时使用StringBuffer还是StringBuilder?
StringBuffer.StringBuilder和String一样,也用来代表字符串.String类是不可变类,任何对String的改变都 会引发新的String对象的生成:StringBuffe ...
- 面试时遇到的题目。正则,replace()
function Fn(str){ this.str = str; } Fn.prototype.format = function(){ var arg = arguments; var dd = ...
- 从小白到使用antd+react+react-router+issue+es6搭建博客
概述 本身是前端小白,学过html,css,js的各种书,各种视屏,就是没有接触web开发的内容.偶然看见一个朋友用react搭建了一个博客,于是本着程序员无所不能的精神,也尝试着用react搭建博客 ...
- Redis简明教程
redis是什么: Redis is an open source, BSD licensed, advanced key-value store. It is often referred to a ...
- vue中子组件通过$parent操作父组件的参数或者方法
先看一个简单的demo: 父组件添加一个弹框,弹框的内容是另外导入的一个子组件: <Modal v-model="accountDetailsModal" class=&qu ...
- 关于springboot aop 俩次调用的问题 aop多次调用
由于我在springboot 启动类中 给我的切面类进行了赋值 即@Bean 然而我在切面类中加了@Component 导致 springboot 注入了俩个 bean 所以导致 aop 多次执行 ...
- 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(下)
写在前面 本篇文章是上一篇边缘化搭建 DotNet Core 2.1 自动化发布和部署(上)的后续操作,本文主要讲解如何开启Docker Remote API,开启Remote API后的权限安全问题 ...
- Docker启动出现"No space left on device" 或者 docker日志太多导致磁盘占满问题
机房有一台服务器上面部署了多个docker容器, 并且每个docker容器都往stderr中源源不断的输出日志,导致磁盘被占满了.Docker容器在启动/重启的时候会往/var/lib/docker中 ...
- SpringMVC教程4
SpringMVC教程3 一.数据回写 数据回写:在做数据更新的时候服务端查询的数据自动填充到表单中. 1.1默认方式 通过前面讲解的 Map Mode ModelMap绑定数据 @RequestMa ...