바이브 코딩 앱은 클라이언트 렌더링 때문에 크롤러에 빈 <div>를 보낸다. Cloudflare Worker SSR 또는 Claude Code·Supabase·Vercel 마이그레이션으로 해결한다. (Lovable) 실행 전에는 봇 응답과 브라우저 응답의 내용이 같은지 확인하고 배포 뒤 실제 크롤링을 점검한다. 이 판단은 출시 전에 실제 사용자의 질문으로 다시 확인한다. 이 점검은 배포 후 데이터로 다시 측정하고 필요하면 순서를 바꾼다.
Lovable, Bolt, v0는 빠르게 출시되지만 Googlebot의 첫 방문에는 React 번들만 남아 콘텐츠와 스키마가 보이지 않는다. 마이그레이션의 목적은 도구를 바꾸는 데 있지 않고 콘텐츠와 운영 책임을 팀이 갖는 데 있다. 이 점검은 배포 후 데이터로 다시 측정하고 필요하면 순서를 바꾼다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다.
두 해결책은 당장 색인할 프록시와 장기적으로 유지할 정상 웹 스택이라는 서로 다른 비용과 효과를 가진다. (Start Apps Studio) 실행 전에는 봇 응답과 브라우저 응답의 내용이 같은지 확인하고 배포 뒤 실제 크롤링을 점검한다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다. 이 판단은 출시 전에 실제 사용자의 질문으로 다시 확인한다.
Cloudflare Worker SSR 프록시는 도메인과 Lovable 사이에서 봇과 실제 방문자의 경로를 나눈다. (1) 마이그레이션의 목적은 도구를 바꾸는 데 있지 않고 콘텐츠와 운영 책임을 팀이 갖는 데 있다. 이 결론은 도구의 이름보다 사용자가 얻는 실제 결과에 근거한다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다.
일반 사용자는 Lovable로 보내고 Googlebot, Bingbot, GPTBot, PerplexityBot, ClaudeBot에는 같은 내용의 서버 HTML과 스키마를 반환한다. (Cloudflare Worker, Lovable) 실행 전에는 봇 응답과 브라우저 응답의 내용이 같은지 확인하고 배포 뒤 실제 크롤링을 점검한다. 이 작업은 팀의 편집 기준과 구현 기준을 하나로 맞춘다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다.
봇과 사용자가 최종적으로 보는 내용이 같아야 하며 설정은 DNS CNAME과 정식 페이지 목록이라는 두 단계로 끝난다. 마이그레이션의 목적은 도구를 바꾸는 데 있지 않고 콘텐츠와 운영 책임을 팀이 갖는 데 있다. 이 점검은 배포 후 데이터로 다시 측정하고 필요하면 순서를 바꾼다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다.
- DNS에 CNAME 하나를 추가해 사용자 지정 도메인이 Cloudflare Worker를 가리키게 한다.
- Lovable 안에 프롬프트 하나를 붙여 넣어 Worker가 서버 렌더링할 정식 페이지 목록을 갖게 한다.
프록시는 시간을 벌어 주지만 진지한 검색 유입에는 사람이 관리할 수 있는 일반 웹 스택이 필요하다. (Claude Code, Lovable, 2) 이 선택은 현재 출시 속도와 앞으로 필요한 검색 제어권을 함께 계산한 뒤 내려야 한다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다. 이 작업은 팀의 편집 기준과 구현 기준을 하나로 맞춘다.
10단계 레시피는 GitHub, Claude Code, Supabase, Vercel을 연결해 앱의 소유권과 배포 제어권을 되찾는다. 실행 전에는 봇 응답과 브라우저 응답의 내용이 같은지 확인하고 배포 뒤 실제 크롤링을 점검한다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다.
저장소를 GitHub에 올리고 Claude Code가 읽고 수정할 수 있는 작업 환경을 먼저 만든다. (10) 마이그레이션의 목적은 도구를 바꾸는 데 있지 않고 콘텐츠와 운영 책임을 팀이 갖는 데 있다. 이 기준을 적용하면 독자가 다음 행동을 망설이지 않는다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다.
- Claude가 쉽게 다룰 수 있도록 Lovable 프로젝트를 GitHub에 올린다.
- Claude Code를 로컬에 설치해 저장소를 직접 읽고 수정하게 한다.
- GitHub 원격 저장소나 로컬 경로로 Claude를 프로젝트 저장소에 연결한다.
- 데이터베이스와 인증을 위한 Supabase 프로젝트를 약 5분 안에 만든다.
- 다음 프롬프트로 Claude에게 Lovable 프로젝트를 일반 웹 스택으로 옮기고 저장소를 정리하게 한다: "이 Lovable 프로젝트를 일반 웹 스택으로 이전하고 저장소를 깔끔하게 구성해 줘."
- Vercel 호스팅을 설정하며 무료 요금제는 대부분의 MVP를 감당한다.
- 필요한 환경 변수와 API 키를 Claude에게 찾아 달라고 요청한다.
- 키를 만들고 Supabase 키와 API 토큰 등이 담긴 .env 파일을 생성한다.
- Claude에게 배포를 구성하게 해 GitHub에서 Vercel로 이어지는 흐름과 Supabase를 연결한다.
- 문제가 생기면 한 번에 오류 하나씩 Claude에게 디버깅을 요청한다.
이 구조는 프롬프트 크레딧 의존을 줄이고 작은 수정에는 무료 모델을 선택할 여지를 준다. (Lovable, Lovable) 실행 전에는 봇 응답과 브라우저 응답의 내용이 같은지 확인하고 배포 뒤 실제 크롤링을 점검한다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다.
Lovable과 Claude를 함께 쓰는 중간 경로는 시각 편집과 코드 제어를 동시에 유지한다. 실행 전에는 봇 응답과 브라우저 응답의 내용이 같은지 확인하고 배포 뒤 실제 크롤링을 점검한다. 이 판단은 출시 전에 실제 사용자의 질문으로 다시 확인한다. 이 작업은 팀의 편집 기준과 구현 기준을 하나로 맞춘다.
GitHub 저장소를 공유하면 Claude Code가 복잡한 기능을 안내하고 Supabase에서 SQL을 직접 실행할 수 있다. (Lovable, Lovable, Lovable) 실행 전에는 봇 응답과 브라우저 응답의 내용이 같은지 확인하고 배포 뒤 실제 크롤링을 점검한다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다.
하이브리드 결과는 크레딧 낭비를 줄이고 얽힌 로직과 SSR, 스키마를 단계적으로 고칠 통제권을 준다. (100) 이 선택은 현재 출시 속도와 앞으로 필요한 검색 제어권을 함께 계산한 뒤 내려야 한다. 이 설명은 결과뿐 아니라 운영자가 책임질 범위까지 드러낸다. 이 작업은 팀의 편집 기준과 구현 기준을 하나로 맞춘다.
마케팅 페이지만 필요하면 Worker, 동적 제품이면 Claude Code·Supabase·Vercel, 재구축이 어려우면 하이브리드를 고른다. 마이그레이션의 목적은 도구를 바꾸는 데 있지 않고 콘텐츠와 운영 책임을 팀이 갖는 데 있다. 이 근거는 팀이 다음 실험의 성공 조건을 정하는 데 사용한다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다.
- 마케팅 사이트나 랜딩 페이지만 필요하면 가장 저렴하고 빠른 Cloudflare Worker SSR을 선택한다.
- 순위가 필요한 동적 제품은 Claude Code와 Supabase, Vercel로 이전한다.
- 중간에 재구축할 수 없다면 Lovable과 Claude를 함께 쓰고 중요한 페이지부터 SSR을 붙인다.
FAQ는 빈 root div, 클로킹의 조건, 전체 이전 비용, 시각 편집을 잃는 대신 얻는 개발 루프를 설명한다. 이 선택은 현재 출시 속도와 앞으로 필요한 검색 제어권을 함께 계산한 뒤 내려야 한다. 이 내용은 다음 검토자가 같은 사실을 독립적으로 확인할 수 있게 한다. 이 근거는 팀이 다음 실험의 성공 조건을 정하는 데 사용한다.
Google은 왜 Lovable 페이지를 바로 색인하지 못하는가?
Lovable은 클라이언트 렌더링 React 번들을 보내므로 최초 HTML이 빈 root div다. Googlebot의 첫 크롤링에는 그 빈 HTML만 잡히고, 권위가 없는 새 도메인은 JavaScript를 렌더링하러 다시 오지 않을 수 있다.
Cloudflare Worker 수정은 클로킹으로 간주되는가?
봇이 JavaScript 실행 뒤 사용자가 보는 것과 같은 내용을 받는다면 클로킹이 아니다. 봇에 사전 렌더링 HTML을 주는 것은 널리 쓰이는 SEO 방식이며, 사용자와 다른 내용을 줄 때만 문제가 된다.
전체 마이그레이션 비용은 얼마인가?
직접 하면 주말과 Vercel·Supabase 무료 계정이면 된다. Start Apps Studio에 맡기면 보통 한 스프린트 정도이며 MVP Production 패키지에 포함된다.
이전한 뒤에도 시각적으로 편집할 수 있는가?
Lovable의 브라우저 편집기는 잃지만 일반 개발 루프를 얻고 저장소 위에 다른 시각 도구나 AI 빌더를 붙일 수 있다. 대부분의 팀은 Claude Code의 빠른 반복을 경험하면 편집기를 그리워하지 않는다.