짧은 답변

바이브 코딩 앱은 클라이언트 렌더링 때문에 크롤러에 빈 <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과 정식 페이지 목록이라는 두 단계로 끝난다. 마이그레이션의 목적은 도구를 바꾸는 데 있지 않고 콘텐츠와 운영 책임을 팀이 갖는 데 있다. 이 점검은 배포 후 데이터로 다시 측정하고 필요하면 순서를 바꾼다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다.

  1. DNS에 CNAME 하나를 추가해 사용자 지정 도메인이 Cloudflare Worker를 가리키게 한다.
  2. Lovable 안에 프롬프트 하나를 붙여 넣어 Worker가 서버 렌더링할 정식 페이지 목록을 갖게 한다.

프록시는 시간을 벌어 주지만 진지한 검색 유입에는 사람이 관리할 수 있는 일반 웹 스택이 필요하다. (Claude Code, Lovable, 2) 이 선택은 현재 출시 속도와 앞으로 필요한 검색 제어권을 함께 계산한 뒤 내려야 한다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다. 이 작업은 팀의 편집 기준과 구현 기준을 하나로 맞춘다.

10단계 레시피는 GitHub, Claude Code, Supabase, Vercel을 연결해 앱의 소유권과 배포 제어권을 되찾는다. 실행 전에는 봇 응답과 브라우저 응답의 내용이 같은지 확인하고 배포 뒤 실제 크롤링을 점검한다. 이 사례는 비용과 효과를 함께 기록해야 재현 가능한 교훈이 된다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다.

저장소를 GitHub에 올리고 Claude Code가 읽고 수정할 수 있는 작업 환경을 먼저 만든다. (10) 마이그레이션의 목적은 도구를 바꾸는 데 있지 않고 콘텐츠와 운영 책임을 팀이 갖는 데 있다. 이 기준을 적용하면 독자가 다음 행동을 망설이지 않는다. 이 관점은 빠른 결과보다 오래 유지되는 제품 신뢰를 우선한다.

  1. Claude가 쉽게 다룰 수 있도록 Lovable 프로젝트를 GitHub에 올린다.
  2. Claude Code를 로컬에 설치해 저장소를 직접 읽고 수정하게 한다.
  3. GitHub 원격 저장소나 로컬 경로로 Claude를 프로젝트 저장소에 연결한다.
  4. 데이터베이스와 인증을 위한 Supabase 프로젝트를 약 5분 안에 만든다.
  5. 다음 프롬프트로 Claude에게 Lovable 프로젝트를 일반 웹 스택으로 옮기고 저장소를 정리하게 한다: "이 Lovable 프로젝트를 일반 웹 스택으로 이전하고 저장소를 깔끔하게 구성해 줘."
  6. Vercel 호스팅을 설정하며 무료 요금제는 대부분의 MVP를 감당한다.
  7. 필요한 환경 변수와 API 키를 Claude에게 찾아 달라고 요청한다.
  8. 키를 만들고 Supabase 키와 API 토큰 등이 담긴 .env 파일을 생성한다.
  9. Claude에게 배포를 구성하게 해 GitHub에서 Vercel로 이어지는 흐름과 Supabase를 연결한다.
  10. 문제가 생기면 한 번에 오류 하나씩 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의 빠른 반복을 경험하면 편집기를 그리워하지 않는다.