
Grab your gear: The official Sanity swag store
Read Grab your gear: The official Sanity swag storeI feel you on this one - it's frustrating when request counts don't match what you'd expect from actual human traffic. Based on your description and what I know about Sanity's API CDN, here are some likely culprits:
1. The token bypass issue
This is probably the biggest one: if you're passing an authorization token (even a read token) to your Sanity client, you're completely bypassing the API CDN. Every single request hits the origin API directly, no matter what your caching setup looks like.
In your PHP client config, make sure you're doing:
$client = new SanityClient([
'projectId' => 'your-project',
'dataset' => 'production',
'useCdn' => true, // This alone isn't enough!
'token' => null, // Don't pass a token for public reads
'apiVersion' => '2025-02-06'
]);The API CDN provides unlimited rate for cached content, but any request with an authorization header bypasses it entirely and counts against your plan limits.
2. GROQ queries with dynamic functions
If your queries use functions like now(), dateTime(), or reference _updatedAt in ways that change constantly, the API CDN can't cache them effectively. Each "unique" query (even with the same structure but different timestamps) counts as a separate request.
3. Bot and crawler traffic
Even with server-side caching, if bots are hitting different pages/URLs on your site, each unique URL might trigger its own set of Sanity queries. SEO crawlers, monitoring services, and malicious bots can generate surprising request volumes. They might be:
4. Draft/preview mode leakage
If you have any preview functionality that queries draft content, those requests will bypass the CDN entirely since draft content can't be cached. Check if you accidentally have useCdn: false in some client instances.
Since Sanity's already helped you investigate, here are some additional things to check:
foreach over query results accidentally triggers nested queries, multiplying requests exponentiallyYour observation about more aggressive caching leading to more requests is particularly interesting. This could indicate:
The fact that this is happening with fewer actual visits but more requests strongly suggests either bot traffic or some kind of automated process that's not directly tied to page views.
useCdn: false configurations - Search your codebase for thisHope this helps narrow it down! If you share more about your PHP caching implementation or can identify which specific queries are generating the most requests, the community might spot something specific to that setup.
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.
Content operations
Content backend


The only platform powering content operations
By Industry


Tecovas strengthens their customer connections
Build and Share

Grab your gear: The official Sanity swag store
Read Grab your gear: The official Sanity swag store