WordPress Page Cache based on Google Cloud CDN. Low cost and high performance international page cache.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
admin
controllers
core
docs
includes
languages
tests
.travis.yml
README.md
README.txt
changelog.txt
gc-page-cache.php
index.php
phpunit.xml
uninstall.php

README.md

Build Status Version

Google Cloud CDN Page Cache

This plugin provides a low cost and high performance international page cache solution based on Google Cloud CDN.

Installation

Github Updater

This plugin can be installed and updated using Github Updater (installation instructions)

Installation instructions

Step 1: Install Github Updater and first optimization plugin

Installing and updating the plugins is possible using Github Updater. It is easy to install one of the plugins. You simply need to download the Github Updater plugin (zip file), install it from the WordPress plugin admin panel and copy the Github URL of the plugin into the Github Updater installer.

image

Step 2: Install other optimization plugins with a single click

A recent update of all plugins contains a easy single click install button.

image

WordPress WPO Collection

This plugin is part of a Website Performance Optimization collection that include CSS, Javascript, HTML, Web Font, HTTP/2, Progressive Web App (Service Worker) and Security Header optimization.

The WPO optimization plugins provide in all essential tools that enable to achieve perfect Google Lighthouse Test scores and to validate a website as Google PWA, an important ranking factor for Google's Speed Update (July 2018).

Google Lighthouse Perfect Performance Scores

The WPO optimization plugins are designed to work together with single plugin performance. The plugins provide the latest optimization technologies and many unique innovations.

JSON configuration

100% of the WPO plugin settings are controlled by JSON. This means that you could use the plugins without ever using the WordPress admin forms.

The JSON is verified using JSON schema's. More info about JSON schemas.

Local editing of optimization settings

A recently added Stealth Optimization Config Proxy concept makes it possible to edit the plugin settings using physical .json files from a local editor (with auto upload) making it efficient for fine tuning optimization settings. An update would cost a second compared to using + saving a WordPress admin panel.

https://github.com/o10n-x/wordpress-http2-optimization/releases/tag/0.0.55

Google PageSpeed vs Google Lighthouse Scores

While a Google PageSpeed 100 score is still of value, websites with a high Google PageSpeed score may score very bad in Google's new Lighthouse performance test.

The following scores are for the same site. It shows that a perfect Google PageSpeed score does not correlate to a high Google Lighthouse performance score.

Perfect Google PageSpeed 100 Score Google Lighthouse Critical Performance Score

Google PageSpeed score is outdated

For the open web to have a chance of survival in a mobile era it needs to compete with and win from native mobile apps. Google is dependent on the open web for it's advertising revenue. Google therefor seeks a way to secure the open web and the main objective is to rapidly enhance the quality of the open web to meet the standards of native mobile apps.

For SEO it is therefor simple: websites will need to meet the standards set by the Google Lighthouse Test (or Google's future new tests). A website with perfect scores will be preferred in search over low performance websites. The officially announced Google Speed Update (July 2018) shows that Google is going as far as it can to drive people to enhance the quality to ultra high levels, to meet the quality of, and hopefully beat native mobile apps.

A perfect Google Lighthouse Score includes validation of a website as a Progressive Web App (PWA).

Google offers another new website performance test that is much tougher than the Google PageSpeed score. It is based on a AI neural network and it can be accessed on https://testmysite.thinkwithgoogle.com

Description

Warning: This plugin requires manual configuration of a Google Cloud instance (a free VPS with SSH) and a custom nginx server

The plugin uses a simple concept: use Google's free micro instance for a simple custom Nginx based origin pull server and connect that instance with a Google Cloud CDN front as a international page cache layer. The micro Nginx origin pull server could be used for many domains and subdomains enabling to use the free solution for unlimited sites and pay only for Google Cloud CDN usage costs.

The Nginx server is technically very simple and should perform well on the micro instance.

# Origin pull in nginx 
upstream origin_https {
	server	your-server-IP:443;
}
upstream origin_http {
	server	your-server-IP:80;
}

server {
	listen    443 ssl http2;
	server_name yourdomain.com www.yourdomain.com;

	location / {
		proxy_pass   https://origin_https$uri;
		proxy_set_header   host             $host;
		proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
	}
}

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

	location / {
		proxy_pass   https://origin_http$uri;
		proxy_set_header   host             $host;
		proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
	}
}

Warning: this is a first prototype Nginx server config. The documentation is under construction.

The next step is to setup a Google Cloud Load Balancer with the option CDN enabled. This will create a public caching CDN IP that will access your server via the Nginx proxy. You can connect your domain to the CDN IP via your DNS provider (a simple A record) or use Google's international Cloud DNS.

The CDN will cache content based on HTTP headers which are controlled by the plugin.

The plugin provides in basic management functionality such as controlling the CDN cache expiry. Cache invalidation is not yet possible from PHP but once that's made available by Google it will be added.

We are interested to learn about your experiences and feedback when using this plugin. Please submit your feedback on the Github community forum.