How to enable CDN for better performance on DigitalOcean

intermediate 8 min read Updated 2026-04-20
Quick Answer

Enable DigitalOcean CDN by accessing Spaces CDN in your control panel, creating or selecting a Space, and configuring CDN settings with custom domain. This significantly improves global content delivery performance by caching static assets across multiple edge locations worldwide.

Prerequisites

  • Active DigitalOcean account
  • Existing Droplet or App Platform deployment
  • Domain name configured
  • Basic understanding of DNS settings

Step-by-Step Instructions

1

Access DigitalOcean Spaces

Log into your DigitalOcean control panel and navigate to ManageSpaces from the left sidebar. If you don't have an existing Space, click Create a Space to set up a new one. Select your preferred datacenter region and choose a unique name for your Space.
Choose a datacenter region closest to your primary audience for optimal performance
2

Enable CDN for your Space

In your Space dashboard, click on the Settings tab. Locate the CDN section and toggle the Enable CDN switch to the on position. DigitalOcean will automatically generate a CDN endpoint URL in the format spacename.region.cdn.digitaloceanspaces.com.
CDN enabling typically takes 5-10 minutes to propagate globally
3

Configure custom domain (optional)

To use a custom domain with your CDN, click Add Custom Domain in the CDN settings. Enter your subdomain (e.g., cdn.yourdomain.com) and click Add Domain. DigitalOcean will provide a CNAME record that you need to add to your DNS provider pointing to your CDN endpoint.
Use a subdomain like 'cdn' or 'static' to clearly identify cached content
4

Upload static assets

Upload your static files (images, CSS, JavaScript, videos) to your Space using the web interface, API, or s3cmd. Organize files in folders for better management. Set appropriate file permissions by selecting files and clicking Manage PermissionsPublic for publicly accessible content.
Compress images and minify CSS/JS files before uploading for better performance
5

Update application URLs

Modify your application code to reference static assets using your CDN URLs instead of local paths. Replace references like /images/logo.png with https://spacename.region.cdn.digitaloceanspaces.com/images/logo.png or your custom domain URL.
Use environment variables to easily switch between local and CDN URLs
6

Configure cache headers

Set appropriate cache headers for your files by selecting them in your Space and clicking Edit Metadata. Add Cache-Control headers like max-age=31536000 for static assets that rarely change, or shorter values for frequently updated content.
Use longer cache times for assets with versioned filenames
7

Test CDN performance

Verify your CDN is working by accessing your static assets through the CDN URL. Check response headers to confirm x-cache: HIT for cached content. Use tools like GTmetrix or Google PageSpeed Insights to measure performance improvements and ensure assets are loading from edge locations.
Test from different geographic locations to verify global CDN distribution

Common Issues & Troubleshooting

CDN not serving updated files

Clear the CDN cache by going to your Space settings, clicking Purge CDN Cache, and waiting 5-10 minutes for propagation. Consider implementing cache-busting with query parameters or versioned filenames.

Custom domain not working

Verify your CNAME record is correctly configured in your DNS provider pointing to the CDN endpoint. Use dig cdn.yourdomain.com to check DNS propagation, which can take up to 48 hours.

403 Forbidden errors on assets

Check file permissions in your Space. Select the files and set permissions to Public under Manage Permissions. Ensure your Space itself allows public read access in the settings.

Slow initial load times

Initial requests to uncached content will be slower. Implement cache warming by accessing your most important assets after upload. Consider using prefetch headers <link rel="prefetch" href="cdn-url"> for critical resources.

Prices mentioned in this guide are pulled from current plan data and may change. Always verify on the official DigitalOcean website before purchasing.