Skip to main content

Accelerate your WordPress website performance for Chinese visitor

Some people say China government blocked Google. But I think it's not blocked. Chinese user is suffering a extremely slow access speed to Google websites actually. I guess China government reduced bandwidth to Google since I can access Google.com in my late night time.



My Blog is running in US. I got very slow access. Initially  I thought it maybe caused by my low-end VPS performance. I tried almost everything I can to optimize my Linux VPS. But no lucky. Few weeks ago, I setup a testing website on my Raspberry Pi by WordPress in my home network. It's ChinaUnicom. Somehow it was also very slow to accessing from China network or US network. Then I put a testing HTML page on the website, it is fast! It more like something wrong on PHP, MYSQL or something else. After deeper dug into the problem, I finally figured out it was caused by WordPress!

WordPress is  using Google Fonts API, it calls Google data from visitor's computer whenever they access your WordPress website. Since it's almost impossible access Google websites in China, so Chinese visitor's IE is stuck on loading Google Fonts for few  minutes. There is no description about that problem on WordPress.com.

So if you want to improve Chinese visitor experience, you have to disable it. I would recommend use Remove Google Fonts References.

有人说中国政府把Google屏蔽了,其实我觉得应该不是屏蔽,因为我半夜里可以访问Google.com。实际上中国用户访问Google只是非常非常慢,我猜测这是因为中国政府把去往Google的带宽降低了。

我的博客放在美国,我自己访问也很慢,一开始我以为是VPS性能太弱导致了,尝试了各种优化还是不行。几周前,我在家里的树莓派上搭建了一个测试网站,也是用WordPress做的空白网站,网络就用的家里的联通ADSL,可是不管从中国还是美国访问依旧很慢。我在树莓派上放了一个HTML静态页 面,那速度突然变得嗖嗖的!这让我开始怀疑WordPress慢的原因可能和PHP、MYSQL或者其他什么东西有关系。最终我发现原来是因为WordPress自己的原因导致的!

WordPress采用Google字体。当用户访问你的网站时,WordPress会从用户端调用Google的数据。由于从中国访问Google网站群很慢,这导致用户端会出现几分钟都无法调用到Google数据,IE的表现就是卡在一个白屏上,看起来好像是你的网站很慢似的。这个问题在WordPress.com官方并没有解释。

所以,如果你想要让中国区的用户在访问你的WordPress网站时得到更好的体验 ,最好禁用掉Google Fonts功能。推荐一个插件Remove Google Fonts References

Popular posts from this blog

Connect-NsxtServer shows "Unable to connect to the remote server"

When you run Connect-NsxtServer in the PowerCLI, it may show "Unable to connect to the remote server".  Because the error message is a little bit confusing with other login issues. It's not easy to troubleshoot. The actual reason is the NSX-T uses a self-signed certificate, and the PowerCLI cannot accept the certificate automatically. The fix is super easy. You need to set the PowerCLI to ignore the invalid certificate with the following command: Set-PowerCLIConfiguration -Scope User -InvalidCertificateAction:Ignore -Confirm:$false

Setup Terraform and Ansible for Windows provisionon CentOS

Provisioning Windows machines with Terraform is easy. Configuring Windows machines with Ansible is also not complex. However, it's a little bit challenging to combine them. The following steps are some ideas about handling a Windows machine from provisioning to post configuration without modifying the winrm configuration on the guest operating system. Install required repos for yum. yum -y install https://repo.ius.io/ius-release-el7.rpm yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm yum -y install epel-release yum -y install yum-utils yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo Install  Terraform . sudo yum -y install terraform Install  Ansible . sudo yum -y install ansible Install  Kerberos . yum -y install gcc python-devel krb5-devel krb5-libs krb5-workstation

How to List All Users in Terraform Cloud

Terraform has a rich API. However, the API documentation does not mention how to list all users. We can leverage the organization membership API and the PowerShell command  Invoke-RestMethod  to get a user list. 1. Create an organization token in Terraform Cloud. 2. Create the token variable ( $Token ) in PowerShell. $Token = "abcde" 3. Create the API parameters variable in PowerShell. $params = @{ Uri = "https://app.terraform.io/api/v2/organizations/ZHENGWU/organization-memberships?page%5Bsize%5D=100" Authentication = "Bearer" Token = $Token ContentType = "application/vnd.api+json" } Note: You need to replace ZHENGWU with your own organization name. And I used 100 at the end of the URI to retrieve the first 100 users. It can be any number.  4. Retrieve the API return and list the user's email address. $Test = Invoke-RestMethod @params $Test.data.attributes.email