我们在做网站的时候,经常会听到别人说SEO优化,网站优化等等。但是我们经常听的云里雾里的,但是经过我们运营一段时间之后,我们慢慢的就会熟悉了,知道什么是SEO。
SEO中文译名为搜索引擎优化,既然是叫搜索引擎优化,那么肯定的是从各个方面对网站的链接和内容进行优化了。
在移动互联网高速发达的今天,仅仅只是依靠PC端的网页展示是不够的,还需要针对移动端进行优化和展示,在这里我给大家普及一下,SEO的中AMP、MIP和熊掌号的几个知识点。

1.AMP(Accelerated Mobile Pages),是谷歌的一项开放源代码计划,可在移动设备上快速加载的轻便型网页,旨在使网页在移动设备上快速加载并且看起来非常美观。

2.MIP(Mobile Instant Page - 移动网页加速器),是一套应用于移动网页的开放性技术标准。通过提供MIP-HTML规范、MIP-JS运行环境以及MIP-Cache页面缓存系统,实现移动网页加速。

3.熊掌号,是百度熊掌号是内容和服务提供者入驻百度生态的实名账号。通过历史内容接口,每天可提交最多500万条有价值的内容,所提交内容会进入百度搜索统一处理流程。

好了,以上知识点内容普及完了,接下来即将开始上干货了。

我今天在网上使用站长工具查看本网站SEO信息的时候,看到几个不常用的权重,其中就是神马权重和头条权重。

头条的权重我不清楚,但是我知道他说的应该是今日头条,但是神马权重,我就不是很清楚了,不知道神马权重是啥,然后在百度上一搜索,才知道有一个神马搜索引擎的。

好吧,虽然不知道这是一个什么样的搜索引擎,但是既然是在站长工具上看到的,即使流量再小,也还是不要放过。

进到神马搜索引擎站长工具里面,我们会看到有站长相关的工具,其中有一栏为 MIP数据提交 。

既然有这个接口那我们就不要放过。

然后我们查看一下,如果使用PHP来做MIP数据的提交以及如何进行判断数据是否提交成功了。

使用PHP进行MIP数据提交的代码

$urls = array(
'http://www.example.com/1.html',
'http://www.example.com/2.html',
);
$api = 'http://data.zhanzhang.sm.cn/push?site=www.ddsiot.cn&user_name=xxxxx@qq.com&resource_name=mip_add&token=xx';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;

查看推送反馈:
推送成功:

{
"returnCode" : 200, //接收成功,但需要进一步校验提交的内容是否正确
"errorMsg" : ""
}

推送失败:

{
"returnCode" : 201, // 201: token不合法; 202: 当日流量已用完; 400: 请求参数有误; 500: 服务器内部错误
"errorMsg" : ""
}

 嗯,我们已经知道如何进行MIP数据推送,也知道怎么判断数据是否推送成功,我们现在针对Typecho的网站,添加一个MIP链接自动提交的插件。

<div class="row typecho-page-main" role="main">
<form action="<?php $options->adminUrl('extending.php?panel=AMP/Links.php&send=1'); ?>" method="POST">
<div class="operate" style="text-align: center;">
<select name="type" style="width:200px;text-align-last: center;">
<option value="amp">百度AMP</option>
<option value="mip">百度MIP</option>
<option value="smmip">神马MIP</option>
<option value="batch">熊掌号</option>
</select>
<button type="submit" class="btn btn-s"><?php _e('开始提交'); ?></button>
</div>
</form>
<div>

我们制作的这个Typecho插件支持百度MIP、百度AMP、神马MIP、熊掌号链接的自动提交。

插件提交界面预览:

插件提交结果提示代码:

if (isset($_GET['send'])) {
$http = Typecho_Http_Client::get();
$db = Typecho_Db::get(); //URL分页
if (isset($_GET['page'])) {
$page = (int)($_GET['page']);
} else {
$page = 1;
}
//URL类型
if ((isset($_GET['type']) and $_GET['type'] == 'amp') OR (isset($_POST['type']) and $_POST['type'] == 'amp')) {
$sendtype = 'amp';
$type = 'amp';
} elseif ((isset($_GET['type']) and $_GET['type'] == 'mip') OR (isset($_POST['type']) and $_POST['type'] == 'mip')) {
$sendtype = 'mip';
$type = 'mip';
} elseif ((isset($_GET['type']) and $_GET['type'] == 'smmip') OR (isset($_POST['type']) and $_POST['type'] == 'smmip')) {
$sendtype = 'mip';
$type = 'smmip';
} elseif ((isset($_GET['type']) and $_GET['type'] == 'batch') OR (isset($_POST['type']) and $_POST['type'] == 'batch')) {
$sendtype = 'mip';
$type = 'batch';
if (isset(Helper::options()->plugin('AMP')->baiduAPPID) and isset(Helper::options()->plugin('AMP')->baiduTOKEN)) {
$appid = Helper::options()->plugin('AMP')->baiduAPPID;
$token = Helper::options()->plugin('AMP')->baiduTOKEN;
$api = "http://data.zz.baidu.com/urls?appid={$appid}&token={$token}&type=batch";
} else {
throw new Typecho_Widget_Exception('未设置熊掌号参数!');
}
} else {
$sendtype = 'mip';
$type = 'mip';
} $articleList = Typecho_Widget::widget('AMP_Action')->MakeArticleList($sendtype, $page, 20); //接口类型
if (!isset($api))
{
if(('mip' == $type)||('amp' == $type) ||('batch' == $type))
{
if (empty(Helper::options()->plugin('AMP')->baiduAPI)) {
throw new Typecho_Widget_Exception('未设置MIP/AMP推送接口调用地址!');
} else {
$api = Helper::options()->plugin('AMP')->baiduAPI;
$api = preg_replace("/&type=[a-z]+/", "&type={$sendtype}", $api);//替换接口中的类型 }
}else if('smmip' == $type){
if (empty(Helper::options()->plugin('AMP')->SMAPI)) {
throw new Typecho_Widget_Exception('神马未设置MIP推送接口调用地址!');
} else {
$api = Helper::options()->plugin('AMP')->SMAPI;
}
} } $urls = array();
foreach ($articleList AS $article) {
if(Helper::options()->plugin('AMP')->PostURL !== Helper::options()->index){
$article['permalink']=str_replace(Helper::options()->index,Helper::options()->plugin('AMP')->PostURL,$article['permalink']);//替换提交的前缀
}
echo '正在提交:' . $article['permalink'] . " <br>";
$urls[] = $article['permalink'];
} if (count($urls) > 0) {
$http->setData(implode("\n", $urls));
$http->setHeader('Content-Type', 'text/plain');
try {
$result = $http->send($api);
} catch (Exception $e) {
throw new Typecho_Plugin_Exception(_t('对不起, 您的主机不支持远程访问。<br>请检查 curl 扩展、allow_url_fopen和防火墙设置!<br><hr>出错信息:'.$e->getMessage()));
} // string '{"remain":4999960,"success":0,"not_valid":[""]}'
// string '{"success_mip":20,"remain_mip":9980}' (length=36)
// $result='{"success_amp":20,"remain_amp":9980}';
// string(43) "{"success_batch":20,"remain_batch":4999960}" $obj = json_decode($result, true); if(('mip' == $type)||('amp' == $type) ||('batch' == $type))
{
$name = "success_{$type}";
if (isset($obj[$name])) { echo '<hr>';
echo "第{$page}页提交成功,";
print_r($obj);
$count = $obj["remain_{$type}"];
echo "还可提交{$count}条URL,准备提交下一页>>>";
$page += 1; ?>
<script language="JavaScript">
window.setTimeout("location='<?php $options->adminUrl('extending.php?panel=AMP/Links.php' . "&send=1&type={$type}&page={$page}");
?>'", 2000);
</script>
未自动跳转请点击<a
href="<?php $options->adminUrl('extending.php?panel=AMP/Links.php' . "&send=1&type={$type}&page={$page}"); ?>">这里</a>
<?php
} else {
echo "<hr>错误提示:";
print_r($obj);
echo "<br>提交失败,请检查提交地址。如有必要,请将错误提示<a href='https://github.com/xiaodingding/Typecho-AMP/issues'>反馈给作者</a>";
}
}else if('smmip' == $type)
{
if(200 == isset($obj["returnCode"] ))
{
echo '<hr>';
echo "第{$page}页提交成功,";
echo "准备提交下一页>>>";
$page += 1; ?>
<script language="JavaScript">
window.setTimeout("location='<?php $options->adminUrl('extending.php?panel=AMP/Links.php' . "&send=1&type={$type}&page={$page}");
?>'", 2000);
</script>
未自动跳转请点击<a
href="<?php $options->adminUrl('extending.php?panel=AMP/Links.php' . "&send=1&type={$type}&page={$page}"); ?>">这里</a>
<?php
}else{
echo "<hr>错误提示:";
print_r($obj);
echo "<br>提交失败,请检查提交地址。如有必要,请将错误提示<a href='https://github.com/xiaodingding/Typecho-AMP/issues'>反馈给作者</a>";
}
}
} else {
echo "已全部提交完成";
?>
<script language="JavaScript">
window.setTimeout("location='<?php $options->adminUrl('extending.php?panel=AMP/Links.php');?>'", 2000);
</script>
未自动跳转请点击<a href="<?php $options->adminUrl('extending.php?panel=AMP/Links.php'); ?>">这里</a>
<?php
}

插件神马MIP提交结果预览:

神马MIP提交成功,大公告成。

插件源码下载链接:https://www.ddsiot.cn/archives/310.html

食用方法:

将插件下载之后,放在Typecho的Plugins目录下面,并将文件夹重命名为AMP。

给你的网站添加谷歌AMP、百度MIP、神马MIP链接自动提交功能的更多相关文章

  1. SEO -- WordPress怎设置百度站长链接自动提交

    百度站长平站更新了主动推送(实时)推送的方式,受到了广大站长的好评,但是对于使用WordPress的网站来说怎么设置自动提交呢,在这里介绍一种比较简单且有效的方法.我们可以使用 WP BaiDu Su ...

  2. 如何为 Drupal 7 网站添加悬浮的反馈按钮?

    最近有客户咨询我们要怎么为 Drupal 网站添加悬浮按钮,方便访客能够链接到反馈表单页面.很幸运,使用 Feedback Simple 模块可以很容易实现. 在这篇短教程中,我将和大家分享如何添加链 ...

  3. 如何给wordpress外部链接自动添加nofollow

    wordpress多作者博客可以丰富网站的内容,但同时也会产生一些无关的链接,例如有些投机的人会考虑在文章中随意添加外部链接,如果你不想给这些外部链接传递权重,你需要给这些外部链接加上 rel=&qu ...

  4. 网站添加第三方登陆(PHP版)

    这两周正在写毕业设计,我做的是一个问答网站.先介绍一下这个网站:这是一个关于大学生在线问答的网站,类似知乎和百度知道,不过功能没有人家多,毕竟这个网站我一个人在做.网站部署在阿里云,网站包括API,W ...

  5. 谷歌、百度、1万ip能赚多少钱?1000IP能够值多少钱呢?

    谷歌.百度.1万ip能赚多少钱?1000IP能够值多少钱呢? (2014-04-03 11:50:52) 转载▼ 标签: 广告联盟 百度联盟 谷歌联盟 ip赚钱       很多在人问:谷歌.百度:1 ...

  6. [翻译]在Django项目中添加谷歌统计(Google Analytics)

    原文:<Google Analytics tracking code into Django projects, the easy way> 对我来说,制作一个可扩展的Django应用随时 ...

  7. 百度,谷歌,360,搜狗,神马等蜘蛛IP段

    https://www.imydl.com/wzjs/5971.html 记得3月份的时候明月分享过一篇[站长必备:百度.谷歌.搜狗.360等蜘蛛常见IP地址]的文章,好像一直都受到了众多站长们的关注 ...

  8. 将网站添加到iPhone的主屏幕上

    我之前有篇文章介绍过如何将网站固定到Windows的开始菜单,并可以自定义图标.颜色以及Windows推送通知,其实Apple也有类似的功能,通过在网页的head部分添加link标记,在Safari浏 ...

  9. 利用nginx向现有网站添加登录验证功能(不添加修改现有网站代码)

    在不改变现有网站代码的前提下加入验证功能: 1.假设现有网站后端nodejs,端口3000,nginx配置如下 server { listen 80; server_name localhost; l ...

随机推荐

  1. Affinity Propagation

    1. 调用方法: AffinityPropagation(damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=N ...

  2. 一口气说出 9种 分布式ID生成方式,面试官有点懵了

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 本文作者:程序员内点事 原文链接:https://mp.weix ...

  3. JAVA中的约瑟夫环和猴子王问题

    今天在书上(书名< java程序设计经典300例 >李源编著)看了一个有趣的问题,那就是java版的约瑟夫问题,想必大一的小伙伴们早就用c写过了吧 今天我在复习一下 首先问题是这样的n个人 ...

  4. Spring ——Spring IoC容器详解(图示)

    1.1 Spring IoC容器 从昨天的例子当中我们已经知道spring IoC容器的作用,它可以容纳我们所开发的各种Bean.并且我们可以从中获取各种发布在Spring IoC容器里的Bean,并 ...

  5. 如何用一月6RMB搭建一个国外服务器

    转载自我的博客:https://blog.ljyngup.com 前言 本文将教你如何用一月6RMB的价格搭建一个属于个人的外国服务器.并且一月500G流量,延迟低于500ms. 开始 导航:Virm ...

  6. PHP独立环境配置

    php 下载地址: http://windows.php.net/download/ Apache 下载地址: http://www.apachelounge.com/download/ mysql ...

  7. 标准 I/O 和管道

    1.标准输入和输出1>程序:指令+数据(指令服务于数据) 读入数据:input 输出数据:output 2>三种 I/O 设备 Linux 给程序提供三种 I/O 设备 标准输入(STDI ...

  8. Serverless + Egg.js 后台管理系统实战

    本文将介绍如何基于 Egg.js 和 Serverless 实现一个后台管理系统 作为一名前端开发者,在选择 Nodejs 后端服务框架时,第一时间会想到 Egg.js,不得不说 Egg.js 是一个 ...

  9. WebSocket以及socketIO的使用

    简介 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久 ...

  10. Android中ProgressBar的使用-通过Handler与Message实现进度条显示

    场景 进度条效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改为 ...