<?php switch($modx->event->name){ case 'OnWebP

switch($modx->event->name){
    case 'OnWebPageComplete': 
        if (!empty($modx->resource) 
            && $modx->resource->get('cacheable') 
            && $modx->resource->get('published') 
            && $modx->resource->_output != ''
            && $_SERVER['REQUEST_METHOD'] == 'GET'
        )
            
        {
            $key = 'index.php?';
            
            $key .= str_replace('&', '&',($_SERVER['QUERY_STRING']));
               
            $modx->log(1, "Key:  '{$key}'");
              
            $modx->cacheManager->set($key , $modx->resource->_output);
        }
        break;
        
    default:;
}

Проверка на GET чтобы если отправили форму не кешировалась страница с ответом.

$key = 'index.php?';

Чтобы ключ был красивее. Modx его все равно модифицирует. в

$this->key . '/' . $key;

$this->key это системная настройка cache_key Так что если cache_key = site.com Тогда в конфиге nginx пишем

set  $memcached_key       "site.com$uri?$args";