爱好者 > Typecho > 代码相关 > 只对支持amp加速的搜索引擎开放amp功能

只对支持amp加速的搜索引擎开放amp功能

作者:佚名 来源:爱好者 时间:2018-01-13

在上篇文章《Typecho 添加 AMP 支持》说了给博客加amp功能,但是我没说弊端233,这次说下优缺点。


优点:
1,amp确实很快捷
2,支持amp功能的搜索引擎(比如谷歌),会优先amp页面,也就是说对seo有利

缺点:
1,对于不支持amp的搜索引擎来说,amp页面内容与原文重复,属于重复文章,可能反而不利于seo。
2,amp页面会被缓存到支持amp功能的搜索引擎上,也就是说文章被收录后,如果再次被修改amp页面可能反应迟钝。
3,移动端搜索引擎带来的ip会减少,毕竟别人浏览搜索引擎上的amp页面,实际是缓存到搜索引擎服务器上的,所以并不会直接产出ip。

其实只有缺点1比较致命,所以本次就提出两个方案,着重讲第一个方案。

方案一:网站端判断来源,如果是谷歌的蜘蛛或者百度的蜘蛛就允许amp功能开启(谷歌搜索引擎和百度搜索引擎支持amp)
用百度搜索了下两家搜索引擎的特征,分别是Googlebot和Baiduspider。
而谷歌用来测试amp是否生效的ua信息被我抓出来了

Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Google-AMPHTML)
百度的用来缓存amp页面的ua不知道,但是肯定包含Baidu所以只要往简单了判断也就行了

有了这些就万事俱备了,开始写判断

<?php 
$ua=$_SERVER['HTTP_USER_AGENT'];
$ua=strtolower($ua);
$ampok=strpos($ua,"baidu");$ampko=strpos($ua,"googlebot");$ampo=strpos($ua,"google-amphtml");
if($ampok !== false || $ampko !== false || $ampo !== false){
//此处为amp页的功能实现代码
}
 ?>
在调试过程中你可以安个Chrome插件User-Agent Switcher调试过程中来回切换UA会方便许多.感谢尚寂新提到的插件,省了好多力气。

方案二:使用robots.txt来禁止所有搜索引擎来收录amp页面,然后只允许百度或者谷歌来收录amp页面(谷歌搜索引擎和百度搜索引擎支持amp)[只是一种思考,不知道对于seo是否真的有作用]

题外话
雅虎也支持amp,但是雅虎好像废了,搜狗也说支持amp,但是站长平台下,并没有看到amp的影子。故此文只提到谷歌and百度。