WordPress cache preload: 别忘了pagination, /embed/和monthly archive

WARNING: This article may be obsolete
This post was published in 2021-06-24. Obviously, expired content is less useful to users if it has already pasted its expiration date.


2021.08.29更新:本文的python3实现代码:WordPress cache preload code (python3)


这篇文章介绍了什么是(cache) preload:How is the cache preloaded? - WP Rocket Knowledge Base (wp-rocket.me)

如果仅仅是遍历sitemap.xml进行cache preload,往往容易忽略这3种url(它们应该都不会出现在sitemap里):

1,Pagination

往往只有第1页(默认页)会出现在sitemap里,其他页面可能需要手动解析。

2,/embed/

一个典型的/embed/举例如下,它的url为:https://truxton2blog.com/garbage-archives/embed/

像这样的页面当然也不会出现在sitemap等列表中,所以需要手动解析html获取。(table: wp_postmeta里好像也有?但我无法确定这些数据是不是wordpress.org官方引入的)

对速度本来就慢的小站点来说,同一页面里加载多个不同url的/embed/简直就是灾难,不仅要耗费相当长的时间,还影响页面美观性(/embed/区块在等待加载时非常难看)。

3,monthly archive

如果你在widget里面添加了archives,那么就有可能遇到这种格式的链接:

https://truxton2blog.com/2021/08/

https://truxton2blog.com/2021/07/

...

同样,monthly archive一般也不会出现在sitemap里面。获取方式:可以通过一个regex解析html来获取(绝大多数情况下只需要解析1次就可以了):

(?<=href=\')+https:\/\/example.com\/\d+\/\d+\/(?=\')

 Last Modified in 2021-11-29 


Leave a Comment Anonymous comment is allowed / 允许匿名评论