Caching Score: https://www.dfat.gov.au/

Summary

GradeA+

583/603

Requested URL checks

What is this check, and why should you care

Having a cache hit ensures the fastest possible delivery of content to end users.

The response header X-Cache had a value of TCP_HIT from a23-214-88-108.deploy.akamaitechnologies.com (AkamaiGHost/11.6.2.1-58447958) (-).

Akamai has documentation on how to interpret the X-Cache and X-Cache-Remote headers.

Maximum possible points

100

What is this check, and why should you care

Using a CDN is extremely useful for caching purposes.

Maximum possible points

50

What is this check, and why should you care

The time that it takes for a user's browser to receive the first byte of page content.

The lower the TTFB, the faster your site will be perceived by the end user.

In order to get maximum points, your TTFB must be less than or equal to 30ms. If your TTFB is more than 1 second then you get no points here.

Maximum possible points

50

What is this check, and why should you care

Using ETag identifiers is an easy way to ensure your visitors are always getting the most up-to-date version of the content. This mechanism allows caches to be more efficient and saves bandwidth, as a Web server does not need to send a full response if the content has not changed. HTTP 304 responses are used to indicate this is working.

An HTTP request with the request header If-None-Match with a value of "1725707158" was sent, and an HTTP 304 was responded with.

Akamai has documentation on how to enable Etag support (requires login).

See the Wikipedia page on ETag for more background.

In order to get maximum points, you need to have ETag identifiers and an HTTP 304 response must be received when using a valid If-None-Match request header.

Maximum possible points

30

What is this check, and why should you care

Using Last-Modified headers is an easy way to ensure your visitors are always getting the most up-to-date version of the content. HTTP 304 responses are used to indicate this is working.

An HTTP request with the request header If-Modified-Since with a value of Sat, 07 Sep 2024 11:05:58 GMT was sent, and an HTTP 304 was responded with.

Maximum possible points

30

What is this check, and why should you care

Having tiered caching can help improve the cache hit ratio of your site because it provides an additional layer of caching in front of your origin.

Maximum possible points

25

What is this check, and why should you care

Caching HTTP 404s is a great way to offload requests from your origin.

In order to get maximum points, you need to have the ability to cache an HTTP 404 for any amount of time.

This check requested the URL https://www.dfat.gov.au/cachingscorebrokenurltest.

Maximum possible points

20

What is this check, and why should you care

Drupal 8+ provides an Internal Page Cache module that is recommended for small to medium-sized websites.

There is extremely limited value in using this module, even when you are using Akamai and having a relatively high cache lifetime of 1 week.

In order to get maximum points, you must have the module page_cache disabled.

See Drupal's documentation on the Internal Page Cache module. Also, Wim Leers wrote a really awesome blog post on the release of this module with important background.

Maximum possible points

20

What is this check, and why should you care

Akamai has very strict controls around cache tag lengths, counts and characters. If you exceed or break these controls then you risk your content not being invalidated when you issue a cache tag purge.

No issues found.

See the Akamai technical documentation on how to interpret this header.

Maximum possible points

10

What is this check, and why should you care

CSS aggregation reduces the number of assets your site needs to download. The filename contains a hash of all the file contents, meaning you can cache these files for an extremely long time with no negative consequences.

Maximum possible points

10

What is this check, and why should you care

Javascript aggregation reduces the number of assets your site needs to download. The filename contains a hash of all the file contents, meaning you can cache these files for an extremely long time with no negative consequences.

Maximum possible points

10

What is this check, and why should you care

Drupal 9.5+ introduces a new debug setting to make it easier to debug render caching. This setting will add cache debugging output for each rendered element.

The main issue with this is that this slows down your page loads (on top increasing your page weight).

In order to get maximum points, you must disable the render cache debug.

Maximum possible points

10

What is this check, and why should you care

Drupal 7+ provides a Statistics module to which records content view statistics in Drupal's database.

The main issue with this module is that it sends an un-cacheable HTTP POST request to your site to record a 'content view' statistic. This does not scale well as you Drupal site gets more traffic.

In order to get maximum points, you must disable the statistics module.

Maximum possible points

10

What is this check, and why should you care

Drupal 8+ uses Twig for templating, and the Twig template engine offers a debug tool to which emits out a list of template filenames in the HTML source.

The main issue with this is that you often also have other Twig related performance issues as well, e.g. automatic reloading.

In order to get maximum points, you must disable Twig debug.

Maximum possible points

10

What is this check, and why should you care

You can increase the cache hit rate of your site by stripping certain query parameters from the cache key.

FBCLID is one such parameter that can be stripped by your caching server. This query parameter only really serves a purpose for Javascript to read, and Javascript can still read it from the browser URL.

This check requested the URL https://www.dfat.gov.au/?fbclid=1725760844.

Maximum possible points

10

What is this check, and why should you care

You can increase the cache hit rate of your site by stripping certain query parameters from the cache key.

GCLID and GCLSRC are two such parameters that can be stripped by your caching server. These query parameters only really serve a purpose for Javascript to read, and Javascript can still read it from the browser URL.

This check requested the URL https://www.dfat.gov.au/?gclsrc=1725760844&gclid=1725760844.

Maximum possible points

10

What is this check, and why should you care

You can increase the cache hit rate of your site by stripping certain query parameters from the cache key.

UTM is a collection of parameters that can be stripped by your caching server. These query parameters only really serve a purpose for Javascript to read, and Javascript can still read them from the browser URL.

This check requested the URL https://www.dfat.gov.au/?utm_source=1725760844&utm_medium=1725760844&utm_campaign=1725760844&utm_id=1725760844.

Maximum possible points

10

What is this check, and why should you care

There is a SPAM protection module in Drupal called Honeypot.

The honeypot module has a feature that adds a time based hidden form field to forms to protect against bots filling them in too quickly. This is a nice feature, however it happens to disable caching for the entire page. This is terrible for high traffic sites.

It is recommended to disable this time based feature, and only use the core honeypot feature of a hidden input field.

Maximum possible points

5

What is this check, and why should you care

There are 2 filesystems in Drupal - public files and private files.

Private files force Drupal to bootstrap in order to serve the file, and access control is checked every single time. This is useful for sensitive files, but a hindrance when your site is under high load.

It is recommended to use Drupal's public file system for static, non-sensitive files, and reserve the use of private files for dynamic, or sensitive files.

Maximum possible points

5

What is this check, and why should you care

Using a long cache lifetime helps to ensure a high cache hit rate.

In order to get maximum points, your cache lifetime must be greater than or equal to 4 weeks. If your cache lifetime is less, then you will get some proportion of the score based on how close to 4 weeks you are.

Current cache lifetime is 604800 seconds (1 week).

Maximum possible points

100

Image checks

Performed on the asset: https://www.dfat.gov.au/themes/custom/dfat/logo.png

See the HTTP headers for this image file.

What is this check, and why should you care

Having a cache hit ensures the fastest possible delivery of content to end users.

The response header X-Cache had a value of TCP_MEM_HIT from a23-214-88-108.deploy.akamaitechnologies.com (AkamaiGHost/11.6.2.1-58447958) (-).

Akamai has documentation on how to interpret the X-Cache and X-Cache-Remote headers.

Maximum possible points

10

What is this check, and why should you care

Using a long cache lifetime helps to ensure a high cache hit rate.

In order to get maximum points, your cache lifetime must be greater than or equal to 4 weeks. If your cache lifetime is less, then you will get some proportion of the score based on how close to 4 weeks you are.

Current cache lifetime is 2628001 seconds (1 month and 2 days).

Maximum possible points

10

What is this check, and why should you care

Using ETag identifiers is an easy way to ensure your visitors are always getting the most up-to-date version of the content. This mechanism allows caches to be more efficient and saves bandwidth, as a Web server does not need to send a full response if the content has not changed. HTTP 304 responses are used to indicate this is working.

An HTTP request with the request header If-None-Match with a value of "66b08533-5567" was sent, and an HTTP 304 was responded with.

Akamai has documentation on how to enable Etag support (requires login).

See the Wikipedia page on ETag for more background.

In order to get maximum points, you need to have ETag identifiers and an HTTP 304 response must be received when using a valid If-None-Match request header.

Maximum possible points

3

What is this check, and why should you care

Using Last-Modified headers is an easy way to ensure your visitors are always getting the most up-to-date version of the content. HTTP 304 responses are used to indicate this is working.

An HTTP request with the request header If-Modified-Since with a value of Mon, 05 Aug 2024 07:54:27 GMT was sent, and an HTTP 304 was responded with.

Maximum possible points

3

CSS checks

Performed on the asset: https://www.dfat.gov.au/sites/default/files/css/css_mSht8e9oSgyYeHMUSZg5PTshregKqnkPOpo-5j98nxQ.css?delta=0&language=en&theme=dfat&include=eJxdzVEKwzAMA9ALpc2Ritq4manjhNjZ6O03tsLGfvTxQFKuNQstUMjpvFnMfxDsNKcSVxiFtMNjlrpCJvNTWHMgdfZzobJSihuac9XQ0JE72s1i6qNB5q_MQ9tYhe1GKdyZHhbfOZeahlwnJrwd04Zeh5F8bPDBPhWwTor7r0G5wK9qJyRrhIN6eE3yztQtsrI_ASeAXBM

See the HTTP headers for this CSS file.

What is this check, and why should you care

Having a cache hit ensures the fastest possible delivery of content to end users.

The response header X-Cache had a value of TCP_MEM_HIT from a23-214-88-108.deploy.akamaitechnologies.com (AkamaiGHost/11.6.2.1-58447958) (-).

Akamai has documentation on how to interpret the X-Cache and X-Cache-Remote headers.

Maximum possible points

10

What is this check, and why should you care

Using a long cache lifetime helps to ensure a high cache hit rate.

In order to get maximum points, your cache lifetime must be greater than or equal to 4 weeks. If your cache lifetime is less, then you will get some proportion of the score based on how close to 4 weeks you are.

Current cache lifetime is 2628001 seconds (1 month and 2 days).

Maximum possible points

10

What is this check, and why should you care

Using ETag identifiers is an easy way to ensure your visitors are always getting the most up-to-date version of the content. This mechanism allows caches to be more efficient and saves bandwidth, as a Web server does not need to send a full response if the content has not changed. HTTP 304 responses are used to indicate this is working.

An HTTP request with the request header If-None-Match with a value of "669f421e-1e87" was sent, and an HTTP 304 was responded with.

Akamai has documentation on how to enable Etag support (requires login).

See the Wikipedia page on ETag for more background.

In order to get maximum points, you need to have ETag identifiers and an HTTP 304 response must be received when using a valid If-None-Match request header.

Maximum possible points

3

What is this check, and why should you care

Using Last-Modified headers is an easy way to ensure your visitors are always getting the most up-to-date version of the content. HTTP 304 responses are used to indicate this is working.

An HTTP request with the request header If-Modified-Since with a value of Tue, 23 Jul 2024 05:39:42 GMT was sent, and an HTTP 304 was responded with.

Maximum possible points

3

Javascript checks

Performed on the asset: https://www.dfat.gov.au/themes/custom/dfat/js/readspeaker/readspeaker.min.js?pids=embhl

See the HTTP headers for this Javascript file.

What is this check, and why should you care

Having a cache hit ensures the fastest possible delivery of content to end users.

The response header X-Cache had a value of TCP_HIT from a23-214-88-108.deploy.akamaitechnologies.com (AkamaiGHost/11.6.2.1-58447958) (-).

Akamai has documentation on how to interpret the X-Cache and X-Cache-Remote headers.

Maximum possible points

10

What is this check, and why should you care

Using a long cache lifetime helps to ensure a high cache hit rate.

In order to get maximum points, your cache lifetime must be greater than or equal to 4 weeks. If your cache lifetime is less, then you will get some proportion of the score based on how close to 4 weeks you are.

Current cache lifetime is 2628001 seconds (1 month and 2 days).

Maximum possible points

10

What is this check, and why should you care

Using ETag identifiers is an easy way to ensure your visitors are always getting the most up-to-date version of the content. This mechanism allows caches to be more efficient and saves bandwidth, as a Web server does not need to send a full response if the content has not changed. HTTP 304 responses are used to indicate this is working.

An HTTP request with the request header If-None-Match with a value of "66cd1293-57988" was sent, and an HTTP 304 was responded with.

Akamai has documentation on how to enable Etag support (requires login).

See the Wikipedia page on ETag for more background.

In order to get maximum points, you need to have ETag identifiers and an HTTP 304 response must be received when using a valid If-None-Match request header.

Maximum possible points

3

What is this check, and why should you care

Using Last-Modified headers is an easy way to ensure your visitors are always getting the most up-to-date version of the content. HTTP 304 responses are used to indicate this is working.

An HTTP request with the request header If-Modified-Since with a value of Mon, 26 Aug 2024 23:41:07 GMT was sent, and an HTTP 304 was responded with.

Maximum possible points

3

HTTP Response headers

Name Value
Status Code HTTP 200
Cache-Controlmax-age=604800, public
Connectionkeep-alive, Transfer-Encoding
Content-Languageen
Content-Typetext/html; charset=UTF-8
DateSun, 08 Sep 2024 02:00:43 GMT
ETag"1725707158"
Edge-Cache-Tag3f7gr 3ragd 798kd 2skph 3o20c 3kvmk 77m6d 50a3n 4i0h8 6h1h1 6b4hk jgsb7 4r0kb 2odvf hj046 b5cmr 2ktgv 4crnl 4d6td 62l7n 7oo19 3d8o0 7gn1q 2o1kn d8oon 7i3p7 52jl0 2if5m 1rcg6 7ie5u 3lo15 7l7fe 6v73l pcm7v 68mfi 23dub 76n8p 56v37 22eti 1f9r6 epdod 1940o s69ft 429ug 79bkm h7fnt 7slsi 44ec1 29q1p 68dkv 4glg4 9hn5g 4rnje 3aht4 6lebt 68sia 7r1p6 ic3d4 19rr7 4dn82 5mbki 3eoeg ag8j2 kk0ga 6dual 3c070 67ocs 2ee2f 30emj 2pv7c 398qi 37f06 5vto7 7f2o5 7bnc8 6bui6 3n9k6 ucvkc 58qov 439do 2uhld 6nsf5 3tvjf bc60d 699pm 1d6i0 15cfl 78dqo 25j3d 7f5l8 2oo5v 55ka7 50iav 5q80u 67h67 5n3fi 2veei 1i9fv 33vch 17k8j 4lr0k 74ket 3bcmh 44ccv 6043r 6hg87 1l403 783e7 2m0o7 5h1k9 60obj 1gdrh 35hhb 72grh 1t2bp 20ti7 5sqpp 3iv4o 5hv5i 70m0t ove0u 10l1e 3mai2 2oa6h 1umpi 7o853 5ufk7 4qhft 6mkpv 3t25n 9o7di 7ngka 10j7m 3j8q3 44rp6 4loav 29hrc 6u2iv 2edjq 6rdou na9ta 39caf nis1v 5nus4 1ubt9 0ud5o 2suq2 3j19q 2r7k2 56etr 5bm9u 3uakg 3c5no 75m4k 72r03 3b11i 14o1o 7ifkr 2vuk8 11uot 0dh11 3jsu7 c5ibi 7iunq 7i099 1tnub 70tv5 5s7n0 25jop 2m8to 4a9db 68m43 6slak 7vmt0 1f2b7 vpsk4 6g95o 1iqbr 1nd4r 7u5bs 6i147 5ue6u 55f3j 1620a 5dasf 1rulq 5gjuk 4jcme 2u960 53tbv 5h6mp 3vsjq 6ftjd 4qj96 505do 2i0lt 2c266 7ugrv 40ueo 212q1 1igsi 6be34 5uugc 3nhfr 6oeg8 6n42g 74b1b 2lra4 1a9du 3dbv4 3q92u 1m4at 5rj8i 7tkqm 1mfht 260ft 6634q cd1ls 4ipas 5dktj 6ajf7 6f0ah 3v73u 62oo5 7cenr 7684f 4uv07 4jbnl 514pm 19s3q 1n2h3 6g631 2esh7 7fuuc 3o2tk 17e8p 4eqti 133ln 6mmve 12dot 5lm96 ib96n 6b2sn 6kls4 2ps24 4q7ii 7houu 18oro 1pc3p 7e3ld 638al svnhk 3u3ai 4m6gl 4tr7i 1gbem 55lf3 40aij 6l7cf 7rka9 19a55 28aoq 1pjnc 24b6m 1qic9 2aa2v 5ik7g 4h6b1 2m4am 33ru2 7n5au 2do1g 1diug 7tfjc k85g5 7foen 48fu0 2odcl 6osdl 523iv 68n11 7d01q 1mbr2 3mmh7 130gr 66ape 1ve1d 5mvbn 3ur2m 54hg8 5u9kq 6uo0m 3qikq 57ok5
ExpiresSun, 19 Nov 1978 05:00:00 GMT
Last-ModifiedSat, 07 Sep 2024 11:05:58 GMT
Transfer-Encodingchunked
X-Akamai-Transformed9 - 0 pmb=mTOE,1
X-CacheTCP_HIT from a23-214-88-108.deploy.akamaitechnologies.com (AkamaiGHost/11.6.2.1-58447958) (-)
X-Cache-KeyS/L/39244/908282/1d/www.dfat.gov.au/?akamai-transform=9
X-Cache-Key-Extended-Internal-Use-OnlyS/L/39244/908282/1d/www.dfat.gov.au/?akamai-transform=9 vcd=6147
X-Check-CacheableYES
X-Lagoonamazeeio-govcms5>sigsci-ingress-nginx>dfat-master:nginx>

If you want to do this yourself

You can use the following cURL command:

curl -sLIXGET -H 'Pragma: akamai-x-cache-on, akamai-x-cache-remote-on, akamai-x-check-cacheable, akamai-x-get-cache-key, akamai-x-get-cache-tags' 'https://www.dfat.gov.au/' | sort