MIP实操指南

作者:鼎极网络发布日期:2019-11-15浏览次数:43

  “MIP (Mobile Instant Pages - 移动网页加速器),  是一套应用于移动网页的开放性技术标准。通过提供MIP-HTML规范、MIP-JS运行环境以及MIP-Cache页面缓存系统,实现移动网页加速。”本教程由MIP爱好者合力撰写,由百度工程师确认,会帮助你完整的搭建一个MIP站点。

  MIP是什么?

  MIP的定义

  MIP是Mobile Instant Pages的简称,也就是移动网页加速器,是一套应用于移动网页的开放性技术标准,使用  MIP无需等待加载,页面内容将以更友好的方式瞬时到达用户。其核心价值是提升了移动端渲染能力。

  

1.png

  (官网:https://www.mipengine.org/)

  MIP诞生的背景

  工信部2016年新发布的数据,移动互联网用户1月净增1942.1万户,同比增长11.8%,总数达9.8亿户。随着移动设备的性能不断提升、网络速度大幅提高,用户群体对移动网页等待的耐心在逐渐降低,更多的时候要求移动网页可以瞬间打开。

  以往研究数据表明网站打开速度对用户浏览、电商成单量、搜索引擎的搜索量等都有很大影响!

  如:  Facebook每慢500ms用户浏览下降3%,Amazon每增加100ms成单量下降1%,Google每增500ms搜索量下降25%等等;

  这种环境下,我们要考虑的问题,除了网站是否需要移动客户端外,还有如何程度的提高移动网站的用户体验。那么你的移动网页用户体验合格吗?打开的速度够快吗?内容够简洁突出吗?经常出现各种安全问题吗?

  万众瞩目下,百度推出了针对提高移动网页打开速度和用户体验的新标准规范,以及解决方案。

  

2.png

  MIP提升性能的奥秘

  通俗来讲,移动网站按照百度提供的网页标准规则进行修改,修改合格后,百度将你的网站放在百度服务器上面。你的移动网站在修改之后,不仅网页更加简洁规范,而且接入百度服务器之后网页的打开速度将非常之快,并且可以提升安全性能。

  MIP之所以可以达到这种效果主要归功于其组成的三部分:

  MIP HTML(页面标准主要包含Css、HTML代码、图片)——为了让移动网页更加简洁规范

  MIP JS (引用官方标准化JS文件)——提供了网页基础的JS需要

  MIP Cache(接入官方缓存服务器)——百度缓存服务器,加速环节重要的部分!

  

3.png

  MIP和CDN有什么区别

  从MIP性能表现上看,主要是体现在页面加载快,用户体验好等特点,所以很多人产生了疑问,MIP是不是等同于CDN,已经使用CDN还要不要改造成MIP?  接入MIP还要改,那么麻烦,那我直接用CDN多好?

  事实上他们还是有比较明显的区别,主要在五个方面:

  1、MIP要求站点必须按照 MIP标准进行修改或者重新制作,CDN只会站点提供节点加速服务,无需修改。

  2、MIP服务器基本上是在用百度移动端的快照缓存服务器。而CDN提供的节点是无法和百度服务器相媲美的。

  3、MIP地址使用是百度缓存服务器域名,可以提升一定安全性,而CDN还是自己的域名;

  4、MIP只针对移动页面进行加速,不影响PC端,而CDN则是可以支持不同用户端;

  5、MIP一项长久免费的开源计划,而大部分CDN是需要付费使用的。

  MIP HTML是为了更加规范移动网页而推出的网页标准,而不是单纯为了接入MIPCache服务器提出的标准。

  MIPCache部分确实相当于CDN的功能,但是这个MIPCache百度服务器数量是国内任何一家CDN节点数量上无法去相比的,而且还是免费提供给MIP站点的站长。

  百度蜘蛛对于移动站点的抓取,接入MIP Cache的MIP站点更加有优势,因为网页已经早已缓存到百度服务器。而这一点,更是CDN无法相比的。

  MIP改造难不难?

  通俗讲,MIP的改造,就是一些基础的HTML标签替换成MIP HTML标签,接入百度缓存服务器的过程。

  我看到有人在改MIP站点的时候,抱怨,好难,这个功能没有,那个组件没有。其实,MIP的旨意不是让你继续沿用过去网页的标准,而是为了提高网页的打开速度,通过MIP的新标准,去简化规范网页。

  所以说,根据MIP HTML标准修改原网站,或者根据MIP  HTML新建网站模版,是非常简单的。由于目前是MIP前期,建议大家采取新建MIP站点,并保留原移动站点的模式。

  加入MIP的必要性

  MIP能做什么

  MIP能帮助站长和网站开发者快速搭建移动端页面。

  MIP怎么加速?MIP从前端渲染和页面网络传输两方面进行优化,杜绝页面渲染中的阻塞问题,提升页面展现速度。

  移动站应该用MIP吗?这里有五个原因,告诉你MIP的好处:

  加速移动端页面,一切的基础

  为减少DNS解析,MIP-Cache将静态文件以相对路径储存在百度CDN中;为减少网络传输耗时,MIP-JS  控制静态资源的按需加载,MIP-Cache系统优先从CDN读取文件;为减少浏览器渲染重绘耗时,MIP-HTML  对<img>,<video>等造成浏览器重绘的标签进行了封装控制。

  根据2016年8月数据,页面MIP化之后,页面展现时间减少了30%-80%。如果您的页面只有简单交互,却引用了庞杂的前端代码库,那么尝试MIP之后速度能够得到显著提升。

  速度对于页面意味着什么呢?如果一个页面需要3秒来打开,用户就需要盯着白屏等待三秒,这很容易引起用户的不耐和放弃。也就是说,一个页面能在眨眼之间打开,意味着更少的用户放弃。所以说,对于页面来讲,速度是一切的基础。

  提升到达率和用户体验,更少的流失率

  正如上文提到,使用MIP规范之后页面的打开速度会大幅提高,减少用户的等待时间,减少用户放弃。

  试想一下,当全站的每个页面都能在1秒内打开,用户每次点击都会立马得到相应,那么就会提高用户体验和满意度。如果页面内容有趣,用户就会在各个页面间冲浪(Surf)。在日均UV(Unique  Visitor, 独立访客)不变的情况下,页面的PV(Page View)会有所增加。此时,用户消费了更多网页提供服务时,页面广告也会得到更多的曝光。

  百度搜索提权,的用户量

  众所周知,百度的自然结果是根据用户点击和页面质量排名的。在2015年年底,我们推出了《百度搜索Mobile  Friendly标准》(下文简称《MF标准》),在站长平台的说明中,《MF标准》也会作为页面排序的参考因素。

  在《MF标准》中,有页面加载速度体验一项。使用MIP规范,能够加快网页加载速度,使页面标准。

  开发简单,迁移成本低

  迁移已有页面到MIP并不是一件困难的事情。MIP-HTML组件和JS运行环境与前端代码语法相同,官网文档中有详细的步骤,我们也会陆续推出文字和视频教程。我们还为开发者提供了实时校验工具,帮助MIP用户开发出完全符合规范的页面。

  已有组件兼容性好,也可个性化定制新组件

  MIP-HTML  拥有不断完善的的组件库可以使用。图片预览,视频播放,分享组件均已上线。直接使用已有组件,能够代码质量和各个终端浏览器的兼容性。利用小快的方式达到交互效果。

  除此之外,MIP是一个开源的项目,提供了《扩展组件开发规范》,支持MIP用户自己开发个性化组件,交由MIP开发小组审核后即可上线使用。

  如何加入MIP

  什么网站适合加入MIP

  结合目前MIP官网技术文档和已有案例反馈,MIP已经可以完美支持资讯、图片、企业、小说、论坛等信息流类型的网站。复杂的页面暂不建议MIP改造,目前对资讯、图文类支持已较好,若功能较为复杂的建议自定义组件或等待MIP项目小组开发。

  

4.png

  抛开网站类型不谈,存在以下问题的网站更要加入MIP:

  1、网站加载速度慢,打开速度时间长

  影响网站加载速度的因素除了外在因素(服务器带宽、庞大的数据库)外,绝大多数是网站本身的问题,例如:冗余代码、用了大量js调用,网站图片太大、flash文件等。MIP的规则就是针对MIP-HTML规范、MIP-JS运行环境以及MIP-Cache页面缓存系统进行优化,实现移动网页加速。

  2、用户体验差,跳出率较高的网站

  网站弹出广告过多、内容质量差、加载速度慢都是影响用户体验差的因素,为了避免这些现象,MIP要求将所有的资源(广告、图片、音频和视频)标明尺寸。当资源真正加载时,所有资源大小可以被立即推断出并迅速用于计算页面布局,加载中的资源将无缝呈现,不必因为页面频繁更新布局而影响到用户的阅读体验。而且MIP提供与MIP  runtime兼容的封装好的组件来实现,严格控制外部资源的加载,来确保其高效性,开发者的任何自定义脚本,都需要用MIP的tag反馈给MIP,例如mip-ad、mip-iframe等,这些方式不会阻塞页面的layout和渲染。

  MIP改造难不难?

  通俗讲,MIP的改造,就是一些基础的HTML标签替换成MIP HTML标签,接入百度缓存服务器的过程。

  有人在改MIP站点的时候,抱怨,好难,这个功能没有,那个组件没有。其实,MIP的旨意不是让你继续沿用过去网页的标准,而是为了提高网页的打开速度,通过MIP的新标准,去简化规范网页。

  所以说,根据MIP HTML标准修改原网站,或者根据MIP  HTML新建网站模版,是非常简单的。由于目前是MIP前期,建议大家采取新建MIP站点,并保留原移动站点的模式。

  加入MIP的接入流程

  经过前面的内容介绍,相信你已经迫不及待想加入MIP生态了吧。如果你的网站在上述MIP支持的改造范围中,那么只需要4个步骤即可完成MIP网站改造:

  

5.png

  (1) 改造评估:

  评估自身网站情况是否适合改造MIP,如果支持则要选择一套改造方案;目前主要有两种方式,一是在原页面上进行改造,另外一种是新建一套MIP模板。

  原有页面修改方案:主要适用于拥有独立移动站的网站,优点是改造内容少,技术成本低,方便维护等优点 ;

  新建MIP页面方案:适用于目前所有网站的情况,具有独立好操作,改造干扰少,未知风险小等特点,美中不足的是因为是新的url,需要蜘蛛从新抓取,接入速度略慢;

  (2) 页面改造:

  确定改造方案后,,按照MIP官网内容要求进行代码改造。改造需具备一定的html知识,改造MIP教程请按照教程来,特别注意大小写,建议全局小写。如果初次接触MIP,可以先学习下《新手指南》,更详细请参考《如何用MIP的快速搭建移动页面》。

  

6.png

  (3) 工具校验:

  页面改造完成后,可以通过官方工具进行校验,工具会给出是否合格的提示;点击进入检验地址:https://www.mipengine.org/validator/preview

  

7.png

  (4)数据提交:

  校验合格后,通过站长平台的MIP工具,以主动推送的方式进行数据提交;

  MIP提交地址:http://zhanzhang.baidu.com/mip/index

  

8.png

  (5)线上生效:

  当MIP数据库收到站点提供的数据,会对数据进行抓取、收录、校验等一系列的步骤,后在线上生效,并且在快照上回有一个

  

9.png1.png

  

  MIP快速搭建移动页面通用篇

  如何快速完成MIP改造?网站可以选择直接将原先的移动站点直接改成MIP站,也可以单独再做一套MIP站点与移动站并存。

  从一个html页面的上下顺序一步步改造,只要按照本文章内的一步步来,即可完成MIP改造。

  1. Doctype改造

  1.1 打开你的模板或代码文件看行,将<! DOCTYPE ***>改为<!DOCTYPE html>

  2. <Html>标签改造

  2.1 完成步后,继续修改下一行代码,将: <html  xmlns="http://www.w3.org/1999/xhtml">或:<html> 改成:<html  mip>注意全部小写

  3. Head部分改造

  3.1 <head>标签必须是完全小写。

  3.2 页面的编码必须是utf-8,修改声明为:<meta charset="utf-8">

  3.3 页面中加入<meta name="viewport" content="width=device-width,  minimum-scale=1, initial-scale=1">

  3.4 页面中加入MIP专用样式文件< link rel="stylesheet" type="text/css"  href="https://mipcache.bdstatic.com/static/mipmain-v1.0.1.css" >

  3.5 这里需要告诉搜索引擎改页面对应的标准html页面地址,如果存在则标识<link rel="canonical"  href="H5/PC原页面">  其中href值修改成为与当前mip页面相对应的标准页面url地址。如果只有mip页面没有相对应的标准页面则标识为:<link  rel="standardhtml" href="MIP自身"> 其中的href值为当前页面地址。

  4. Body内改造

  4.1 首先<body>标签必须是小写的;

  4.2 加入MIP专用JS文件:<script  src="https://mipcache.bdstatic.com/static/mipmain-v1.0.2.js"></script>

  4.3 替换<img>, <style>, <frame>, <form>,<  input>, <textarea>, <select>,  <option>标签为对应MIP组件标签,具体见官网文档。

  4.4 引用MIP-JS 运行环境 <script src=  "https://mipcache.bdstatic.com/static/mipmain-v1.1.0.js"></script>放在页面尾部。

  5. 使用MIP Cache注意事项

  5.1 一般Cache图片、样式、脚本,做完上述4步后,修改资源地址为相对地址或合法地址(以校验工具为准);

  5.2 Cache的内容需要更新需要通过MIP数据提交中的更新数据接口,把更新的url链接推送过去,等待百度更新。

  6. 组件的使用

  6.1 除了上述这些需求外,一部分站点可能需要用到组件,官网文档包含了目前支持的所有组件,详见《组件概述》。

  6.2目前官网开发了很多通用性组件,并提供了使用示例,以百度统计组件为例:在百度统计中申请js统计代码,将其中的token值截取出来,如下图所示字符串:

  

10.png

  将字符串以<mip-stats-baidu  token="02890d4a309827eb62bc3335b2b28f7f"></mip-stats-baidu>的形式植入到页面中,并在页面中嵌入  <script  src="https://mipcache.bdstatic.com/static/v1.1/mip-stats-baidu.js"></script>

  以上步骤就可以将百度统计组件植入到MIP页面中了!

  6.3特定组件的使用:对于官网没有的组件,网站可以自主开发组件接入,具体方法可以参考《扩展组件开发规范》;


关键词:

代码优化

1、HTML源代码分析教程

1、<!--页面注解-->
  2、<html>
  3、<head>

  4、<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  5、<meta http-equiv=“Content-Language” content=zh-cn>
  6、<title>页面标题</title>

  7、<meta name="keywords" content="关键词">
  8、<meta name="description" content="网站描述">
  9、<link href="inc/css.css" type="text/css" rel="stylesheet">


  10、</head>
  11、<body>

  12、<div>
  13、<h1>页面内容标题</h1>
  14、<h2>页面相关性标题</h2>
  15、<h3>标题系列</h3>
  16、<h4>标题系列</h4>
  17、<h5>标题系列</h5>
  18、<h6>标题系列</h6>


  19、<img src="xxx.jpg" alt="图片说明">
  20、<a href="/" title="链接说明">锚文本</a>
  21、<strong>重点关键词强调</strong>
  22、<b>关键词强调</b><u>关键词强调</u><i>关键词强调</i>
  23、</div>


  25、<div>
  26、版权部分关键词强调
  27、</div>


  28、</body>
  29、</html>

 ********************************************************

  注:<body>..</body>标签区中的罗列,都是一些基础的HTML标签,这些标签出现的次序是可以变化的。

 1行的<!--页面注解-->

  这个标签是用来做HTML代码注解的,这种形式的注解在浏览器中是不会显示的,而搜索引擎可以读到。所以这个标签有的时候会成为作弊的一种形式,而这种原始的作弊方式、早被搜索引擎

 4行到第5行<!--meta标签--> 

  对于Meta标签来说他包含了很多参考、其中需了解“Content-Type”代表页面编码、“Content-Language”代表页面语言,这是一个很容易被SEO初学者忽悠的标签、一旦设置错误、可能影响搜索引擎对页面的抓取及收录。

 6行<title>页面标题</title>  重点了解

  页面标题对搜索引擎排名的优化是非常大的、而在SEO优化过程中、也是重点优化对像之一、尤其是百度对页面标题的评分很高、而标题的书写也直观重要、包括:标题是否完全匹配、是否包含与被包含关键词等

 7行<meta name="keywords" content="关键词">

  关键词标签对于现在的搜索引擎或SEO优化者来说价值越来越低了、以前搜索引擎对关键词标签是很看重了、由于黑帽的手法慢慢体现、一些SEO人员以堆积关键词标签来提升网站排名为目的,导致现在搜索引擎对关键词标签、可以说是忽悠判断,但是个人认为、虽然是被忽悠、但是首页的关键词还是可以手工处理下、至于内页可以忽悠。

 8行<meta name="description" content="网站描述">

  主要在搜索引擎结果中体现,与关键词标签一样、目前不太受搜索引擎看中、但描述标签与关键词标签是有区别的、关键词标签浏览器用户正面是无法看到,但是描述标签一旦被搜索引擎索引、是会体现在搜索引擎结果中、而这个结果是可以直接响影用户点击率、可以说一个好的描述可以为你网站增加很多点击及转化、提示:由于搜索引擎时刻在更新、算法及索引方法也不段在进步、或者说很人性化、所以搜索引擎会根据用户搜索“关键词”去抓取网站描述。所以个人建议、还需要注意首页描述及着陆页描述的书写、其它部分可以使用程序调用、

 13行<h1>页面内容标题</h1>

  H1标题、一个代码优化中重点标签,也是搜索引擎定位这个页面主题的依据,如果你的<h1>标签里没有出现你的页面关键字,那么这是一种很大的损失,这里的权重相对于其它的在<body>区的标签来说更加重要。在代码优化中、它的重要性仅次于<title>。所以,必需认真对待你的页面<h1>标签的优化,一般使用在文章页面来的文章标题优化。(H1+TITLE 可以说是SEO优化中的致命组合)


 14行到第18行<h2>页面相关性标题</h2>

  对比<h1>标签来说、H2标签重要程度相对来说就降底了,一般使用在长尾关键词及相关内容方面,而<h3>~<h6>这些标签,重要性是依次递减的,在一个页面的权重越来越低。

 19行<img src="xxx.jpg" alt="图片说明">

        我们知道搜索引擎是不可以抓取图片内容的、那么如何合理的告诉搜索引擎某张图片代表什么了,ALT标签就是告诉搜索引擎图片含义、让搜索引擎的理解图片内容。


 20行<a href="/" title="链接说明">锚文本</a>

        锚文本、我们称为关键词链接,关键词链接在SEO优化当中是一个非常重要优化对象之一,而锚文本链接又可以扩展,外部链接形式的锚文本及内部链接形式的锚文本。具体对SEO的作用是需要判断链接的形式不同而不同。

 21行<strong>重点关键词强调</strong>

        <strong>标签基实重要性仅次于<h1>,也是强调一类、包括:<b>、<u>、<i>等标签。而对于搜索引擎来说<strong>标签的影响要高说<b>、<u>、<i>等

 26行版权部分优化

        随着搜索引擎越来越强大、网页底部、版权部分也是SEO优化者需要优化的地方、一般来说底部文件对于程序来说都是全部调用、所以如果能在底部加上一个关键词链接指向网站首页、那么这种内部式全部投票也是一种对首页页面权重的提高。

  网站代码优化目的

  1、去掉网站多余的代码,以减少网站的大小,提高网站的加载速度和用户体验。

  2、网站代码优化是站长必须要掌握的基本技能,这关系到搜索引擎蜘蛛是否会对你的网站感兴趣,冗长无用的代码会让蜘蛛很难理解,增加蜘蛛抓取网站的难度。

3、同时,网页的精简还关系到网站的加载速度,对用户体验至关重要。

  网页代码优化的原因:

  (1) 可以减少网页的体积,加快网页的下载速度;

  (2) 提高蜘蛛对信息的抓取的速度和准确性

  (3) 有利于减少错误的代码,提高页面的对蜘蛛的友好性

  (4) 便于管理人员维护,提高工作效率

  (5) 减少网页的噪音,突出页面的主题

  我们可以从以下几个方面来进行精简代码:

  一、清除页面中多余的代码:空格代码、stylefont重复定义的代码

  有的网站以为制作者的代码书写习惯问题,页面会有很多空格代码。不要小看这些体积很小的代码,积攒多了,也会使我们的网站异常的臃肿。

  很多网站都是采用的DIV+CSS,在CSS中定义了文字的字体,颜色,以及页面的排版,但是在网站的其他地方还用了以style以及font来再次定义字体字体,这些代码完全没有必要重复定义,属于可以精简的代码。

  二:使用DIV+CSS布局网页

  虽然现在div+css已经很成熟了,但是很多网页设计者可能考虑到网页的兼容性以及布局的简易性还是使用老式的table布局,如上图所示。虽然table布局很方便,但是其弊端也是显而易见的,那就是会大大增加网页的大小,尤其是多层表格的嵌套。这种布局不仅会提升体积,同时如果嵌套数太多的话就会影响到搜索引擎的爬行,影响到站点的收录。

  另外,一些网站会使用外部文件,将cssjs放在外部文件中,页面html中只要放一样代码调用就可以了。有时候我们去查看的一些源文件代码,会看到很多css代码以及javasript代码,将javascript放置在网站页面的html文件中的前面,而真正能用到得一些文字部分这被推倒了html的后面。企赢001认为一般页面代码中的这种代码都需要精简。

  三、代码注释

  很多程序人员在编写代码是都习惯在别人看不懂的地方给出一段注释,这些代码往往是为了几个程序员之间的协同工作,对于外人以及搜索引擎来说没有任何用处,相反还会给搜索引擎蜘蛛带来一定的困扰。

  四、 减少页面表格。

  现在的网站用什么做?很多程序员想法就是采用CSS去做,采用CSS去排版,这种做法呢,就使页面中的表格大大的降低了,但是网站也不能没有表格,有些事必须使用到得,使用表格本身没什么,但是有很多网站都采用嵌套表格,一般这样的表格形式会给网站产生大量的垃圾代码,并且这些垃圾代码都是没有任何用处的代码,这一类代码也是我们网站需要精简的代码之一。

五、降低页面对于JS的依赖性

  现在来说,JS对于搜索引擎并不不友好,虽然有消息称搜索引擎不会对JS有厌恶的情绪,但是多一事不如少一事。虽然JS可以制作出很多的效果,但是网页中大量的JS将影响蜘蛛对页面的抓取和增加网页体积。尤其是页面的关键位置如导航栏,尽量采用DIV+CSS的设计方法。

  六、尽量不要使用内嵌式CSS

  内嵌式CSS分为两种,一是在head区域的普通内嵌式,二是在标签内出现的行内内嵌式css,无论是何种内嵌CSS方式结果都会提升页面的体积。对此我们可以尽量使用外调式的CSS来为站点页面的体积瘦身。

  七、将html控制方式转换为CSS控制

  很多网页设计者习惯在标签内对内容进行控制。比如img标签里通过widthheight来控制图片的大小。尽量将这些代码转换成外调式的CSS,使网页代码更加的瘦身。

  八:对网页进行GZIP压缩

  这一点可能大家都很熟悉。这个功能需要你的服务器的支持。GZIP压缩一般能对网页进行30%-80%的压缩,是重要的一种优化效果。

 

标签优化 

 ()、常用标签

  包括htmlbodyheadfootpbiemstrongfontdiv/brspanimagetitlekeywordsdescriptiontaganofollowcanonicalh

  ()、标签的一般写法: (特殊标签除外,比如</br>)

  (