6편에서 WordPress 블로그를 세팅하고, 7편에서 n8n으로 자동화까지 완성했습니다. 블로그 완성. 자동화 완성. 글도 열심히 씁니다. 근데요.
방문자가 사실상 0명입니다.
정확히 말하면, 2주 동안 총 방문자 5명. 그중 3명은 봇(크롤러)이고 실제 사람은 2명뿐이었습니다. 그것도 검색으로 들어온 게 아니라 어딘가에서 링크를 타고 온 거예요. 구글에서 제 블로그를 검색하면? 아무것도 안 나옵니다. 네이버? 마찬가지. 유일하게 Daum에서만 검색이 됐는데, 구글이나 네이버에서 안 나오면 사실상 없는 거나 마찬가지입니다.
원인은 어이없을 만큼 단순했습니다.
Tailscale Funnel의 치명적인 약점: .ts.net은 검색엔진이 무시한다

2편에서 Tailscale Funnel을 설정했죠? 무료로 내 서버를 인터넷에 공개하는 마법 같은 기능이었습니다. 주소는 blog.dace-sidemirror.ts.net. 접속 잘 되고, SSL 자동이고, 완벽했습니다.
근데 이 주소에 치명적인 문제가 있었습니다.
.ts.net은 Tailscale이 소유한 서브도메인입니다. Google 입장에서 이건 “남의 플랫폼에 올린 페이지”입니다. Tailscale이라는 회사 도메인의 수많은 서브도메인 중 하나일 뿐이니까요. Google은 이런 서브도메인을 잘 색인하지 않습니다. 왜냐하면 하나의 루트 도메인 아래 수천, 수만 개의 서브도메인이 있을 수 있는데, Google이 이걸 전부 크롤링하면 리소스 낭비이기 때문입니다. 실제로 Tailscale의 공식 문서에서도 Funnel은 “개발과 테스트 용도”라고 명시하고 있습니다.
실제로 확인해봤습니다:
site:ts.net → Google 검색 결과: 0건
site:blog.dace-sidemirror.ts.net → 0건
2주 동안 쓴 글 16개, Google에 단 하나도 색인되지 않았습니다. 아무리 좋은 글을 써도, 검색엔진이 주소 자체를 무시하면 의미가 없습니다.
Tailscale Funnel은 개발용으로는 훌륭합니다. 내부 테스트, 친구한테 잠깐 보여주기, 웹훅 테스트. 하지만 불특정 다수에게 공개하는 블로그에는 맞지 않았습니다. 검색에 안 나오는 블로그는 블로그가 아닙니다.
홈서버 블로그에 커스텀 도메인이 필요한 이유
커스텀 도메인이 필요한 이유는 SEO만이 아닙니다:
- 브랜딩 —
prsm-studio.com은 기억하기 쉽고,blog.dace-sidemirror.ts.net은 아무도 기억 못합니다 - 신뢰도 — 자체 도메인은 “이 사람이 진지하게 운영하는 사이트구나”라는 인상을 줍니다
- 이동성 — 서버를 바꿔도, 호스팅을 바꿔도 도메인은 그대로. Tailscale을 쓰든 Cloudflare를 쓰든 내 주소는 변하지 않습니다
- 이메일 — 나중에
[email protected]같은 커스텀 이메일도 만들 수 있습니다
해결책: 커스텀 도메인 + Cloudflare Tunnel
필요한 건 두 가지였습니다:
- 내 도메인 — .com이든 .dev든 내 이름으로 된 주소
- 그 도메인을 내 서버에 연결하는 방법 — 공유기 포트포워딩 없이
Cloudflare가 둘 다 해결해줍니다. 도메인 구매도 Cloudflare에서, 터널도 Cloudflare에서. 그리고 둘 다 무료(도메인 등록비 제외).
| Tailscale Funnel | Cloudflare Tunnel | |
|---|---|---|
| 도메인 | .ts.net (고정) | 내 도메인 사용 |
| SEO | ❌ 검색 노출 불가 | ✅ 정상 색인 |
| SSL | 자동 | 자동 |
| 속도 | 보통 | Cloudflare CDN 캐싱 |
| 설정 난이도 | 매우 쉬움 | 쉬움 (10분) |
| 비용 | 무료 | 무료 (도메인비만 연 $10~15) |
| 포트포워딩 | 불필요 | 불필요 |
Tailscale Funnel은 그대로 유지합니다. 내부 서비스 접근용으로는 여전히 최고니까요. 외부 공개용 블로그만 Cloudflare Tunnel로 바꾸는 겁니다. 두 터널이 같은 서버에서 동시에 돌아가는 데 전혀 문제 없습니다.
1단계: Cloudflare에서 도메인 구매 (5분, $10.44)
도메인 이름 고르는 게 가장 오래 걸렸습니다. 개인 프로젝트와 관련된 이름으로 하고 싶었는데, 좋은 건 다 선점돼 있더라고요. 이것저것 검색해본 결과 prsm-studio.com이 마음에 들어서 바로 결정.
Cloudflare 대시보드에서 도메인을 바로 구매했습니다. $10.44/년. 월 900원도 안 됩니다. 이게 원가(ICANN 등록비)라서 다른 데보다 저렴합니다. GoDaddy나 Namecheap 같은 곳은 첫 해 싸게 보이지만 갱신할 때 2~3배 뛰거든요. Cloudflare는 원가 그대로, 갱신비도 동일. 이건 Cloudflare가 도메인 사업으로 이윤을 남기지 않겠다고 공식 선언했기 때문입니다.
도메인 구매 팁: .com이 가장 무난합니다. .dev, .io 같은 건 멋있어 보이지만 연간 비용이 2~3배 높고, 일부 사용자들은 .com이 아닌 주소를 신뢰하지 않습니다. .com으로 원하는 이름이 있으면 .com을 추천합니다.
2단계: Cloudflare Tunnel 설치 (10분)

Cloudflare Tunnel은 내 서버와 Cloudflare 사이에 보안 터널을 만드는 서비스입니다. 공유기 포트포워딩 없이, 내 서버의 포트를 외부에 안전하게 노출합니다. Tailscale Funnel과 비슷한 개념인데, 내 도메인을 쓸 수 있다는 게 핵심 차이입니다.
제가 한 건 딱 두 개: Cloudflare 대시보드에서 터널 만들기 버튼 클릭, 그리고 받은 토큰을 Claude Code한테 전달. 나머지는 전부 Claude Code가 알아서 했습니다.
# Claude Code가 실행한 명령어
sudo cloudflared service install [Cloudflare에서 받은 토큰]
이 한 줄로 cloudflared가 시스템 서비스로 등록되고, 재부팅해도 자동으로 터널을 연결합니다. Claude Code가 Cloudflare 대시보드 터널 라우팅도 안내해줘서 설정했습니다:
- Public hostname: prsm-studio.com
- Service: http://localhost:8080 (WordPress가 돌아가는 포트)
이제 prsm-studio.com으로 접속하면 → Cloudflare 터널 → 내 서버 WordPress로 연결됩니다. SSL도 자동, CDN 캐싱도 자동. 보안도 Cloudflare WAF가 알아서 차단해주니까 공유기 포트포워딩보다 훨씬 안전합니다.
3단계: WordPress URL 마이그레이션 — 나는 구경만 했다

도메인을 바꾸면 WordPress 내부의 모든 URL을 바꿔야 합니다. 글 안의 이미지 경로, 내부 링크, SEO 메타데이터, RSS 피드 주소… 생각보다 엄청 많습니다.
바꿔야 할 것들:
wp-config.php의WP_HOME,WP_SITEURL— WordPress가 자기 주소를 인식하는 핵심 설정- 데이터베이스의 모든 URL — 글 본문의 이미지 경로, 내부 링크, 메타데이터
- Yoast SEO의 schema, OG 태그 — 검색엔진과 SNS 공유 시 표시되는 URL
- robots.txt의 사이트맵 주소 — 검색엔진 크롤러가 참조하는 경로
- n8n 워크플로우의 모니터링 URL — 자동화 도구의 헬스체크 주소
저한테 이걸 하나하나 수동으로 고치라고 하면 일주일은 걸립니다. 뭘 바꿔야 하는지도 모르니까요. Claude Code한테 “도메인 바꿨어, 나머지 처리해”라고 한 줄 시켰습니다. 그랬더니 알아서 전부 찾아서 바꿨습니다:
# Claude Code가 실행한 명령어
wp search-replace 'blog.dace-sidemirror.ts.net' 'prsm-studio.com' --all-tables
# 결과: 636건 교체 완료
636개나 바꿀 게 있었습니다. 데이터베이스 URL 교체뿐만 아니라, wp-config.php 수정, Yoast SEO 캐시 삭제, robots.txt 갱신, n8n 워크플로우 API로 모니터링 URL 교체, 블로그 발행 스크립트의 도메인 갱신까지 — 전부 자동으로 처리했습니다. 저는 터미널에 출력되는 로그를 구경했을 뿐입니다.
중간에 Cloudflare 캐시 문제가 생겼습니다. robots.txt를 업데이트했는데 계속 옛날 내용이 나오는 거예요. Cloudflare가 정적 파일을 4시간 동안 캐싱하고 있었거든요. Claude Code가 원인 찾고 no-cache 헤더까지 설정해줬는데, 결국 제가 한 건 Cloudflare 대시보드에서 “Purge Everything” 버튼 한 번 누른 것뿐입니다.
4단계: 301 리다이렉트로 옛 주소 자동 이동 설정
혹시라도 옛 주소(blog.dace-sidemirror.ts.net)로 들어오는 사람이 있으면, 새 주소로 자동 이동시켜야 합니다. Claude Code가 Apache .htaccess에 리다이렉트 규칙을 추가했습니다:
RewriteCond %{HTTP_HOST} blog\.dace-sidemirror\.ts\.net [NC]
RewriteRule ^(.*)$ https://prsm-studio.com/$1 [R=301,L]
301은 “영구 이동”이라는 뜻입니다. 검색엔진한테 “이 주소는 영원히 새 주소로 바뀌었어”라고 알려주는 거예요. 옛 주소로 접속하면 자동으로 새 주소로 넘어갑니다. SEO 관점에서도 301 리다이렉트는 기존 주소의 검색 점수(도메인 권한)를 새 주소로 이전시켜주기 때문에 반드시 설정해야 합니다.
5단계: 검색엔진 등록 — 나는 버튼만 클릭했다

이제 진짜 검색엔진에 “나 여기 있어!”라고 알릴 차례입니다. 등록해야 할 곳은 4군데:
- Google Search Console — 속성 추가 → DNS 인증 → 사이트맵 제출
- Naver Search Advisor — 사이트 등록 → HTML 메타태그 인증
- Bing Webmaster Tools — 사이트 등록 → URL 제출
- Daum 웹마스터 도구 — robots.txt에 인증 코드 추가
솔직히 여기서 제가 한 건 “이거 등록해”라고 지시하고, 각 사이트에서 인증 코드 받아서 Claude Code한테 넘기고, 완료 버튼 클릭한 것뿐입니다. 인증 코드를 WordPress에 집어넣는 작업, Naver/Daum 메타태그 설정, robots.txt 업데이트 — 전부 Claude Code가 처리했습니다.
사이트맵은 Yoast SEO 플러그인이 자동 생성해줍니다. prsm-studio.com/sitemap_index.xml에 블로그의 모든 페이지 목록이 있고, 이걸 검색엔진에 제출하면 “이 URL들을 크롤링해주세요”라고 요청하는 겁니다.
Claude Code는 추가로 IndexNow라는 프로토콜로 32개 URL을 한꺼번에 제출해줬습니다. IndexNow는 Bing, Yandex, Naver 등이 지원하는 즉시 색인 요청 API입니다. 이건 제가 시킨 것도 아닌데 알아서 해줬어요. “새 도메인으로 바꿨으니 검색엔진에도 알려야지”라고 스스로 판단한 겁니다.
결과: 검색 노출 시작
도메인 변경 후 현재 상태:
- ✅
prsm-studio.com정상 접속 - ✅ Google/Naver/Bing/Daum 전부 등록 완료
- ✅ 사이트맵 제출 완료
- ✅ IndexNow로 32개 URL 즉시 제출
- ✅ 옛 주소 301 리다이렉트
- ✅ Daum 검색 노출 확인 (Daum은 .ts.net 시절부터 유일하게 잡아주고 있었음)
- ⏳ Google/Naver 색인 대기 중 (보통 며칠~2주)
재밌는 건, Daum은 .ts.net 주소일 때도 검색이 됐다는 겁니다. 4대 검색엔진 중 유일하게요. 하지만 한국에서 Daum만으로는 부족합니다. Google과 네이버에서 잡혀야 진짜 트래픽이 들어오니까요. 커스텀 도메인으로 바꾼 지금, n8n의 Blog Indexing Monitor가 12시간마다 색인 상태를 확인해서 텔레그램으로 알려줍니다. 기다리기만 하면 됩니다.
교훈은 두 개입니다. 첫째, 무료에는 이유가 있다. Tailscale Funnel은 무료이고 편하지만, 검색 노출이라는 블로그의 핵심 기능이 빠져 있었습니다. 연 14,000원으로 그 문제를 완전히 해결했습니다.
둘째, AI한테 시키면 진짜 다 해준다. 이번 편에서 제가 직접 한 건 딱 이것뿐입니다:
- Cloudflare에서 도메인 구매 (카드번호 입력)
- Cloudflare 대시보드에서 터널 생성 버튼 클릭
- 검색엔진 사이트에서 인증 코드 복사 + 완료 버튼 클릭
wp-config 수정, DB 636건 URL 교체, .htaccess 리다이렉트 설정, SEO 메타태그 삽입, n8n 워크플로우 업데이트, IndexNow 32개 URL 일괄 제출, 캐시 문제 디버깅 — 기술적인 작업은 100% Claude Code가 했습니다. 코드 모르는 사람이 도메인 마이그레이션을? AI 시대에는 가능합니다.
다음 편 예고
다음 편에서는 온라인 회의 자동 전사 + AI 회의록을 다룹니다. Google Meet, Zoom, Teams 같은 웹 회의에 들어가서 자동으로 음성을 텍스트로 변환하고, AI가 핵심 내용과 할 일을 정리해주는 — 제조업 현장에서 회의 끝나면 회의록이 이미 완성돼 있는 이야기입니다.
여기까지 읽어주셔서 감사합니다. 다음 편도 기대해 주세요!
이 글도 AI(Claude Code)가 작성했습니다. 도메인 마이그레이션도, 이 블로그 글도, 전부 AI가 했습니다. 저는 “해”라고 말했을 뿐입니다.























