WordPress秒变谷歌AMP加速移动页面并自动推送

谷歌 AMP(Accelerated Mobile Pages)字面意思就是 “加速移动网页”,官方解释是:Accelerated Mobile Page (AMP) 是根据开放源代码规范设计的网页。经过验证的 AMP 网页会缓存在 Google 的 AMP 缓存中,从而可以更快速地呈现给用户。

AMP 页面是大大简化了移动页面,旨在提高针对移动页面的访问速度,AMP 的特点如下:

  • AMP 的 HTML 代码是标准 HTML 的一个子集,大大简化了 html 的代码,部分 Html 代码将不再适用,如 table,frame 等。
  • 大大简化 css,且只能写在 HTML 中,不能调用外部 CSS 文件。
  • JS 大部分功能不能用了,但很多互动功能也就没了,虽然影响了丰富的交互,但速度提升了速度。
  • 加强对页面资源控制,比如图片、视频等用户下拉到图片时再加载。
  • 充分利用高速缓存,Google 将 AMP 页面缓存在自身的服务器上。

AMP for WordPress 插件下载:

https://wordpress.org/plugins/amp/

WordpPress 后台搜索安装并启用 AMP 插件后,插件会自动为文章页创建一个 AMP 文章页面,页面链接 URL 是在原页面的链接 URL 加上 “?amp”,文章页面链接 URL 是在原页面的链接 URL 加上 “/amp”,以本博客文章链接为例:

原文章页面链接:
//https://xingkongweb.com/1921.html
AMP页面的链接:
//https://xingkongweb.com/1921.html?amp

如果站点是在页面原有的 URL 后面加上 /amp 或?amp 来达成 AMP 页面的,那么我们有必要禁止除百度和谷歌之外的搜索引擎抓取这些 amp 页面

如果百度和谷歌都是共用一套 AMP 页面,那么 robots.txt 可以这样写:

User-agent: baiduspider
Allow: /amp
Allow: ?amp
User-agent: googlebot-mobile
Allow: /amp
Allow: ?amp
User-agent: *
Disallow: /amp
Disallow: ?amp

如果百度用 MIP 页面,谷歌用 AMP 页面,那么 robots.txt 可以这样写:

User-agent: baiduspider
Allow: /mip
Allow: ?mip
User-agent: googlebot-mobile
Allow: /amp
Allow: ?amp
User-agent: *
Disallow: /mip
Disallow: ?mip
Disallow: /amp
Disallow: ?amp

在发布文章或者页面时自动主动推送提交 AMP 页面的,只需要将以下代码添加到当前主题的 functions.php 文件最后一个?> 的前面即可

/**
 * WordPress秒变谷歌AMP加速移动页面并自动推送
 * @authors ShenYan (52o@qq52o.cn)
 * @date 2018-03-07 10:12:38
 */
if(!function_exists('Baidu_amp')){
    function Baidu_amp($post_ID) {
        //已成功推送的文章不再推送
        if(get_post_meta($post_ID,'Baiduamp',true) == 1) return;
        $url = get_permalink($post_ID);
		if(get_post_type($post_ID)=='page'){
		$url=$url.'?amp';
		}
		if(get_post_type($post_ID)=='post'){
		$url=$url.'/amp/';
		}
        $api = 'http://data.zz.baidu.com/urls?site=网站首页地址&token=密钥&type=amp';
        //登录百度搜索资源平台 >> 网站支持 >> 数据引入 >> MIP&AMP >> AMP 下方的数据提交就能看到 AMP 推送接口调用地址
        $request = new WP_Http;
        $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
        $result = json_decode($result['body'],true);
        //如果推送成功则在文章新增自定义栏目 Baiduamp,值为 1
        if (array_key_exists('success_amp',$result)) {
            add_post_meta($post_ID, 'Baiduamp', 1, true);
        }
    }
    add_action('publish_post', 'Baidu_amp', 0);
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索