Cloudflare logo

Cloudflare(NET)

Emerging

Global network platform securing 20% of internet traffic; $1.6B revenue growing 28%, expanding into AI inference infrastructure at 300+ edge locations.

Best for: Cloud ServicesEmerging, rapid growth
45
AI Score
Grade C↑ Trending
AI Visibility Score (Beta)
Cloud & InfrastructureCloud ServicesNETWebsiteUpdated March 2026

Company Overview

About Cloudflare

Cloudflare is a global cloud platform providing web performance, security, and network services to millions of websites and applications worldwide. Founded in 2009 by Matthew Prince and Michelle Zatlyn and headquartered in San Francisco, Cloudflare started as a DDoS protection and CDN service and has evolved into one of the most comprehensive network infrastructure platforms, serving as the connectivity layer for nearly 20% of all internet traffic. The company went public in September 2019 at a valuation around $4.5 billion.

Business Model & Competitive Advantage

Cloudflare's network spans 300+ cities across 100+ countries, providing global distribution of content and security services with millisecond latency. The company's product portfolio includes CDN, DDoS mitigation, WAF (Web Application Firewall), Zero Trust security (SASE), serverless compute (Workers), and AI inference infrastructure. Cloudflare's freemium model — offering a powerful free tier — has driven massive adoption among developers and small businesses that serve as leads for enterprise contracts. Revenue in 2024 was $1.6 billion, growing ~28% year-over-year.

Competitive Landscape 2025–2026

In 2025, Cloudflare has positioned its global edge network as AI inference infrastructure — running AI models at edge locations close to users to reduce latency for real-time AI applications. The company's Workers AI and AI Gateway products allow developers to deploy AI models on Cloudflare's 300-city network rather than centralized cloud regions. Cloudflare also launched a significant Zero Trust expansion, competing with Zscaler and Palo Alto Networks for enterprise security budget. With a $40B+ market cap and strong developer loyalty, Cloudflare continues expanding its share of enterprise network and security spending.

Founded
2009
Headquarters
San Francisco, Cloudflare started as a DDoS protection
Revenue
$1.6B
Curated content • Fact-checked and verified

Recent Activity

View all →
release
agents [email protected]

### Patch Changes - [#1686](https://github.com/cloudflare/agents/pull/1686) [`1e49880`](https://github.com/cloudflare/agents/commit/1e498803fe26970aa264678d5ae3a2c96dd28258) Thanks [@threepointone](https://github.com/threepointone)! - Batch and pack chat-persistence SQLite writes to reduce rows written and round-trips. - `agents`: `ResumableStream` now **packs** each buffered group of stream chunks into a single SQLite row (a JSON array of chunk bodies) instead of writing one row per chunk. Single-chunk and large-chunk segments are stored unwrapped, and a per-segment byte cap keeps rows within the 2 MB SQLite row limit. This cuts chunk rows written / stored / scanned-on-replay by up to ~10×. Reads (replay, orphan reconstruction, `getStreamChunks`) transparently unpack both packed segments and legacy per-chunk rows, so existing stored data keeps working. Adds shared `buildInClauseStrings` and `MAX_BOUND_PARAMS` helpers exported from `agents/chat`. - `@cloudflare/ai-chat`: message cleanu

release
agents @cloudflare/[email protected]

### Patch Changes - [#1686](https://github.com/cloudflare/agents/pull/1686) [`1e49880`](https://github.com/cloudflare/agents/commit/1e498803fe26970aa264678d5ae3a2c96dd28258) Thanks [@threepointone](https://github.com/threepointone)! - Batch and pack chat-persistence SQLite writes to reduce rows written and round-trips. - `agents`: `ResumableStream` now **packs** each buffered group of stream chunks into a single SQLite row (a JSON array of chunk bodies) instead of writing one row per chunk. Single-chunk and large-chunk segments are stored unwrapped, and a per-segment byte cap keeps rows within the 2 MB SQLite row limit. This cuts chunk rows written / stored / scanned-on-replay by up to ~10×. Reads (replay, orphan reconstruction, `getStreamChunks`) transparently unpack both packed segments and legacy per-chunk rows, so existing stored data keeps working. Adds shared `buildInClauseStrings` and `MAX_BOUND_PARAMS` helpers exported from `agents/chat`. - `@cloudflare/ai-chat`: message cleanu

release
agents @cloudflare/[email protected]

### Patch Changes - [#1686](https://github.com/cloudflare/agents/pull/1686) [`1e49880`](https://github.com/cloudflare/agents/commit/1e498803fe26970aa264678d5ae3a2c96dd28258) Thanks [@threepointone](https://github.com/threepointone)! - Batch and pack chat-persistence SQLite writes to reduce rows written and round-trips. - `agents`: `ResumableStream` now **packs** each buffered group of stream chunks into a single SQLite row (a JSON array of chunk bodies) instead of writing one row per chunk. Single-chunk and large-chunk segments are stored unwrapped, and a per-segment byte cap keeps rows within the 2 MB SQLite row limit. This cuts chunk rows written / stored / scanned-on-replay by up to ~10×. Reads (replay, orphan reconstruction, `getStreamChunks`) transparently unpack both packed segments and legacy per-chunk rows, so existing stored data keeps working. Adds shared `buildInClauseStrings` and `MAX_BOUND_PARAMS` helpers exported from `agents/chat`. - `@cloudflare/ai-chat`: message cleanu

release
agents [email protected]

### Patch Changes - [#1684](https://github.com/cloudflare/agents/pull/1684) [`ab6dd95`](https://github.com/cloudflare/agents/commit/ab6dd95b791a60fe5a5806852e05d4eeffecf9fd) Thanks [@threepointone](https://github.com/threepointone)! - warn when `chatRecovery` is configured in `onStart()` (applied too late for wake recovery) On every Durable Object wake the SDK evaluates chat-recovery budgets — and may seal an interrupted turn, firing `onExhausted` — **before** the user's `onStart()` runs (`_checkRunFibers()` is ordered ahead of `onStart()`). A `chatRecovery` config produced inside `onStart()` is therefore read as the built-in defaults at the moment recovery decides, so a configured `maxRecoveryWork` / `shouldKeepRecovering` / `onExhausted` silently never applies to the recovery that matters. This is now documented on `ChatRecoveryConfig` and the `chatRecovery` fields of `Think` / `AIChatAgent`, and the SDK logs a one-time warning if it detects `chatRecovery` being reassigned during `on

release
agents @cloudflare/[email protected]

### Patch Changes - [#1684](https://github.com/cloudflare/agents/pull/1684) [`ab6dd95`](https://github.com/cloudflare/agents/commit/ab6dd95b791a60fe5a5806852e05d4eeffecf9fd) Thanks [@threepointone](https://github.com/threepointone)! - warn when `chatRecovery` is configured in `onStart()` (applied too late for wake recovery) On every Durable Object wake the SDK evaluates chat-recovery budgets — and may seal an interrupted turn, firing `onExhausted` — **before** the user's `onStart()` runs (`_checkRunFibers()` is ordered ahead of `onStart()`). A `chatRecovery` config produced inside `onStart()` is therefore read as the built-in defaults at the moment recovery decides, so a configured `maxRecoveryWork` / `shouldKeepRecovering` / `onExhausted` silently never applies to the recovery that matters. This is now documented on `ChatRecoveryConfig` and the `chatRecovery` fields of `Think` / `AIChatAgent`, and the SDK logs a one-time warning if it detects `chatRecovery` being reassigned during `on

release
workers-sdk @cloudflare/[email protected]

### Patch Changes - Updated dependencies [[`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b), [`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b), [`a3eea27`](https://github.com/cloudflare/workers-sdk/commit/a3eea277aae46450aec1f0c811e3fe256022c46e), [`7a6b1a4`](https://github.com/cloudflare/workers-sdk/commit/7a6b1a4f4e9d8d5bd88732c8e11368c3ad7f867b), [`7539a9b`](https://github.com/cloudflare/workers-sdk/commit/7539a9bfcf03a14b2c16f281d541b6bc45523a80), [`3b8b80a`](https://github.com/cloudflare/workers-sdk/commit/3b8b80ab32e3ac33b5df9f6944dca9cdf72c5495), [`0bb2d55`](https://github.com/cloudflare/workers-sdk/commit/0bb2d55116ce90a147582a7b4d96e3090cddf7ee), [`8400fb9`](https://github.com/cloudflare/workers-sdk/commit/8400fb945a781e7a7a78a3614a702ace2d1fbc87), [`b502d54`](https://github.com/cloudflare/workers-sdk/commit/b502d5445b9e9e030020a3d65c0334507393aa64), [`7949f81`](https://gi

release
workers-sdk [email protected]

### Minor Changes - [#14089](https://github.com/cloudflare/workers-sdk/pull/14089) [`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b) Thanks [@alsuren](https://github.com/alsuren)! - Add `migrations_pattern` to D1 database bindings The D1 binding now accepts an optional `migrations_pattern` field, allowing you to point `wrangler d1 migrations apply` and `wrangler d1 migrations list` at migration files in nested layouts (e.g. ORM-generated folders like `migrations/0000_init/migration.sql`). `migrations_pattern` is a glob (relative to the wrangler config file) and defaults to `${migrations_dir}/*.sql`, which preserves today's behaviour. Files that do not match the pattern are not executed. ```jsonc { "d1_databases": [ { "binding": "DB", "database_name": "my-db", "database_id": "...", "migrations_dir": "migrations", "migrations_pattern": "migrations/*/migration.sql" } ] } ``` When no migrations match the configured pattern but files matc

release
workers-sdk @cloudflare/[email protected]

### Minor Changes - [#14089](https://github.com/cloudflare/workers-sdk/pull/14089) [`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b) Thanks [@alsuren](https://github.com/alsuren)! - Add `migrations_pattern` to D1 database bindings The D1 binding now accepts an optional `migrations_pattern` field, allowing you to point `wrangler d1 migrations apply` and `wrangler d1 migrations list` at migration files in nested layouts (e.g. ORM-generated folders like `migrations/0000_init/migration.sql`). `migrations_pattern` is a glob (relative to the wrangler config file) and defaults to `${migrations_dir}/*.sql`, which preserves today's behaviour. Files that do not match the pattern are not executed. ```jsonc { "d1_databases": [ { "binding": "DB", "database_name": "my-db", "database_id": "...", "migrations_dir": "migrations", "migrations_pattern": "migrations/*/migration.sql" } ] } ``` When no migrations match the configured pattern but files matc

release
workers-sdk @cloudflare/[email protected]

### Patch Changes - Updated dependencies [[`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b), [`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b), [`a3eea27`](https://github.com/cloudflare/workers-sdk/commit/a3eea277aae46450aec1f0c811e3fe256022c46e), [`7a6b1a4`](https://github.com/cloudflare/workers-sdk/commit/7a6b1a4f4e9d8d5bd88732c8e11368c3ad7f867b), [`7539a9b`](https://github.com/cloudflare/workers-sdk/commit/7539a9bfcf03a14b2c16f281d541b6bc45523a80), [`1fdd8de`](https://github.com/cloudflare/workers-sdk/commit/1fdd8def456011c29c5879fe49be6fa90ad9858d), [`3b8b80a`](https://github.com/cloudflare/workers-sdk/commit/3b8b80ab32e3ac33b5df9f6944dca9cdf72c5495), [`0bb2d55`](https://github.com/cloudflare/workers-sdk/commit/0bb2d55116ce90a147582a7b4d96e3090cddf7ee), [`8400fb9`](https://github.com/cloudflare/workers-sdk/commit/8400fb945a781e7a7a78a3614a702ace2d1fbc87), [`b502d54`](https://gi

release
workers-sdk [email protected]

### Minor Changes - [#14164](https://github.com/cloudflare/workers-sdk/pull/14164) [`b502d54`](https://github.com/cloudflare/workers-sdk/commit/b502d5445b9e9e030020a3d65c0334507393aa64) Thanks [@G4brym](https://github.com/G4brym)! - Rename the `web_search` binding kind to `websearch` Pre-launch rename of the public binding type from `web_search` to `websearch` so the on-the-wire shape matches the product name (Web Search). The wrangler config key, the binding-type string sent to the Cloudflare API, and the miniflare option key all move from `web_search` / `webSearch` to `websearch`. Update your wrangler config: ```diff - "web_search": { "binding": "WEBSEARCH" } + "websearch": { "binding": "WEBSEARCH" } ``` The runtime `WebSearch` type exposed on `env.WEBSEARCH` is unchanged. - [#13863](https://github.com/cloudflare/workers-sdk/pull/13863) [`3b8b80a`](https://github.com/cloudflare/workers-sdk/commit/3b8b80ab32e3ac33b5df9f6944dca9cdf72c5495) Thanks [@aslakhellesoy](https://github.com/asl

release
speedtest v1.9.2

## What's Changed * ci: add Semgrep OSS scanning workflow by @hrushikeshdeshpande in https://github.com/cloudflare/speedtest/pull/87 * chore: migrate from Yarn to pnpm by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/102 * chore: migrate bundler from Rollup to tsdown by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/103 * test: add unit and e2e tests with Vitest by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/104 * refactor: remove dead code by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/107 * fix: use URL API for query string construction by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/108 * Release v1.9.2 by @github-actions[bot] in https://github.com/cloudflare/speedtest/pull/109 **Full Changelog**: https://github.com/cloudflare/speedtest/compare/v1.9.1...v1.9.2

release
speedtest v1.9.1

## What's Changed * chore: remove all production dependencies by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/89 * ci: migrate to PR-based release workflow by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/90 * Release v1.9.1 by @github-actions[bot] in https://github.com/cloudflare/speedtest/pull/91 * fix(ci): release PR workflow fixes by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/92 * Release v1.9.2 by @github-actions[bot] in https://github.com/cloudflare/speedtest/pull/93 * fix(ci): fix publish workflow OIDC path and reset version by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/94 * Release v1.9.1 by @github-actions[bot] in https://github.com/cloudflare/speedtest/pull/95 **Full Changelog**: https://github.com/cloudflare/speedtest/compare/v1.9.0...v1.9.1

Key Differentiators

Emerging Innovator

Cloudflare is an emerging player bringing innovative solutions to the Infrastructure market.

Enterprise Scale

With $1.6B in revenue, Cloudflare operates at enterprise scale with proven market validation.

Frequently Asked Questions

Estimated Visibility Trend (Beta)

Simulated 8-week rolling score

45
↑ Trending

Based on estimated brand signals. Historical tracking coming soon.

Compare Cloudflare with Competitors

Side-by-side AI visibility scores, platform breakdown, and market position.

For Cloudflare

Claim This Profile

Are you from Cloudflare? Claim your profile to see full AI mention excerpts, get weekly visibility change alerts, and optimize how AI systems describe your brand.

Claim Cloudflare Profile →
For competitors & analysts

Track AI Visibility in Real Time

Monitor how ChatGPT, Gemini, Perplexity, and Claude mention Cloudflare vs competitors. Get alerts when AI recommendations shift.

Start Free Tracking →