Pages Usage Limits, Bandwidth & Billing
In this tutorial, you'll learn about Pages Usage Limits, Bandwidth & Billing. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.
This tutorial explains the usage limits, bandwidth quotas, and billing structure for Cloudflare Pages, helping you plan capacity and avoid unexpected charges. Static Sites on the free plan can serve unlimited bandwidth with no traffic limits, making Pages an attractive option for high-traffic projects. The DodaZIP marketing site serves over 500,000 monthly visitors on the free plan without any usage overages.
Free Plan Limits
Cloudflare Pages offers a generous free tier with unlimited bandwidth and requests. Understanding the limits helps you plan when to upgrade.
flowchart LR A[Free Plan] --> B[Unlimited bandwidth] A --> C[Unlimited requests] A --> D[500 builds per month] A --> E[1 concurrent build] D --> F[3,000 build minutes] E --> G[Queue if busy] style A fill:#f90,color:#fff style B fill:#f90,color:#fff
Build Minutes
Build minutes are the total time your site takes to build across all deployments. Different plans offer different allocations.
// Calculate build minute usage from deployment data
const deployments = [
{ id: 'dep1', duration: 45, status: 'success' },
{ id: 'dep2', duration: 120, status: 'success' },
{ id: 'dep3', duration: 30, status: 'failed' },
{ id: 'dep4', duration: 90, status: 'success' }
];
const totalMinutes = deployments.reduce(function(sum, dep) {
return sum + Math.ceil(dep.duration / 60);
}, 0);
const remainingFree = 3000 - totalMinutes;
const buildsThisMonth = deployments.length;
console.log('Total build minutes used: ' + totalMinutes);
console.log('Remaining this month: ' + remainingFree);
console.log('Builds this month: ' + buildsThisMonth);
// Expected output:
// Total build minutes used: 5
// Remaining this month: 2995
// Builds this month: 4
Bandwidth Monitoring
Although bandwidth is unlimited on the free plan, monitoring helps you understand traffic patterns and plan for scale.
// Estimate bandwidth usage from analytics
async function estimateBandwidth(apiToken, accountId) {
const response = await fetch(
'https://api.cloudflare.com/client/v4/accounts/' + accountId + '/pages/projects',
{ headers: { 'Authorization': 'Bearer ' + apiToken } }
);
if (!response.ok) {
console.log('API error:', response.status);
return;
}
const data = await response.json();
let totalBytes = 0;
for (const project of data.result) {
totalBytes += project.latest_deployment.pages_config.usage || 0;
}
const megabytes = (totalBytes / (1024 * 1024)).toFixed(2);
const gigabytes = (megabytes / 1024).toFixed(2);
console.log('Total bandwidth: ' + megabytes + ' MB');
console.log('Total bandwidth: ' + gigabytes + ' GB');
}
estimateBandwidth('YOUR_TOKEN', 'YOUR_ACCOUNT');
// Expected output:
// Total bandwidth: 1532.45 MB
// Total bandwidth: 1.50 GB
Concurrent Builds
Free plans support 1 concurrent build. Additional builds queue until the current build completes.
// Simulate build queue behavior
class BuildQueue {
constructor(maxConcurrent) {
this.maxConcurrent = maxConcurrent;
this.running = 0;
this.queue = [];
}
addBuild(projectName) {
if (this.running < this.maxConcurrent) {
this.running++;
console.log(projectName + ': Build started immediately');
return;
}
this.queue.push(projectName);
console.log(projectName + ': Queued (position ' + this.queue.length + ')');
}
completeBuild() {
this.running--;
if (this.queue.length > 0) {
const next = this.queue.shift();
this.running++;
console.log(next + ': Build started from queue');
}
}
}
const queue = new BuildQueue(1);
queue.addBuild('docs');
queue.addBuild('blog');
queue.addBuild('admin');
queue.completeBuild();
queue.completeBuild();
// Expected output:
// docs: Build started immediately
// blog: Queued (position 1)
// admin: Queued (position 2)
// blog: Build started from queue
// admin: Build started from queue
Plan Comparison
Choose the right plan based on your project needs.
# Plan comparison summary
# Free: Unlimited bandwidth, 500 builds/mo, 1 concurrent build, 3,000 build minutes
# Pro ($20/mo): Unlimited bandwidth, 5,000 builds/mo, 10 concurrent builds, 6,000 build minutes
# Business ($200/mo): Unlimited bandwidth, 20,000 builds/mo, 50 concurrent builds, 12,000 build minutes
# Enterprise (Custom): Unlimited builds, unlimited concurrent, custom build minutes
FAQ
Practice Questions
- How many build minutes are included in the Cloudflare Pages free plan?
- What happens to a build when the maximum concurrent build limit is reached?
- Which Cloudflare API endpoint returns a list of Pages projects for your account?
Summary
Cloudflare Pages free plan includes unlimited bandwidth, unlimited requests, 500 builds per month, and 3,000 build minutes. Paid plans increase build limits and concurrent builds. Monitor usage through the Cloudflare dashboard or API to plan upgrades as your project grows.
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro — security-first tools for the modern web.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro