一、MIP 认知类问题
1.1 MIP 化的收益是什么?具体数据是怎样的?
从目前收集到的数据来看,网站 MIP 化上线后,页面速度提升 30%~80%,页面到达率提升 5%~40%。
1.2 开发 MIP 后,搜索流量是导流到 MIP,还是导流到原页面?
应该导流到 MIP 页面,需要在 MIP 页面中做好和原页面的 对应关系。
1.3 MIP 移动网页加速器做了之后是只针对移动百度的展示,还是说也对我们其他的正常用户一样显示?
MIP 页面是可以独立运行的,可以在浏览器中通过 url 直接访问,不依赖百度结果页。由于 MIP 页速度较快,体验更优,会在百度移动结果页有更高的权重。
1.4 搜索结果打开是百度的域名,用户分享的是否也是是百度链接?使用百度域名是否不利于网站的品牌传播同时也会影响流量统计,该如何解决?
答:如果用户通过分享组件分享,则分享的标题,图片和内容都是原页面内容,具体分享内容可以在使用组件时定义。这种做法不会影响品牌传播,也不会影响流量统计。如果用户直接从浏览器复制链接分享,那么被分享的是当前页面 URL (MIP Shell 链接),URL 中是能够反解出原页面 URL 的。统计代码在页面加载完成后都会生效,不会受到分享影响。
1.5 搜索结果打开是百度的域名,是否会影响广告计费?
从搜索结果页点出的MIP页面,其页面上的任何内容(包括但不限于广告、在线咨询、统计等组件)均视为在原站点上的投放和使用。详情请见MIP 内容声明。
1.6 如果采取新建一套 MIP 页面的方式,假设新建 MIP 页面出现问题,譬如改造错误、失效或者其他不可预知问题,百度的处理机制是怎样的?
MIP 是有回退机制的,MIP 访问出问题后,会直接回到原来的 H5 页面;不会影响权重,MIP 会更被认可和优先。
1.7 MIP 可以加什么样的广告?
MIP 既可以加入百度联盟广告,也可以加入第三方广告。
1.8 MIP 是否开源?
MIP 核心代码和组件都是开源的,欢迎交流讨论。
- 核心代码 GitHub :https://github.com/mipengine/mip
- MIP 组件 GitHub :https://github.com/mipengine/mip-extensions
1.9 MIP 对什么样的内容有较好的效果?
目前我们对内容浏览类的站点支持比较全面。后续,随着不断丰富的开放组件,MIP 可以支持更多类型的站点。
1.10 站长构建一个 MIP 的成本有多少?
MIP HTML 是基于 HTML 进行的优化。对于新建站点,按照 MIP 规范开发即可,没有额外成本;如果是已有的页面,需要具体看页面生成方式,模板形式的改造一次性成本。
1.11 MIP 与 Mobile Friendly 是什么关系?
Mobile Friendly 是用于评估个页面在手机端的浏览体验,评估标准包括内容易读性,功能易用性,广告面积等。
而 MIP 是一套解决方案,不仅可以提升移动端浏览体验,还会解决页面加速和安全性的问题。
所以应用了 MIP 的页面能够提升一定的移动友好性,但不一定能达到 Mobile Friendly 的要求。
1.12 加了 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 插件如何支持?譬如广告、统计、推荐,等等?
答:(1)MIP 为了确保安全性和性能表现,不允许用户自定义 JavaScript,需要用 MIP 组件的形式引进来;MIP 组件是开源的,允许开发者自行开发组件并提交给 MIP 组件库。
(2)目前 MIP 组件已经支持多种功能组件:如广告支持站长自定义的横幅广告、视频广告、H5 广告,同时也支持一些第三方广告系统,统计可以支持百度统计,更多具体的组件支持的可以参考官网的 组件说明;后续 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 提供的 JS 和 CSS
- 替换部分标签为 mip-html 标签
- 去除原有 JS 逻辑,改引用 mip-js 组件。
是否需要特殊改造,由网站对 “响应式” 的实现方式决定:
- 如果您的自适应站点是用 CSS 的 Media Query 来实现的,那么不需要做特殊的改造,MIP 对 CSS 没有限制。
- 如果您的自适应是通过 JS 计算实现的,则需要进行相应的改造(见改造第 3 步)。 如果您需要的功能不在我们的组件列表里面,可以通过 github issues 给我们反馈。
3.6 MIP 规范中写到不能用 link 标签对样式表进行加载,是不是我的样式都要写到 HTML 页面里,并且只能出现一次 style 标签?
MIP 规范不建议外链样式表,是为了节省网络加载时间,加速 MIP 页面。 开发时,样式表可以作为单独的文件维护,上线前通过一次编译(fis3,grunt,gulp)实现文件内联,将 css 作为<style>
标签插入<html>
, 达到 MIP 要求。
3.7 如何保证 MIP 页面代码符合规范,有校验工具么?
代码校验工具地址为:https://www.mipengine.org/validator/validate。在 MIP 官网—常用链接中也可以找到。
3.8 react 能否和 MIP 结合使用?是否会和其他 js 框架(比如angular )结合?
MIP 与其他框架(除zepto和jquery)及其组件不能结合使用。交互功能可以通过引入 MIP组件实现。
3.9 MIP页是否支持自定义cookie? 实现 登录、统计、广告等功能ess>
组件实现,使用方法见博客《MIP ACCESS细节剖析》。
3.10 MIP的统计功能如何实现的?
目前我们提供百度统计,天润统计,第三方站长开发的 cnzz 统计,还有 mip-pix 自定义统计。在页面中引入相应的组件就可以实现统计功能。
3.11 与服务端异步交互请求如何发出,如AJAX,官方提供了什么组件?
与服务端的交互请求比较个性化,需要自行封装组件,在组件中可以用 fetch 自行实现。文档请见官网。示例:
fetch(location.href).then(function (res) {
return res.text();
}).then(function (text) {
fetchElement.innerHTML = 'fetch: ' + (text.search('mip-test') !== -1);
});
3.12 第三方自定义组件的时候是否限制个数和规范?
暂无个数限制,规范需要通过FECS的规范检查,请保证新提交的组件不重复实现已有功能。未来我们会开放MIP组件平台,方便大家提交组件。
3.13 组件开发后多久可以上线?
组件开发按照 github 的标准,开发自测完成后,提交到 MIP 组件上线平台。1个工作日内可以上线。
3.14 组件之间是否可以交互?
为了组件间的抽象分离,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">
<h2>Hello, World!</h2>
<p> this is the lightbox</p>
</div>
</mip-lightbox>
3.14 组件之间是否可以交互?
为了组件间的抽象分离,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">
<h2>Hello, World!</h2>
<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 页面乱码或者页面源码不能通过 校验 导致。如果还有其他问题,可以从站长平台 反馈入口 反馈问题。
百度搜索相关问题,可以通过百度站长平台的 反馈入口 反馈。
五、MIPCache
5.1 为什么要使用 MIPCache?
http://www.cnblogs.com/mipengine/p/why_mip-cache_exists.html
5.2 如果提交的网址错了,怎么删除错误的网址,另外把页面都改成404对站点排名有没有影响?
可以使用站长平台 mip-cache 的更新接口,删除错误网址。如果还有对应的h5网页的话,对排名没有影响。###### 5.7 使用MIP-cache是否增加页面抓取的压力?
会。MIP-cache为了保证页面的时效性,会在cache过期(52分钟-5天)后重新抓取所有页面,网站服务器会受到较高的qps压力。
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组件,敬请期待。