I have a wordpress installation on GAE. It is a website that will be very sparsely updated, and will have few visitors each day (100 ish max). I would like to cache this website to minimize cloudSQL costs.
What Steps should I take to minimize the starting of my CloudSQL instances?
I have installed the MEMCACHED plugin and my BATCACHED Plugin.
my wp-config has the following:
$batcache = [
'seconds'=>0,
'max_age'=>300*60, // 300 minutes
'debug'=>false
];
My app.yaml:
application: MY ID
version: 104
runtime: php
api_version: 1
default_expiration: "1d"
handlers:
- url: /(.*.(htm$|html$|css$|js$))
static_files: wordpress/1
upload: wordpress/.*.(htm$|html$|css$|js$)
application_readable: true
- url: /wp-content/(.*.(ico$|jpg$|png$|gif$))
static_files: wordpress/wp-content/1
upload: wordpress/wp-content/.*.(ico$|jpg$|png$|gif$)
application_readable: true
- url: /(.*.(ico$|jpg$|png$|gif$))
static_files: wordpress/1
upload: wordpress/.*.(ico$|jpg$|png$|gif$)
application_readable: true
- url: /wp-admin/(.+)
script: wordpress/wp-admin/1
secure: always
- url: /wp-admin/
script: wordpress/wp-admin/index.php
secure: always
- url: /wp-login.php
script: wordpress/wp-login.php
secure: always
- url: /wp-cron.php
script: wordpress/wp-cron.php
login: admin
- url: /xmlrpc.php
script: wordpress/xmlrpc.php
- url: /(.*.(appcache|manifest))
mime_type: text/cache-manifest
static_files: wordpress/1
upload: wordpress/(.*.(appcache|manifest))
expiration: "0m"
application_readable: true
- url: /(.*.atom)
mime_type: application/atom+xml
static_files: wordpress/1
upload: wordpress/(.*.atom)
expiration: "1h"
application_readable: true
- url: /(.*.crx)
mime_type: application/x-chrome-extension
static_files: wordpress/1
upload: wordpress/(.*.crx)
application_readable: true
- url: /(.*.css)
mime_type: text/css
static_files: wordpress/1
upload: wordpress/(.*.css)
application_readable: true
- url: /(.*.eot)
mime_type: application/vnd.ms-fontobject
static_files: wordpress/1
upload: wordpress/(.*.eot)
application_readable: true
- url: /(.*.htc)
mime_type: text/x-component
static_files: wordpress/1
upload: wordpress/(.*.htc)
application_readable: true
- url: /(.*.html)
mime_type: text/html
static_files: wordpress/1
upload: wordpress/(.*.html)
expiration: "1h"
application_readable: true
- url: /(.*.ico)
mime_type: image/x-icon
static_files: wordpress/1
upload: wordpress/(.*.ico)
expiration: "7d"
application_readable: true
- url: /(.*.js)
mime_type: text/javascript
static_files: wordpress/1
upload: wordpress/(.*.js)
application_readable: true
- url: /(.*.json)
mime_type: application/json
static_files: wordpress/1
upload: wordpress/(.*.json)
expiration: "1h"
application_readable: true
- url: /(.*.m4v)
mime_type: video/m4v
static_files: wordpress/1
upload: wordpress/(.*.m4v)
application_readable: true
- url: /(.*.mp4)
mime_type: video/mp4
static_files: wordpress/1
upload: wordpress/(.*.mp4)
application_readable: true
- url: /(.*.(ogg|oga))
mime_type: audio/ogg
static_files: wordpress/1
upload: wordpress/(.*.(ogg|oga))
application_readable: true
- url: /(.*.ogv)
mime_type: video/ogg
static_files: wordpress/1
upload: wordpress/(.*.ogv)
application_readable: true
- url: /(.*.otf)
mime_type: font/opentype
static_files: wordpress/1
upload: wordpress/(.*.otf)
application_readable: true
- url: /(.*.rss)
mime_type: application/rss+xml
static_files: wordpress/1
upload: wordpress/(.*.rss)
expiration: "1h"
application_readable: true
- url: /(.*.safariextz)
mime_type: application/octet-stream
static_files: wordpress/1
upload: wordpress/(.*.safariextz)
application_readable: true
- url: /(.*.(svg|svgz))
mime_type: images/svg+xml
static_files: wordpress/1
upload: wordpress/(.*.(svg|svgz))
application_readable: true
- url: /(.*.swf)
mime_type: application/x-shockwave-flash
static_files: wordpress/1
upload: wordpress/(.*.swf)
application_readable: true
- url: /(.*.ttf)
mime_type: font/truetype
static_files: wordpress/1
upload: wordpress/(.*.ttf)
application_readable: true
- url: /(.*.txt)
mime_type: text/plain
static_files: wordpress/1
upload: wordpress/(.*.txt)
application_readable: true
- url: /(.*.unity3d)
mime_type: application/vnd.unity
static_files: wordpress/1
upload: wordpress/(.*.unity3d)
application_readable: true
- url: /(.*.webm)
mime_type: video/webm
static_files: wordpress/1
upload: wordpress/(.*.webm)
application_readable: true
- url: /(.*.webp)
mime_type: image/webp
static_files: wordpress/1
upload: wordpress/(.*.webp)
application_readable: true
- url: /(.*.woff)
mime_type: application/x-font-woff
static_files: wordpress/1
upload: wordpress/(.*.woff)
application_readable: true
- url: /(.*.xml)
mime_type: application/xml
static_files: wordpress/1
upload: wordpress/(.*.xml)
expiration: "1h"
application_readable: true
- url: /(.*.xpi)
mime_type: application/x-xpinstall
static_files: wordpress/1
upload: wordpress/(.*.xpi)
application_readable: true
# audio files
- url: /(.*.(mid|midi|mp3|wav))
static_files: wordpress/1
upload: wordpress/(.*.(mid|midi|mp3|wav))
application_readable: true
# windows files
- url: /(.*.(doc|exe|ppt|rtf|xls))
static_files: wordpress/1
upload: wordpress/(.*.(doc|exe|ppt|rtf|xls))
application_readable: true
# compressed files
- url: /(.*.(bz2|gz|rar|tar|tgz|zip))
static_files: wordpress/1
upload: wordpress/(.*.(bz2|gz|rar|tar|tgz|zip))
application_readable: true
- url: /wp-(.+).php
script: wordpress/wp-1.php
- url: /(.+)?/?
script: wordpress/index.php
I would like to know all the ways to reduce wordpress starting my CloudSQL instance. Also, I would like to know how to check if caching is correctly working or not.
currently, even when I visit a page without logging into wordpress, it shows a CloudSQL instance started(one active connection), which I believe should not be the case if caching is working properly
I am fairly certain that even when using batcache, WordPress core will still attempt to connect to the SQL database to ensure the connection is valid.
You need to investigate one of the static full page caching plugins to try and achieve what you’re after – they seem to have options that will return pages without loading up WordPress core.
If you have set up Scheduled Tasks to hit wp-cron.php on a frequent basis you might want to consider reducing the frequency of that this runs.