vercel.app 도메인의 한계와 개인 도메인(.pe.kr) 도입기 (feat. 구글 서치 콘솔 색인 문제 해결)
서론: 완벽했던 배포, 그리고 예상치 못한 복병
이전 글에서 블로그 개발부터 Vercel 배포, 그리고 Google AdSense 코드 삽입까지 모든 과정을 마쳤다. 이제 구글 서치 콘솔(Google Search Console)에 사이트맵만 등록하고 애드센스 승인을 기다리면 될 줄 알았다.
하지만 진짜 악몽은 여기서부터 시작되었다.
1. vercel.app 도메인의 한계 (구글 서치 콘솔 에러)
블로그 주소인 https://sooyoung-archive.vercel.app을 구글 서치 콘솔에 등록하고 sitemap.xml을 제출했다.
그런데 돌아온 것은 빨간 글씨의 "가져올 수 없음(Couldn't fetch)" 에러뿐이었다.
하루 이틀을 기다려도 상태는 변하지 않았고, 답답한 마음에 특정 포스트 URL을 직접 입력해 **'색인 생성 요청'**을 시도했다. 하지만 구글은 단 한 번의 요청이었음에도 다음과 같은 에러를 뱉어냈다.
"할당량이 초과되었습니다 (Quota Exceeded)"
원인이 뭘까?
원인은 내 블로그 코드가 아니라 vercel.app 이라는 도메인 자체에 있었다.
Vercel에서 제공하는 무료 서브 도메인은 수많은 사람들이 스팸 사이트를 만들거나 악용하는 경우가 많다 보니, 구글 측에서 vercel.app 계열의 도메인에 대해서는 크롤링(로봇 수집) 우선순위를 극단적으로 낮추고, 수동 색인 요청 할당량도 엄격하게 제한해 버린 것이다.
결국 무료 주소를 고집하다가는 구글 검색 노출도, 애드센스 심사도 영영 받지 못할 위기에 처했다.
2. 해결책: 나만의 개인 도메인 구매하기
구글의 제한을 뚫기 위한 가장 빠르고 확실한 방법은 "내 소유의 루트 도메인"을 구매하는 것이었다.
어떤 도메인을 살 것인가?
.com이나.io는 꽤 비싸다 (보통 연 1.5만 원 ~ 8만 원).- 무료 도메인(freenom 등)은 언제 회수될지 모르는 불안정성이 컸다.
- 한국 개발자로서의 정체성을 보여주면서도 저렴한 가성비 도메인이 필요했다.
결과적으로 **호스팅케이알(Hosting.kr)**에서 .pe.kr (Personal Korea) 도메인을 1년에 약 1만 원 내외의 저렴한 가격으로 구매했다. (선택한 도메인: sooyoung.pe.kr)
3. Vercel과 커스텀 도메인 연결하기
도메인을 샀으니 이제 내 Next.js 블로그와 연결할 차례다.
3.1 Vercel에 도메인 추가
- Vercel 프로젝트 대시보드에서 Settings > Domains 메뉴로 들어간다.
- 구매한
sooyoung.pe.kr을 입력하고 Add를 누른다. - Vercel이 친절하게 "이 IP 주소(
76.76.21.21등)를 네 도메인 공급자 쪽에 A 레코드로 등록해 줘!" 라고 알려준다.
3.2 DNS 레코드 설정 (호스팅케이알)
- 호스팅케이알 도메인 관리 메뉴의 DNS 설정으로 들어간다.
- 새 레코드를 추가한다.
- 유형(Type):
A - 이름(Name):
@(빈칸) - 값(Value): Vercel에서 알려준 IP 주소
- 유형(Type):
- 저장을 누른다.
💡 트러블슈팅: Failed to Generate Cert 에러 Vercel 화면을 다시 보면
http-01 challenge failed라는 무서운 에러가 떠 있을 수 있다. 이는 DNS가 아직 전 세계에 전파되지 않아 HTTPS 인증서를 발급하지 못한 아주 자연스러운 현상이다. 커피 한 잔 마시며 10~20분 정도 기다렸다가 새로고침하면 초록색(Valid)으로 바뀐다.
4. 구글 서치 콘솔 재도전과 짜릿한 승리
도메인 연결이 완료된 후, 구글 서치 콘솔로 다시 달려갔다.
이번에는 URL 접두어 방식이 아닌, '도메인 속성(Domain Property)' 방식으로 sooyoung.pe.kr을 등록했다.
호스팅케이알 DNS 설정에 구글이 준 TXT 레코드를 추가하는 것만으로 간단하게 소유권 확인이 끝났다.
대망의 사이트맵 제출 시간.
도메인 속성으로 등록했기 때문에 이번에는 입력창에 덜렁 sitemap.xml만 치면 안 되고, https://sooyoung.pe.kr/sitemap.xml 처럼 전체 주소를 꼼꼼하게 입력해 주어야 한다.
제출 버튼을 누르자마자...
"성공 (발견된 페이지 26개)"
무려 며칠을 속 썩이던 '가져올 수 없음' 에러가 거짓말처럼 단 1초 만에 초록색 '성공' 마크로 바뀌었다!
5. 결론: 애드센스 심사 재요청
검색 노출 문제가 완전히 해결되었으니, 이제 애드센스 홈페이지에 새 도메인을 추가하고 당당하게 '심사 요청' 버튼을 눌렀다. (Supabase의 로그인 Callback 주소와 GitHub OAuth App의 Homepage URL도 새 도메인으로 잊지 않고 업데이트했다.)
1만 원 남짓한 투자로 며칠간의 스트레스를 날려버린 것은 물론, 블로그가 훨씬 '진짜 서비스'처럼 보이게 되었다. 무료 서브 도메인이 주는 편리함도 좋지만, 진지하게 수익화와 브랜딩을 고민한다면 개인 도메인 구매는 선택이 아닌 필수라는 것을 뼈저리게 느낀 삽질기였다.