How I moved my Next.js portfolio from namannayak.me to namannayak.com: comparing .com and .me prices across registrars, buying a .com on Cloudflare from India for ₹1,204 with GST and forex, and what went wrong with Google Search Console and Bing Webmaster Tools.
My portfolio lived at namannayak.me for a little over a year, and it
was ranking #2 on Google. Then the .me came up for renewal, I
compared prices, and decided to move to
namannayak.com for good instead.
The code change took minutes. The search engine side took the rest of the day. This post covers both: what domains actually cost right now, what a "$10" domain costs when you pay from India, and every place the migration didn't go the way the docs suggest.
Most registrars advertise a cheap first year and make their money on renewal, so the number that matters is the renewal price. Here's what the major registrars list today:
| Registrar | .com first year | .com renewal | .me renewal |
|---|---|---|---|
| Cloudflare | $10.46 | $10.46 | $16.56 |
| Porkbun | $11.08 | $11.08 | $17.27 |
| Namecheap | $11.28 (sale) | $18.48 | $23.98 |
And the Indian registrars, in rupees:
| Registrar | .com first year | .com renewal |
|---|---|---|
| GoDaddy India | ₹1 (3-year purchase required) | ₹1,599 |
| Hostinger India | ₹1 (3-year term) | ₹1,499 |
| BigRock | ₹749 | ₹1,479 |
A few things stood out:
.me costs more than .com everywhere. Even at Cloudflare's
at-cost pricing, .me renews for about 60% more than .com..com is about to get pricier. Verisign is reportedly raising the
.com wholesale price on November 1, 2026, so expect Cloudflare's
.com to land around $11.15–11.17 next year. That's still the cheapest
renewal on this list.Cloudflare bills in US dollars, so the $10.46 sticker price is not what lands on an Indian card statement. My final cost was ₹1,204. Roughly where that comes from:
Even with all three, ₹1,204 a year is cheaper than the pre-tax renewal
price at GoDaddy, Hostinger, or BigRock, and it doesn't jump in year two.
If you're an Indian developer buying a .com, Cloudflare Registrar is the
one I'd recommend. Use a card with a low forex markup if you have one.
This site is a Next.js app on Vercel, and the canonical URL lives in one place:
url: process.env.NEXT_PUBLIC_APP_URL || "https://www.namannayak.com",That single value drives metadataBase, canonical tags, Open Graph URLs,
the sitemap, and robots.txt. Changing the domain meant changing that
default and adding the new domain in Vercel. I covered why this matters in
my post on the Next.js SEO course.
If your domain is hard-coded across twenty files, a migration like this
gets painful fast.
On Cloudflare's side, the domain points to Vercel with two CNAME
records (apex and www) set to DNS only (grey cloud), so Vercel
handles SSL and the apex-to-www redirect itself.
The textbook domain migration is: keep the old domain alive, 301 every
old URL to the same path on the new domain, and tell Google about the
move. I wrote the redirect first:
async redirects() {
return [
{
source: "/:path*",
has: [{ type: "host", value: "(www\\.)?namannayak\\.me" }],
destination: "https://www.namannayak.com/:path*",
permanent: true,
},
]
},Then I tried to hit the old domain and got a TLS handshake failure. The
.me had already expired. A redirect only works if the old domain still
resolves to your server, and an expired domain resolves to nothing. I
reverted the change. If your old domain is still registered, the snippet
above is the right move, and you should keep it running for at least
6–12 months.
Google Search Console has a
Change of address tool
built for exactly this. It moves your ranking signals from the old domain
to the new one. But it requires two things: both properties verified, and
the old site actively 301-ing to the new one. With the .me dead, I
couldn't meet the second requirement.
This was the most expensive lesson of the day: the #2 ranking doesn't
transfer. namannayak.com starts as a fresh site in Google's eyes. If
you're planning a move, renew the old domain for one more year just to
serve redirects. It's cheaper than rebuilding rankings.
I added namannayak.com as a Domain property rather than a URL
prefix property. A Domain property covers http, https, www and the
apex in one property. It needs DNS verification, and because the DNS is
on Cloudflare, Search Console offered a one-click flow that authorizes
Google to add the TXT record itself. After that I submitted
https://www.namannayak.com/sitemap.xml.
A dead site ranking at #2 means people click my name and land on an error
page. Search Console's
Removals tool
can hide it, but only temporarily, for about six months. There is no
permanent option in that tool. Permanent removal happens when Googlebot
recrawls and finds the pages gone, which an expired domain does on its
own. I used "Remove all URLs with this prefix" on https://namannayak.me/,
which covers every www/non-www and http/https variant.
Bing has the same shape. Its Site Move feature also needs a working
redirect. Its Block URLs tool hides a URL or directory for a maximum of
90 days. I blocked the whole .me directory there too.
Adding the new site had its own friction. I skipped Bing's "import from
Google Search Console" shortcut and added the site manually. That gave
three verification options: an XML file, a meta tag, or a CNAME record.
I went with the CNAME in Cloudflare. Two gotchas:
CNAME
answers with Cloudflare's IPs instead of the alias, so Bing can't see
verify.bing.com.Once verified, I submitted the same sitemap, and Bing warned that reports can take up to 48 hours to appear.
I wanted to confirm that NEXT_PUBLIC_APP_URL wasn't overriding the new
default in production. The local repo wasn't linked to the Vercel
project, so I couldn't read env vars from the CLI. Instead I fetched the
live sitemap.xml and robots.txt. Both said https://www.namannayak.com,
which answers the question no matter what the env var says. I also
confirmed the apex returns a 308 to www.
301 every path, and use Search Console's Change of address and Bing's
Site Move.CNAMEs to DNS only on Cloudflare.The new home for my portfolio, projects, and writing is namannayak.com. I post shorter updates on X/@_naman14.