Cloudflare's Gross Margin Fell 290 Basis Points. Its Operating Margin Rose 220. Both Come From the Same Trade.
Cloudflare's third quarter was, by its chief executive's own account, the best the company has ever had. Revenue of $782.5 million, up 39% year over year, the fastest growth in nearly four years. Non-GAAP operating income of $137.1 million, a 17.5% margin, the highest in the company's history. It added 158,000 paying customers in three months, nearly double its previous record of more than 80,000 in the prior quarter. More than 5,000 customers now pay it over $100,000 a year.
Gross margin, on the same call, was 72.4%, down 290 basis points from 75.3% a year earlier. Investors sent the stock up about 15% after hours anyway, according to The Register.
Both numbers are correct, and the distance between them is the most useful thing anybody said about the agentic web this quarter. Cloudflare is not getting worse at running infrastructure. It is getting paid in a different place. Gross margin fell 290 basis points while operating expenses fell 510, to 55% of revenue, which is how a company ends up with its highest ever operating margin in the same quarter its product-level economics got thinner. The cost of delivering the work rose. The cost of selling it fell further.
Matthew Prince explained the shift as an architecture argument, and that is where the reporting went. "The container-based architecture of the hyperscalers and neoclouds just can't keep up in a cost-effective way with the new agentic paradigms of today," he said. Cloudflare runs on V8 isolates rather than containers, and he described the company as "the first agentic cloud."
That reads as a declaration that containers are finished. The Register took it roughly that way, and noted, fairly, that the man saying it sells the alternative. But the useful version of the claim is narrower than the headline, and it is about a specific kind of workload rather than a specific kind of software.
The 1,000 menus problem
Prince's illustration is the whole story in one paragraph. Asked to find a restaurant, an agent scours the web, pulls 1,000 menus, and he picks one.
"The problem is that 999 of those restaurants have now had a cost that is just been applied to them, but they are not getting any benefit," he said. "That was always true of the internet, but the scale was different."
Web search always sent some traffic that never converted. What changed is the ratio, and then what the ratio does to the server behind the page. Fastly, which competes with Cloudflare and measures the same phenomenon on its own network, published numbers in June that put a price on the anecdote. Between January and May 2026, AI requests on its platform grew about 30%, roughly 6.5 times faster than human traffic. Claude-related traffic was up more than 555% against its January baseline. In May, 85% of that AI traffic was crawlers and 15% was fetchers, the agents acting on a live request.
The number that matters for anyone paying the bill is this one: fewer than 9% of human requests on Fastly's network require a trip back to origin infrastructure, against more than 51% of AI requests. On a per-request basis, machine traffic touches the expensive part of the stack more than six times as often as a person does. Cached content is nearly free to serve. An agent asking what a menu costs today is not asking for something a CDN can hand back from memory.
That is why traffic growth shows up in a gross margin line, not only in an egress bill. It also explains why the container comparison is being made at all. A request pattern that is continuous, uncached and wildly variable in concurrency is expensive to serve on infrastructure provisioned per instance, because you reserve capacity for a peak that arrives at 3am and never stops arriving.
Where the container claim gets more interesting
Cloudflare Containers went into public beta in June 2025 and reached general availability on 13 April 2026, alongside Sandboxes. Its standard plan supports up to 15,000 concurrent lite instances, 6,000 basic and more than 1,000 larger ones, with CPU billed at $0.00002 per vCPU-second. Cloudflare sells containers, for exactly the workloads isolates cannot run: a full Linux environment with git, bash, a language runtime and a dev server.
The honest reading of Prince's sentence is narrower than the headline. Containers have stopped being the default. Cloudflare's own architecture is two-tier. Isolates take the ephemeral, high-concurrency, code-execution traffic, where the unit of work is a function and a few megabytes of memory. Containers take the work that needs an operating system, which is most of what an agent does when it is actually building something. What he is arguing against is the hyperscaler habit of charging container-shaped capacity for isolate-shaped work.
The distinction matters to anyone modelling cost per request, because it is where the money is. An isolate starts in milliseconds and costs almost nothing at rest. A container carries a kernel and a filesystem reservation whether or not the request inside it is doing anything. At human traffic volumes the difference is a rounding error. At a thousand to one, it is the business model.
Seifert was explicit that this cuts against reported gross margin. The Workers developer platform, he said, carries "slightly lower gross margins, but significantly lower cost to book," and the operating margin expansion is the direct result. The guidance now assumes GAAP profitability in the fourth quarter. The GAAP picture this quarter was still an operating loss of $67.9 million, wider than the $37.5 million a year earlier, and a net loss of $34.1 million against $1.3 million.
The denominator problem
On 3 June, Prince posted that bots had passed human traffic online for the first time. The figure attached was 57.4% of requests to a selection of sites Cloudflare hosts, according to NBC News, or 57.3% of worldwide HTTP requests to HTML content, as Search Engine Land reported it. He had previously expected the crossover at the end of 2027, then early 2027.
Fastly's January 2026 measurement put bots at 49% of all requests across its platform, and 60% of all origin traffic. The two companies are not contradicting each other so much as counting different things: HTML page requests are not API calls, and neither is all packets. Anybody quoting a single bot percentage without the denominator is quoting a number they cannot defend.
The 1,000x figure has a similar status, and its author says so. Thomas Seifert, the CFO, gave it in August with the caveat that he had "called it wrong at every point along the way": if current trends held, non-human traffic would be as much as 1,000 times human traffic within five years, making humans "a rounding error on the internet." Prince, on this call, said he would take the under on his own five-year timeline.
Treat all of it as a direction and a rate, not a forecast. The direction is not in dispute. Traffic is moving from sessions to requests, from cacheable to uncached, and from intermittent to continuous.
The first bill
Cloudflare booked its first revenue in the quarter from what it calls Act 4 products, the ones meant to invent a business model for all of this rather than defend against it. The mechanism is already visible in one partnership. Cloudflare tells OpenAI when a page has changed, so it fetches what moved instead of recrawling everything on a schedule, and OpenAI pays for the signal. Prince's description of where it goes next is micropayments sized to what the agent is willing to say about why it is asking.
Which is one answer to the arithmetic problem he posed in the same breath. Somebody has to pay for 1,000x traffic, and it will not be the restaurants. What makes Cloudflare's position unusual is that it sits on both sides of the transaction: the agents are often built on its network, and the sites they read are often behind it. Between 1 July and the call, by third-party data it cites, it added approximately 5% of the entire web to its network, which Prince said is more than all of its reverse-proxy competitors combined.
The other half of the pitch
Prince spent part of the call arguing that the security market is about to get worse, which is a strange thing for a security vendor to say out loud and a very good thing for one to believe.
"It may seem like the sky is falling with the number of new security vulnerabilities that have been reported over the last few weeks," he said. "I wish I could tell you we were through the worst, but we're not."
He then made a claim about PHP2SHELL that goes beyond anything published at disclosure: that the vulnerability had been exploited in the wild for years before it became public, and that Cloudflare is re-reading its own logs to find out. "I know that we're going to find examples of that." That is an assertion from a company with unusually good vantage on the question, and it is unverified. Cloudflare has not published the log review. Until it does, the claim is a chief executive's expectation, not a finding.
The structural point underneath it is more interesting than the vulnerability. Cloudflare receives quiet disclosure of flaws before they are public, which means it patches first and sells the patch afterwards. The advantage is real, and it is also a reason to read the company's threat commentary as marketing with unusually good data behind it.
What a capacity plan should assume now
What reaches hardware here is the demand curve, not the architecture argument.
Cloudflare spent 15% of revenue on network capex in the quarter and guides to 14% to 15% for the year. The argument Prince makes about that number is not that capex does not matter. It is that work per dollar of capex matters more, and that it is set by how many tenants you can pack into a box's memory and how little state each one needs. He said as much a quarter ago, in a line that drew less attention than the container remark: "How can you get more out of the memory or storage that we have in every box that we have?"
For anyone building or buying the infrastructure, three things are worth putting in writing before the next planning cycle.
What share of your traffic is uncached, and what a 30% increase in that share costs per month at current egress, compute and database connection rates. Growth in requests is not the same as growth in revenue, and the gap is measurable.
Which of your capacity commitments assume a peak-to-average ratio that only holds for human traffic. Fastly's data shows crawler activity running flat across a 24-hour cycle. Traffic that never sleeps does not need a bigger peak. It needs a higher floor, and those are different purchase orders.
Whether your cost per unit of work survives a tenfold drop in the price your customer can charge for it. If the answer is no, the architecture decision in front of you is not a preference.
At DMC we do that work with hardware companies and the organisations buying from them: demand models that separate human-shaped traffic from machine-shaped traffic, cost modelling per unit of work rather than per box, and memory and capacity commitments that hold up when the traffic curve does not look like last year's. If your 2027 plan still assumes the requests are coming from people, let's talk.