Speeding Up Laravel with Cloudflare (Step-by-Step Tutorial)
1️⃣ Add Your Site to Cloudflare
First connect your domain to Cloudflare.
Steps:
-
Go to Cloudflare dashboard
-
Click Add Site
-
Enter your domain
-
Change your domain nameservers to Cloudflare
After DNS propagates, Cloudflare starts acting as a CDN + reverse proxy.
Benefits:
-
Global CDN
-
DDoS protection
-
Edge caching
-
Faster loading worldwide
2️⃣ Enable Cloudflare Caching
Laravel pages normally generate dynamically, but many pages can be cached.
Go to:
Cloudflare Dashboard → Caching → Configuration
Recommended settings:
-
Caching Level: Standard
-
Browser Cache TTL: 1 month
-
Always Online: ON
This reduces server load.
3️⃣ Cache Static Assets
Laravel stores assets in:
/public
Example assets:
-
CSS
-
JS
-
Images
-
Fonts
Cloudflare will automatically cache files like:
.css
.js
.png
.jpg
.svg
.webp
Laravel assets from Vite load extremely fast with CDN.
Example asset:
https://yourdomain.com/build/assets/app.js
4️⃣ Use Cache Rules for Laravel Pages
Create a rule to cache blog or news pages.
Example rule:
URL: example.com/posts/*
Cache Level: Cache Everything
Edge Cache TTL: 1 hour
Perfect for:
-
Blogs
-
News
-
Documentation
-
Product pages
Do NOT cache:
/login
/register
/admin
/cart
5️⃣ Enable Cloudflare Performance Features
Go to:
Speed → Optimization
Enable:
✔ Auto Minify (HTML, CSS, JS)
✔ Brotli compression
✔ HTTP/3
✔ Early Hints
These features dramatically reduce page load time.
6️⃣ Use Cloudflare Image Optimization
Enable:
-
Polish
-
Mirage
Benefits:
-
Compress images automatically
-
Improve mobile loading
Example:
Original Image: 2MB
Optimized: 400KB
7️⃣ Protect Laravel from Bots
Enable security features.
Go to:
Security → Bots
Enable:
-
Bot Fight Mode
-
Rate limiting
This protects Laravel from:
-
spam bots
-
scraping
-
brute force attacks
8️⃣ Cache Laravel Responses with Headers
In Laravel you can send cache headers.
Example controller:
return response($posts)
->header('Cache-Control', 'public, max-age=3600');
Cloudflare will cache the response.
9️⃣ Use Laravel Route Caching
Speed up Laravel internally.
Run:
php artisan route:cache
php artisan config:cache
php artisan view:cache
This reduces Laravel boot time.
🔟 Optional: Use Cloudflare APO
APO = Automatic Platform Optimization
Perfect for CMS sites.
It caches HTML pages at the Cloudflare edge.
Speed improvement:
Normal: 600ms
Cloudflare APO: 50ms
Real Performance Result
Example improvement:
| Metric | Before | After |
|---|---|---|
| Page Load | 1.2s | 300ms |
| TTFB | 600ms | 80ms |
| Server Load | High | Low |
Best Laravel + Cloudflare Setup
Recommended stack:
-
Laravel
-
Nginx
-
Redis
-
Cloudflare
This setup is used by many high-traffic Laravel sites.
