All Collections
How-tos
How caching works in GTranslate network?
How caching works in GTranslate network?

Technical explanation about how our caching system works.

Edvard avatar
Written by Edvard
Updated over a week ago

Our translation proxy may keep cached version of original pages to save traffic, decrease page load time, which potentially can load translated version of the website more quickly than the original version.

Note: This is only for paid plans of GTranslate.

Below you will find description how our system decides to cache a page and how to check the cache status. This will help you to optimize caching for your website and skip some dynamic pages from being cached by GTranslate network.

Note: This article is written for technical persons. If you need help, please contact our live chat.

Cache-Control response header

Our caching system respects Cache-Control response header values. For example if you have set Cache-Control: no-cache for some page, our system will not cache the original content and each time a fresh version will be loaded for translation from your original website.

This is helpful if you have a dynamic page and wish to skip caching for it.

Pragma request header

Our caching system respects Pragma request header values. For example if you request a translated page by having Pragma: no-cache request header set, our system will load a fresh copy before translation.

This header is set by your browser when you make a hard refresh in your browser by Ctrl + F5 for Windows/Unix platforms or ⌘ Cmd + ⇧ Shift + R on Mac.

When there is a hard refresh, the fresh version will be cached by our system for future.

This is useful when you update something in your original version and wish the changes to appear instantly on the translated versions. For that you just need to hard refresh the translated page.

Our caching system checks for presence of gt-no-cache cookie and if it is set our system loads a fresh copy for translation.

This is useful when a static page can become dynamic upon login or some other scenario.

Query string with "dynamic" parameter

Our caching system checks for dynamic parameter in query string of a page and when it is set our system loads a fresh copy for translation. For example http://ru.example.com/?dynamic will always be loaded from original website instead of our cache.

This is useful when you do not have option to control other options described above and is present as an alternative for convenience.

Page size

Our caching system will cache responses less than 1 MB in size only (including compressed responses). Usually HTML pages are less than 100 KB in size, but there are cases when the page size can go beyond this limit, especially when you are in-lining CSS and JavaScript code into your HTML.

GTranslate cache status

We set X-GT-Cache-Status response header for translated pages which provides information about the page cache status. It may have the following values:

  • HIT-ORIG

  • HIT-TRANS

  • PURGED

  • MISS

  • BYPASS

  • OFF

HIT-ORIG is set when we load the original content from our cache.

HIT-TRANS is set when we load the translated content from our cache.

PURGED is set when we have cache on our side, but we deleted it during the request.
MISS is set when there is no cache available on our side and we load the original content from your website.
BYPASS is set when for some reason we should not load the cached version from our cache and it is loaded from the original website. For example this can happen for hard refresh cases.

OFF is set when we have manually turned off caching globally from our side for your website.

In case we have a cached version on our end we also set X-GT-Cache-Age which represents the cache age in seconds.

Did this answer your question?