구글 애드센스 "사이트가 다운되었거나 사용할 수 없음" 에러 해결기 (robots.txt 404)

#AdSense #애드센스 #Cloudflare #robots.txt #SearchConsole #트러블슈팅

블로그를 만들고 구글 애드센스를 신청했는데, 뜻밖의 이유로 불발되었다. 내 사이트 도메인으로 접속도 잘 되고 다운된 적도 없는데, 애드센스 측에서는 “사이트가 다운되었거나 사용할 수 없음” 또는 “찾을 수 없음” 이라는 결과를 보내왔다.

답답한 마음에 원인을 찾아보다가, 구글 크롤러가 사이트를 읽어가지 못하게 만드는 결정적인 단서를 발견했다.

1. 원인은 커스텀 404 페이지

웹사이트의 크롤링 정책을 확인하기 위해 브라우저 주소창에 umnoni.com/robots.txt 를 입력해 보았다. 그런데 텍스트 파일이 나와야 할 자리에 내가 프레임워크로 만들어 둔 404 에러 페이지 가 뜨고 있었다.

이것이 핵심 원인이었다. 구글의 애드센스 정보 수집 로봇(봇) 은 사이트를 방문할 때 가장 먼저 robots.txt 파일을 찾는다. 그런데 정적 파일이 위치해야 할 곳에 해당 파일이 없으니 라우터가 커스텀 404 페이지 를 띄워버린 것이다. 구글 봇은 이 복잡한 HTML 문서를 텍스트 파일로 착각해 억지로 해석하려다가 오류를 일으키고, 결국 사이트에 접근할 수 없다고 판단해버린 것이다.

2. 해결 방법: public 폴더에 정적 파일 추가하기

클라우드플레어로 배포되는 프론트엔드 프로젝트 환경에서는 정적 파일이 지정된 위치에 없으면 라우터가 이를 없는 페이지로 인식한다. 따라서 봇이 읽을 수 있는 텍스트 파일을 프로젝트 내에 직접 만들어 주어야 했다.

프로젝트의 정적 파일들이 위치하는 public 폴더 최상단에 robots.txt 파일을 직접 생성하고, 아래의 코드를 작성했다.

User-agent: *
Allow: /

User-agent: Mediapartners-Google
Allow: /

이렇게 애드센스 봇의 접근을 허용하는 코드를 작성한 후 프로젝트를 다시 빌드하고 배포했다.

3. 클라우드플레어 캐시 삭제

배포가 끝났다고 바로 반영되는 것은 아니다. 클라우드플레어가 이전의 404 페이지 를 캐싱하고 있을 수 있기 때문에, 대시보드에서 Purge Everything 을 눌러 캐시를 초기화해 주었다. (만약 봇 차단 기능인 Bot Fight Mode가 켜져 있다면 이 역시 꺼두는 것이 좋다.)

4. 구글 서치 콘솔로 정상 적용 확인

조치가 끝난 후 구글 봇이 정말 내 사이트를 잘 읽어갈 수 있는지 확인하기 위해 구글 서치 콘솔URL 검사 도구를 사용했다.

umnoni.com/robots.txt 를 검색창에 입력하고 실제 URL 테스트 를 실행했다. 그 결과 HTTP 응답 코드가 200 으로 정상적으로 떨어지는 것을 확인했다.

화면 상단에 “URL이 Google에 등록되어 있지 않음”이라고 뜨는 것은 검색 결과에 노출되지 않는 단순 설정 파일이기 때문에 지극히 정상이다. 핵심은 봇이 차단되지 않고 통과하여 200 OK 가 뜨느냐였다.

5. 남은 것은 쿨다운 기간 기다리기

문제를 모두 해결하고 다시 애드센스 검토를 요청하려고 했더니, 단기간에 검토 요청이 몰려 검토 요청 제한 에 걸려 있었다. 아쉽게도 일주일 뒤인 3월 8일에나 다시 요청할 수 있다고 한다.

기존 사이트를 삭제하고 새로 추가하면 대기열이 더 밀리거나 스팸으로 분류될 위험이 있기 때문에, 기존 등록 상태를 유지하며 얌전히 3월 8일을 기다리는 것이 가장 안전한 방법이다. 남은 기간 동안 포스팅을 몇 개 더 작성하면서 다음 심사를 준비해야겠다.

이 포스팅은 AI의 도움을 받아 초안을 작성하고, 직접 검수 및 편집한 글입니다.