Uma boa abordagem é inspecionar o tráfego com o vernizlog para ver o que faz com que as regras se apliquem.
Como você não está aplicando um TTL, meu palpite é que o site wordpress fornece cabeçalhos de Cache-Control como "max-age: 0" ou "no-cache" "private" ou algo assim, e o verniz respeita esses cabeçalhos a menos que você diga especificamente que não, por exemplo:
sub vcl_fetch {
if (!(req.url ~ "wp-(login|admin)")) {
unset beresp.http.set-cookie;
set beresp.ttl = 3600s;
}
A primeira regra em vcl_fetch não faz sentido, já que a segunda regra irá cancelar todos os set-cookies para todos os urls, exceto wp-login / wp-admin.
Adicione alguma configuração ao vcl_deliver para os cabeçalhos de saída que indicam se é um hit ou não:
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
return (deliver);
}
Outro feedback para a sua configuração:
Em vcl_recv, você "desconfigura req.http.cookie" se url não for wp-login ou wp-admin, o que significa que se um usuário efetuar login no / wp-login, então irá para "/", você irá desanexar seu biscoito. Você precisa apenas desmarcar cookies em vcl_recv para urls que nunca precisem de um, ie (js | css | png | jpg) etc, e em vez disso remover o set-cookie em vcl_fetch.