2020/4/1更新
截止3月24号,Google上已经没有本站AMP网页的索引了,相关Rewrite代码已从Nginx上删除
Accelerated Mobile Pages(简称AMP,意为“加速移动页面”)是Google带领开发的开源项目,目的是为提升移动设备对网站的访问速度。AMP也可指其派生的标准和库等项目成果。AMP在HTML等广泛使用的网络技术基础上进行改良
维基百科
AMP这家伙可谓“请神容易送神难”。在WordPress上,添加AMP只需要一个插件便能将原有的网页自动格式化为AMP。但在不损害SEO的前提下将它移除,却不是那么容易。
在查询的Google相关的资料后,D酱的情况属于“仅移除 AMP 网页,同时保留规范的非 AMP 网页”,需要如下操作:
- 从规范的非 AMP 网页的源代码中移除
rel="amphtml"
链接。 - 将您的服务器配置为针对已移除的 AMP 网页返回
HTTP 301 Moved Permanently
或302 Found
响应。 - 配置从已移除的 AMP 网页到规范的非 AMP 网页的重定向。
对于第一项,卸载插件时会帮我们自动完成,而后两项则需要我们手动修改Nginx的配置文件来完成
注意:千万不要在Search Console里使用“删除”功能,这会导致原有的非AMP页面被一同删除
在Google的Search Concole中查看到amp网址主要有这几种类型(会有这么多类型的原因全怪我乱改格式...):
- domain/?p=abc/?amp=1
- domain/?p=efg&=1
- domain/?amp=1&abc=x&efg=y…
在站点配置文件中添加如下内容
if ($request_uri ~ "^(.*?)\??\&?amp=1\&?(.*)"){
set $args1 $1;
set $args2 $2;
set $args "";
rewrite ^ "${args1}?${args2}" permanent;
}
if ($request_uri ~ "^(.*)\?$"){
set $args1 $1;
set $args "";
rewrite ^ "${args1}" permanent;
}
之后重启Nginx或者重载配置
如果试验时301重定向没有生效,可以尝试清除浏览器缓存或者使用无痕浏览(隐身)功能
经过本人的验证,这个方法对于图中的所有uri删除"amp=1"都是可行的
PS:“朴素”型的固定链接可能会影响SEO分数,建议尽快换成“数字型”或其他使用路径而不是查询字符串来索引文章的方式,WordPress会自动对旧链接进行重定向,例如https://blog.dalaoweb.top/?p=740/?amp=1,在删除?amp=1后,会自动跳转到新的链接,可以说非常方便了
看不太懂,我很困扰…可以救救我吗><(头晕
emmm,Nginx的rewrite确实有一点上手门槛,文章里的代码核心还是正则表达式(if括号中双引号内),推荐先去看看https://www.runoob.com/regexp/regexp-tutorial.html,可能会有助于理解。必要的话,可以自己调整来适应自己的站点,推荐配合https://c.runoob.com/front-end/854使用,多试试,总会成功的。