Why I Moved My Domains to Cloudflare

Cloudflare
server
web
Author

Johannes Titz

Published

August 16, 2026

I finally decided to move all my domains to Cloudflare, starting with my main site, johannestitz.com, which was due to expire soon. The move actually began with a much smaller problem: I wanted a useful downtime page for mimosa, my web interface for two-level mixed models. While looking for a clean way to put that page in front of the application, I started exploring what Cloudflare offers—even on its free plan.

That turned into a much larger migration.

More than a place to manage DNS

I had mainly thought of Cloudflare as a DNS provider. Once I began using it, I found a surprisingly broad collection of useful services in one place. Cloudflare can proxy traffic in front of a website, cache static files closer to visitors, compress responses, provide TLS certificates, filter unwanted traffic, and show request and performance statistics.

Not every switch automatically makes a website faster, and caching needs some care for interactive applications. Still, it is helpful to have DNS, basic security, performance settings, and analytics in the same interface. For small personal and academic websites, much of this is available without a paid plan.

After trying the setup with mimosa, I gradually moved the DNS for my other sites to Cloudflare as well. These include this blog, rlernen.de, and cofad.titz.science. The migrations were uneventful, which is exactly what one wants from DNS.

The approaching renewal

The next step came when johannestitz.com was approaching its renewal date. The domain was still registered with Namecheap, although its DNS was already hosted by Cloudflare. Since the Cloudflare zone was active and the domain already used Cloudflare’s assigned nameservers, transferring the registration itself became a natural option.

The price made the decision easier. Namecheap showed me a renewal price of roughly EUR 19, while the Cloudflare transfer was around EUR 9.50 and included the additional registration year. For this .com domain, that was half the price.

The difference is not equally dramatic for every top-level domain I use. When I compared my other domains, Cloudflare was still substantially cheaper in several cases, but not always by a factor of two. Prices depend on the registry and the top-level domain. Cloudflare Registrar’s general idea is nevertheless attractive: it charges the registry and ICANN cost without adding a registrar markup.

A pleasantly boring transfer

Before starting the transfer, I checked the complete Cloudflare DNS zone against the records that were actually visible on the public internet. The website records matched, as did the MX records used for mail routing, the SPF policy, and the DKIM public key. DNSSEC was disabled on both sides, so there was no stale DS record that could break resolution during a change.

In practice, there was no nameserver change at all. johannestitz.com was already delegated to Cloudflare’s nameservers, and those same nameservers remain in use with Cloudflare Registrar.

The transfer interface was slightly surprising. I expected to paste an Auth or EPP code, but Cloudflare moved directly to a message saying that it was waiting for the domain to be released. The transfer had already reached the registry’s pendingTransfer state and the authorization step was marked as complete. Namecheap then sent its transfer-out message, where I approved the quick release.

The transfer completed shortly afterwards. Cloudflare became the current registrar, the registration changed from pendingTransfer to active, and the expiry date moved from September 12, 2026 to September 12, 2027.

Managing Cloudflare through Codex

An unexpectedly important advantage for me is that Cloudflare exposes its API through an MCP integration that Codex can use. Instead of clicking through many dashboard pages, I can ask Codex to inspect a zone, list its DNS records, compare them with public DNS, or audit settings across several websites.

This does not mean giving an AI unrestricted permission to change infrastructure. My preferred workflow is read-only first: inspect the current state, explain discrepancies, and propose exact changes. Only after reviewing those findings would I authorize a modification. That separation made the registrar transfer more comfortable because I could verify the DNS configuration without manually copying every record.

The same approach is useful beyond transfers. A configuration audit can identify, for example, whether HTTPS redirection is enabled, whether the origin connection is properly encrypted, which hostnames are proxied, whether modern protocols and compression are active, and whether a cache rule might accidentally cache an interactive application.

The trade-offs

Cloudflare Registrar is not independent of Cloudflare DNS. A domain registered there must continue to use the Cloudflare-assigned nameservers. That is fine for my sites because I had already chosen Cloudflare as their DNS provider, but it is an important restriction to understand before transferring.

Cloudflare also presents many switches, and more enabled features do not necessarily produce a better site. Aggressive caching is excellent for static pages but can be harmful for Shiny applications or authenticated services. JavaScript optimization can break applications. Security challenges can block legitimate users. Each setting needs to fit the site behind it.

For my use case, however, the combination is convincing: inexpensive registration, fast authoritative DNS, a useful free proxy and analytics layer, and unusually comfortable API-based administration. What began with a downtime page for mimosa ended with all my sites using Cloudflare DNS and my main domain moving to Cloudflare Registrar.

Sometimes infrastructure changes are satisfying precisely because visitors should not notice them. The most visible result of this transfer was no interruption at all.