在 MIP 推出后,我们收到了一些站长的疑问。现将常见问题整理出来,帮助大家了解 MIP 的知识。
一、MIP 认知类问题
1.1 MIP 化的收益是什么?具体数据是怎样的 ?
从目前收集到的数据来看,网站 MIP 化上线后,页面速度提升 30%~80%,页面到达率提升 5%~40%。
1.2 有没有已上线 MIP 页可以参考呢?
现在已经有上千家站点完成了 MIP 改造,点击 《MIP 页面效果精选》 查看示例。
1.3 开发 MIP 后,搜索流量是导流到 MIP,还是导流到原页面?
应该导流到 MIP 页面,需要在 MIP 页面中做好和原页面的 对应关系。
1.4 MIP 移动网页加速器做了之后是只针对移动百度的展示,还是说也对我们其他的正常用户一样显示?
MIP 页面是可以独立运行的,可以在浏览器中通过 url 直接访问,不依赖百度结果页。由于 MIP 页速度较快,体验更优,会在百度移动结果页有更高的权重。
1.5 搜索结果打开是百度的域名,用户分享的是否也是是百度链接?使用百度域名是否不利于网站的品牌传播同时也会影响流量统计,该如何解决?
答:如果用户通过分享组件分享,则分享的标题,图片和内容都是原页面内容,具体分享内容可以在使用组件时定义。这种做法不会影响品牌传播,也不会影响流量统计。如果用户直接从浏览器复制链接分享,那么被分享的是当前页面 URL (MIP Shell 链接),URL 中是能够反解出原页面 URL 的。统计代码在页面加载完成后都会生效,不会受到分享影响。
1.6 搜索结果打开是百度的域名,是否会影响广告计费?
从搜索结果页点出的 MIP 页面,其页面上的任何内容(包括但不限于广告、在线咨询、统计等组件)均视为在原站点上的投放和使用。详情请见 MIP 内容声明。
1.7 如果采取新建一套 MIP 页面的方式,假设新建 MIP 页面出现问题,譬如改造错误、失效或者其他不可预知问题,百度的处理机制是怎样的?
MIP 是有回退机制的,MIP 访问出问题后,会直接回到原来的 H5 页面;不会影响权重,MIP 会更被认可和优先。
1.8 MIP 可以加什么样的广告?
MIP 既可以加入百度联盟广告,也可以加入第三方广告。
1.9 MIP 是否开源?
MIP 核心代码和组件都是开源的,欢迎交流讨论。
- 核心代码 GitHub :https://github.com/mipengine/mip
- MIP 组件 GitHub :https://github.com/mipengine/mip-extensions
1.10 MIP 对什么样的内容有较好的效果?
目前我们对内容浏览类的站点支持比较全面。后续,随着不断丰富的开放组件,MIP 可以支持更多类型的站点。
1.11 站长构建一个 MIP 的成本有多少?
MIP HTML 是基于 HTML 进行的优化。对于新建站点,按照 MIP 规范开发即可,没有额外成本;如果是已有的页面,需要具体看页面生成方式,模板形式的改造一次性成本。
1.12 MIP 与 Mobile Friendly 是什么关系?
Mobile Friendly 是用于评估个页面在手机端的浏览体验,评估标准包括内容易读性,功能易用性,广告面积等。
而 MIP 是一套解决方案,不仅可以提升移动端浏览体验,还会解决页面加速和安全性的问题。
所以应用了 MIP 的页面能够提升一定的移动友好性,但不一定能达到 Mobile Friendly 的要求。
1.13 加了 MIP 标签后对页面的展示有没有影响?
没有影响。MIP 标签会自带一些样式,但这些样式是可以被覆盖的。所以加了 MIP 标签后网页还可以保持原来的样式。
二、改造前准备
2.1 MIP 在原网站搭建,还是重新在新子域做,还是新目录做?
答:都可以,这三种方案改造 MIP 都是可行的。做好 canonical 标签 对应即可。
2.2 使用伪静态 url 的网站如何使用 MIP?
MIP 页面可能会被 MIP-Cache 缓存,所以用户看到的不一定是动态的页面。当需要更新页面内容时,可通过 MIP 组件形式封装 JS 请求,以及后续更新 DOM 的 JS 操作。
2.3 代码适配站点如何使用 MIP?
区别讨论。如果后端根据 UA 判断是否为移动端页面,并返回页面,则将返回的页面 MIP 化即可。如果是前端判断浏览器宽度或 UA,再请求后端返回相应页面,则需要改变这套流程,使用后端判断,或直接改为响应式页面。
2.4 是否必须是 HTTPS 才能 MIP 化,如果不是 HTTPS 会有什么影响?如何快速 HTTPS 化 ?
MIP 改造本身是不需要支持 HTTPS 的。但如果页面需要与服务端进行交互,比如发送统计,提交表单,获取数据,需要支持 HTTPS。快速进行 HTTPS 化可以通过百度云加速的 HTTPS 方案进行快速部署 HTTPS 环境。
2.5 gbk 编码的网站如何使用 MIP?
更改成 utf-8 编码后使用 MIP。gbk 编码并不是国际通用标准,在一些手机上会有会显示乱码。
三、前端改造,组件使用
3.1 目前 MIP 组件之外的一些 JavaScript 插件如何支持?譬如广告、统计、推荐等等?
MIP 为了确保安全性和性能表现,不允许用户自定义 JavaScript,需要用 MIP 组件的形式引进来;MIP 组件是开源的,开发者可以自行开发组件并提交给 MIP 组件库。可以参照 MIP 组件开发规范文档 来封装组件并提交。
3.2 MIP 页面中可以展现哪些元素?对于弹窗广告有何限制?
MIP 页面中可以展示所有原页面的元素,在前端代码中对于一些标签做替换即可。比如,如果需要使用悬浮元素(position:fixed)需要改用 mip-fixed 组件或 mip-semi-fixed 组件。
3.3 MIP 提供的组件不能满足交互需求怎么办?
在 MIP 官方组件不能满足需求的情况下,如果升级官方组件可以满足,可以 提需求 或自己升级官方组件,MIP 项目组来审核;如果涉及到站点自身业务逻辑,可以自行封装组件并通过 组件审核平台 提交审核组件,审核通过后可以上线。
3.4 网盟反屏蔽广告申请广告位的时候,能否同时生成 MIP 页面的广告代码片段?
暂时还是不支持直接生成的,需要人工的根据转换规则将非 MIP 反屏蔽投放代码转换成 MIP 反屏蔽投放代码。这个转换规则还是比较清晰的,在 MIP 文档 里有说明。
3.5 为什么投放网盟反屏蔽广告,直接打开 MIP 页广告展现,在 MIP 预览工具和百度搜索结果页却看不到广告呢?
MIP 预览工具和百度搜索结果页是 https 环境,会相应地引用 https 反屏蔽脚本。如果反屏蔽域名不支持 https,就不能加载脚本了。可以参考 反屏蔽广告组件文档 的注意事项,通过支持 https 来解决这个问题。
3.6 对于自适应站点,MIP 对页面的改造要怎么弄?
MIP 改造主要有三步:
- 引用 MIP 提供的 JS 和 CSS
- 替换部分标签为 mip-html 标签
- 去除原有 JS 逻辑,改引用 mip-js 组件。
是否需要特殊改造,由网站对 “响应式” 的实现方式决定:
- 如果您的自适应站点是用 CSS 的 Media Query 来实现的,那么不需要做特殊的改造,MIP 对 CSS 没有限制。
- 如果您的自适应是通过 JS 计算实现的,则需要进行相应的改造(见改造第 3 步)。 如果您需要的功能不在我们的组件列表里面,可以通过 github issues 给我们反馈。
3.7 MIP 规范中写到不能用 link 标签对样式表进行加载,是不是我的样式都要写到 HTML 页面里,并且只能出现一次 style 标签?
MIP 规范不建议外链样式表,是为了节省网络加载时间,加速 MIP 页面。 开发时,样式表可以作为单独的文件维护,上线前通过一次编译(fis3,grunt,gulp)实现文件内联,将 css 作为<style>
标签插入<html>
, 达到 MIP 要求。
3.8 如何保证 MIP 页面代码符合规范,有校验工具么?
代码校验工具地址为:https://www.mipengine.org/validator/validate。在 MIP 官网—常用链接中也可以找到。
3.9 react 能否和 MIP 结合使用?是否会和其他 js 框架 (比如 angular ) 结合 ?
MIP 与其他框架(除 zepto 和 jquery)及其组件不能结合使用。交互功能可以通过引入 MIP 组件 实现。
3.10 MIP 页是否支持自定义 cookie? 实现 登录、统计、广告等功能
cookie 可以使用<mip-access>
组件实现,使用方法见博客 《MIP ACCESS 细节剖析》。
3.11 MIP 的统计功能如何实现的 ?
目前我们提供 百度统计,天润统计,第三方站长开发的 cnzz 统计,还有 mip-pix 自定义统计。在页面中引入相应的组件就可以实现统计功能。
3.12 与服务端异步交互请求如何发出,如 AJAX,官方提供了什么组件?
与服务端的交互请求比较个性化,需要自行 封装组件,在组件中可以用 fetch 自行实现。文档请见 官网。示例:
fetch(location.href).then(function (res) {
return res.text();
}).then(function (text) {
fetchElement.innerHTML = 'fetch: ' + (text.search('mip-test') !== -1);
});
3.13 第三方自定义组件的时候是否限制个数和规范 ?
暂无个数限制,规范需要通过 FECS 的规范检查,请保证新提交的组件不重复实现已有功能。未来我们会开放 MIP 组件平台,方便大家提交组件。
3.14 组件开发后多久可以上线 ?
组件开发按照 github 的标准,开发自测完成后,提交到 MIP 组件上线平台。1 个工作日内可以上线。
3.15 组件之间是否可以交互 ?
为了组件间的抽象分离,mip 不建议做组件间的交互。但是可以通过 dom 加on
属性的形式控制。如 mip-lightbox 弹层组件与 mip-sidebar 侧边栏组件,点击 button 按钮可以触发展开收起。
<button on="tap:my-lightbox.open" id="btn-open" role="button" tabindex="0">
Open lightbox
</button>
<mip-lightbox
id="my-lightbox"
layout="nodisplay"
class="mip-hidden">
<div class="lightbox">
<h1>Hello, World!</h1>
<p> this is the lightbox</p>
</div>
</mip-lightbox>
如果有遇到新的前端技术问题,可以通过 GitHub issues 与我们交流,提交 issue 可以按照 博客文章 操作。
四、提交生效
4.1 如何提交 MIP 页?MIP 推送 URL 限制是多少?
博客 《百度站长平台 MIP 引入工具》 中有提交 MIP 页的详细教程。提交上限根据站点而不同,最少的上限是每天 10000 条 URL,上不封顶。
4.2 MIP 化后对其他搜索引擎抓取收录以及 SEO 的影响如何?
在原页面 MIP 化,不会影响其它搜索引擎的抓取收录,也不会影响页面权重。新增 MIP 页可通过 robots.txt 文件禁用其它搜索引擎的抓取,从而保证原页面的权重。MIP 相关的内容可以这么写 (假设您的目录是 /mip/):
User-agent: Baiduspider
(这里不用写关于 mip 的内容)
User-agent: Googlebot
Disallow: /mip/
4.3 针对拥有 PC、WAP、MIP 三套页面的网站,如何进行移动适配工具和 MIP 工具提交?
答:MIP 页面可单独通过百度站长平台的 MIP 引入 提交,不会影响 PC 和 WAP。
4.4 网站如何确认改造的 MIP 页面已经在线上生效?
答:MIP 页面都会使用百度搜索结果页异步打开,只需要在百度搜索中搜索链接,并且打开后 URL 上是百度地址。
4.5 MIP 提交几个月时间了,生效量比较少,是什么原因?
答:提交 MIP 页面后,经过收录、校验、和生效三个步骤,才能在结果页看到闪电标。
1)提交 url 后,spider 会去抓取收录;
2)页面收录后,会进行 MIP 校验,如果页面不能通过 前端校验,则说明页面源码不符合 MIP 规范,此时页面 ** 收录 ** 成功,但是并没有 ** 生效 **。
3)只有页面符合 MIP 规范,并且能通过前端校验,页面才算生效,也就是搜索引擎看到的是带闪电标志的页面。
生效量少的原因也会根据不同站点而不同,请先确认页面是否被收录并且能通过 MIP 校验,可以反馈问题到站长平台,来定位具体原因。
4.6 MIP 页面提交并收录了为什么搜索结果没有 MIP 闪电图标。
这种情况大多数是因为 MIP 页面乱码或者页面源码不能通过 校验 导致。如果还有其他问题,可以从站长平台 反馈入口 反馈问题。
4.7 MIP 页面提交给百度收录后,为什么有些会被转码?
由于广告不符合百度规范。MIP 页面跟普通页面性质相同,都是可访问的 html 页面。百度搜索会将质量较低的页面转码,无论是否是 MIP 页面都会被转码。如果您的页面被转码,请参考 《百度移动搜索落地页体验白皮书——广告篇》 修改页面内广告的投放。
4.8 为什么在搜索生效后,百度统计看不到数据?
- 百度统计组件使用:查看浏览器请求,如果有 hm.gif 请求发出,则说明百度统计组件使用正确。
- 百度统计后台使用:如果不添加筛选项,是可以统计到全部页面流量的,包括直接访问 MIP 页和 MIP-Cache 页面。MIP-Cache 流量 URL 有
mipcdn.com
或mipcache.bdstatic.com
的特点,筛选可见。注意不能筛选m.baidu.com
。
百度搜索相关问题,可以通过百度站长平台的 反馈入口 反馈。
五、MIPCache
5.1 为什么要使用 MIPCache?
http://www.cnblogs.com/mipengine/p/why_mip-cache_exists.html
5.2 如果提交的网址错了,怎么删除错误的网址,另外把页面都改成 404 对站点排名有没有影响?
可以使用 站长平台 mip-cache 的更新接口,删除错误网址。如果还有对应的 h5 网页的话,对排名没有影响。
5.3 已使用了 CDN 之后,再进行 MIP 改造,两套 CDN 会不会产生冲突和影响?
答:不会产生冲突,也不会存在双重加速的问题。 搜索请求会先发到 MIP-Cache(MIP-CDN),如果页面不存在或过期,会进一步访问原 CDN。
5.4 已经使用 CDN 再用 MIP 的必要性是什么?
答:MIP 的性能提升方案,很大一部分是技术实现的收益,非 cdn 收益。MIP 原理不能简单的理解为 Mobile Friendly 框架 + CDN,技术核心是通过页面渲染技术等提升性能,详见 博客:百度 MIP 移动页面加速——不只是 CDN。
5.5 页面的 url 没变,但展现内容进行了改版。改版后,新的内容为什么没有同步在百度搜索结果页?
答:MIP Cache 页面没更新导致。具体分两种情况:一是页面没有点击导致页面不被更新(自动更新时间最长 5 天,也就是说最多 5 天,页面也会被更新);二是页面有点击,但是站长服务器封禁了 spider 抓取,这样导致 Cache 抓取不回来新的页面,导致无法更新。目前 MIP Cache 抓取 UA 为 baidumib、mip,理论上讲,除非站长服务不稳定导致多次抓取失败,否则不会带来额外的太大压力。
5.6 MIP Cache 缓存更新时间是多长时间?
答:目前页面过期时间是 50 分钟左右,详细请见 MIP-Cache 的更新和校验策略。
5.7 使用 MIP-cache 是否增加页面抓取的压力?
会。MIP-cache 为了保证页面的时效性,会在 cache 过期 (52 分钟-5 天) 后重新抓取所有页面 , 网站服务器会受到较高的 qps 压力。
六、学习资源
6.1 我决定新建 MIP 页了,要如何开始呢?
有如下资源可以使用:
MIP 官网 MIP 页面开发-新手入门文档
-
MIP 博客系列教程
MIP 系列视频教程。MIP 工程师教你开发 MIP 页面,创建 MIP 组件。
-
github 源码:
MIP 问题解决方案大全(2018-06更新)的更多相关文章
-
【2018.06.26NOIP模拟】T1纪念碑square 【线段树】*
[2018.06.26NOIP模拟]T1纪念碑square 题目描述 2034年,纪念中学决定修建校庆100周年纪念碑,作为杰出校友的你被找了过来,帮校方确定纪念碑的选址. 纪念中学的土地可以看作是一 ...
-
深度学习(Deep Learning)资料大全(不断更新)
Deep Learning(深度学习)学习笔记(不断更新): Deep Learning(深度学习)学习笔记之系列(一) 深度学习(Deep Learning)资料(不断更新):新增数据集,微信公众号 ...
-
Insider Dev Tour(2018.06.28)
时间:2018.06.28地点:北京金茂万丽酒店
-
php源码编译常见错误解决方案大全
php源码编译常见错误解决方案大全http://www.cnlvzi.com/index.php/Index/article/id/143 在CentOS编译PHP5的时候有时会遇到以下的一些错误信息 ...
-
【2018.06.26NOIP模拟】T3节目parade 【支配树】*
[2018.06.26NOIP模拟]T3节目parade 题目描述 学校一年一度的学生艺术节开始啦!在这次的艺术节上总共有 N 个节目,并且总共也有 N 个舞台供大家表演.其中第 i 个节目的表演时间 ...
-
【2018.06.26NOIP模拟】T2号码bachelor 【数位DP】*
[2018.06.26NOIP模拟]T2号码bachelor 题目描述 Mike 正在在忙碌地发着各种各样的的短信.旁边的同学 Tom 注意到,Mike 发出短信的接收方手机号码似乎都满足着特别的性质 ...
-
中美贸易战再次开启,世界两极化进程正在加快形成!..... Copyright: 1688澳洲新闻网 Read more at: https://www.1688.com.au/world/international/2018/06/17/369368/
中美贸易战再次开启,世界两极化进程正在加快形成! https://www.1688.com.au/world/international/2018/06/17/369368/
-
(转)JSP HTML JAVASCRIPT 中文乱码 解决方案 大全
JSP HTML JAVASCRIPT 中文乱码 解决方案 大全 JSP的中文字符一直是各位初学者首先要解决的问题,下面进行了总结,也给出了解决办法.C4.1 HTML中文编码转换 在JSP文件中的静 ...
-
微信小程序 - 接口更新记录以及解决方案(2018/12/26)
2018/8/17 - 背景音频需要在app.json添加requireBackGroundModes 2018/9/12 - 微信更改获取用户信息接口/获取位置等接口 - button 2018/1 ...
随机推荐
-
学习PYTHON之路, DAY 3 - PYTHON 基础 3 (函数)
一 set 集合 (无序且不重复的元素集合) 基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 删除一项: t.discard('H') t ...
-
LNK1104:无法打开文件&#39;mfc90.lib“
检查Project->Properties->Configuration Properties->C/C++->Code Generation->Runtime Libr ...
-
Flexigrid例子二: 原位编辑器
有时候,我们想要编辑flexigrid里的数据.一个原位编辑器是需要的,现在不需要再弹出一个对话框了.这里我会展示如何做到这点. 我使用了jquery-in-place-editor库.请参考官方站点 ...
-
js中的字符替换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
-
笔记1 linux 多线程 互斥锁
//mutex lock #include<stdio.h> #include<unistd.h> #include<pthread.h> struct test ...
-
pycaffe︱caffe中fine-tuning模型三重天(函数详解、框架简述)
本文主要参考caffe官方文档[<Fine-tuning a Pretrained Network for Style Recognition>](http://nbviewer.jupy ...
-
Java Native Interface调用C++代码
概述 Java Native Interface译为Java原生接口,简称JNI.Java并不是完美的,它的不足体现在运行速度要比传统的C++慢上许多,并且无法直接访问到操作系统底层,为此Java提供 ...
-
webpack入门教程--2
这次是创建第二个JS文件. 我们还是在app文件夹中创建一个叫做book2.js的JS文件,并在其中输入以下代码: module.exports = "It works from book2 ...
-
如何推翻JAVA的统治地位?
“java越来越过份了.”php狠狠的说,他转头看着C:“C哥,您可是前辈,java最近砸了我不少场子,您老再不出来管管,我怕他眼里就没有您了啊.” C哥吸烟,慢慢的说:“年轻人不要着急,java的根 ...
-
hdu1421_搬寝室
题目:搬寝室 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 #include<stdio.h> #include<algor ...