• Docs
  • Changelog
Sign in
Get started
    • Home
    • Your first deploy
    • Free instances
    • Platform features by plan
    • Use with coding agents
    • FAQ
    • Templates
      • Migrate from…
        • Heroku
        • Railway
    • Compute plans
    • SandboxesBeta
      • Service types
        • Which to use?
        • Static sites
        • Web services
        • Private services
        • Background workers
        • Cron jobs
        • Workflows
        • Multi-service architectures
      • Data storage
        • Render Postgres
        • Render Key Value (Redis®-compatible)
        • Persistent disks
    • How deploys work
    • Supported languages
    • Git providers (GitHub, etc.)
    • Build pipeline
    • Deploy hooks
    • Monorepo support
    • Troubleshooting deploys
      • Previewing changes
        • Single-service previews
        • Preview environments (multi-service)
      • Docker deploys
        • Overview
        • Deploy a registered image
        • Using secrets
      • Runtime
        • Native runtimes
        • Environment variables & secrets
        • Default environment variables
    • Intro to sandboxes
    • Limits
      • How to…
        • Create & configure sandboxes
        • Execute commands
        • Manage files
        • Manage snapshots
      • Use with…
        • Claude Managed Agents
        • Cursor Cloud Agents
        • OpenAI Agents API
      • SDK/CLI reference
        • TypeScript SDK
        • Python SDK
        • CLI commands
    • Intro to workflows
    • Tutorial
    • Limits & pricing
      • How to…
        • Define tasks
        • Define flowsNew
        • Trigger runs
        • Develop locally
      • SDK reference
        • TypeScript SDK
        • Python SDK
      • Example workflows
        • TypeScript examples
        • Python examples
    • Overview
    • Create & connect
    • Database credentials
    • Extensions
    • Version upgrades
    • Logical replication
    • Legacy instance types
      • Database recovery
        • Recovery & backups
        • High availability
      • Database performance
        • Read replicas
        • Connection pooling
        • Admin apps
        • Repacking tables
        • Troubleshooting performance
    • Regions
    • Inbound IP rules
    • Edge caching
    • WebSockets
    • TLS certificates
      • Custom domains
        • Overview
        • Cloudflare
        • Namecheap
        • Other DNS providers
      • Internal traffic
        • Private network
        • Private links
      • Outbound traffic
        • Default IP ranges
        • Dedicated IP addresses
        • Outbound bandwidth
        • Handling network changes
      • Static site config
        • Custom response headers
        • Redirects & rewrites
    • The Render Dashboard
    • SSH / Shell access
    • Projects & environments
      • Service actions
        • Scaling
        • Rollbacks
        • Maintenance mode
        • One-off jobs
      • Infrastructure as code
        • Blueprints overview
        • render.yaml reference
        • Terraform provider
    • In-dashboard metrics
    • Health checks
    • Uptime best practices
      • Logging
        • In-dashboard logs
        • Log streams (syslog/HTTPS)
      • OpenTelemetry (OTel) metrics
        • Provider setup
        • Metrics reference
      • Notifications
        • Webhooks
        • Email / Slack
    • MCP Server
      • Render CLI
        • Overview
        • Command reference
      • REST API
        • Overview
        • API reference
      • Third-party connections
        • OIDC support
        • Datadog
    • Workspaces, members, & roles
    • Login settings
    • Audit logs
      • Organizations
        • Overview
        • SAML SSO
    • DDoS protection
    • Platform maintenance
      • Compliance
        • Overview
        • HIPAA (US health data)
        • HIPAA best practices
        • Shared responsibility model
        • Pentest policy
    • Heroku vs Render
    • Vercel vs Render

Custom Domains on Render

You can apply your own custom domains to Render web services and static sites. Services with a custom domain also keep their onrender.com subdomain.

Your workspace includes an amount of custom domains based on its plan:

PlanIncluded domains

Hobby

2

Pro

15

Scale

25

Each custom domain you add beyond this amount costs $0.25 per month.

Render automatically creates and renews TLS certificates for all custom domains, including wildcard domains. All HTTP traffic to a custom domain is automatically redirected to HTTPS.

You add a custom domain in three steps:

  1. Add your domain in the Render Dashboard.
  2. Configure DNS with your domain's provider.
  3. Verify your domain in the Render Dashboard.

These steps are detailed below.

1. Add your domain in the Render Dashboard

  1. In the Render Dashboard, select the service that will use your custom domain.

    • Only web services and static sites support custom domains.
  2. Open the service's Settings page and scroll down to the Custom Domains section:

    Adding a custom domain in the Render Dashboard

  3. Click + Add Custom Domain and provide your custom domain name.

    If your domain includes Unicode characters, first convert it to Punycode with a tool like Punycoder.

    For example, you would provide ëxample.com as xn--xample-ova.com.

  4. Click Save. Your custom domain now appears in the list:

    Added custom domain with DNS update needed

    • If you add a www subdomain (e.g., www.example.org), Render automatically adds the corresponding root domain and redirects it to the www subdomain. This is shown in the screenshot above.

    • If you add a root domain (e.g., example.org), Render automatically adds the corresponding www subdomain and redirects it to the root domain.

Your domain does not yet point to your service! Next, you'll configure DNS.

2. Configure DNS with your provider

Remove any AAAA records from your domain while configuring DNS.

AAAA records map to an IPv6 address, and Render uses IPv4. These records can cause unexpected behavior for your custom domain.

  1. Log in to your custom domain's DNS provider (such as Cloudflare, Namecheap, or GoDaddy).

  2. Navigate to the DNS settings for your domain.

  3. Add DNS records for your domain based on your provider, then return here:

    • Cloudflare
    • Namecheap
    • All other providers

    If you're adding a wildcard domain, see additional instructions.

  4. Return to the Render Dashboard and verify your domain.

3. Verify your domain

  1. Return to your service's Custom Domains settings in the Render Dashboard:

    Added custom domain with DNS update needed

  2. Click the Verify button next to your custom domain.

    • If verification fails, your DNS settings might not have propagated yet. Wait a few minutes and try again. See also Speeding up domain verification.
  3. If verification succeeds, Render issues a TLS certificate for your domain and updates the verification status:

    Verified domains in the Render Dashboard

  4. Try visiting your custom domain in a browser.

    • If you see a 502 Bad Gateway error, Render might still be updating routing rules for your service. Wait a few minutes and try again.
  5. When your custom domain loads successfully, you're good to go!

Speeding up domain verification

We recommend removing cached entries in public DNS servers after updating your DNS records. This is especially important if you're updating nameservers for your domains. Clearing the cache will speed up DNS verification and TLS certificate issuance for your domains.

Use the links below to clear cached records in popular public DNS servers:

  • Flush Google Public DNS Cache
  • Purge Cloudflare Public DNS Cache
  • Refresh OpenDNS Cache

Disabling your onrender.com subdomain

If your service has at least one custom domain, you can disable the service's default onrender.com subdomain. After you do, your service is reachable exclusively at its custom domain(s).

Configure this in any of the following ways:

  1. In the Render Dashboard, select the service that you want to disable the onrender.com subdomain for.

  2. Open the service's Settings page and scroll down to the Custom Domains section:

    Disabling the onrender.com subdomain

  3. Toggle the Render Subdomain setting to Disabled and confirm.

Add the following field to your service's configuration in your Blueprint YAML file:

For details, see the Blueprint YAML reference.

Use the Render API's Update service endpoint to modify your service's configuration. In your request, set the serviceDetails.renderSubdomainPolicy field to disabled. Here's a basic curl example:

After you disable your onrender.com subdomain, all requests to it receive a 404 response. These requests do not reach your service. You can re-enable the subdomain at any time.

Advanced DNS configuration

Wildcard domains

To use a wildcard domain, your root domain must also point to Render.

If your root domain points to a non-Render destination, your wildcard configuration will fail.

To direct root domain traffic to a different destination from wildcard traffic, define redirect logic in your application code.

Using Cloudflare DNS with proxying (Orange Cloud mode) requires additional considerations.

You can apply a wildcard domain (e.g., *.example.org) to a Render service to point all matching subdomains to it (e.g., docs.example.org, blog.example.org, etc.):

Wildcard Custom Domain with DNS update needed

This configuration requires setting all of the following CNAME DNS records with your provider:

NameValue

*

Your service's onrender.com subdomain, available in the Render Dashboard.

Example: svelte.onrender.com

_acme-challenge

Has the format [your-service-subdomain].verify.renderdns.com

Enables Render to manage certificate issuance and renewal for your wildcard domain via Let's Encrypt.

Example: svelte.verify.renderdns.com

_cf-custom-hostname

Has the format [your-service-subdomain].hostname.renderdns.com

Enables Cloudflare (Render's DDoS protection provider) to validate ownership of your wildcard domain.

Example: svelte.hostname.renderdns.com

Using Cloudflare DNS with wildcard domains

If you add a wildcard domain (e.g., *.example.com) to Render but not the corresponding root domain (e.g., example.com), using Cloudflare with proxying enabled (orange cloud) will cause traffic for the root domain to be sent to the same Render destination as your wildcard domain.

To prevent service disruptions, make sure to disable proxying for your root domain (gray cloud). If you have any questions, please reach out to our support team in the Render Dashboard.

CAA records

If your custom domain doesn't define any CAA records, you can ignore this section.

If your custom domain defines CAA records, make sure to define records for Render's certificate authorities:

  • Let's Encrypt (letsencrypt.org)
  • Google Trust Services (pki.goog)

Additionally, if you add a wildcard domain, make sure to define corresponding issuewild records for each authority.

Custom Domains on Render
  • 1. Add your domain in the Render Dashboard
  • 2. Configure DNS with your provider
  • 3. Verify your domain
    • Speeding up domain verification
  • Disabling your onrender.com subdomain
  • Advanced DNS configuration
    • Wildcard domains
    • CAA records
Partially Degraded Service
© Render Inc. All rights reserved.