클라우드플레어 애드센스 이슈 극복기, 502 에러 지옥부터 애드센스 광고 송출 재개까지: 봇 차단과 크롤러 최적화 총정리

-

최근 보안과 속도 개선을 위해 클라우드플레어를 적용했습니다. 하지만 적용이루 애드센스 광고 수익이 0으로 급락했습니다. 여기서는 이런 이슈를 개선하는 괒엉ㅇ을적은 클라우드플레어 애드센스 이슈 극복기, 502 에러 지옥부터 애드센스 광고 송출 재개까지: 봇 차단과 크롤러 최적화 총정리했습니다.

워드프레스(Newspaper 테마)를 Ubuntu/Nginx 및 PHP-FPM 8.4 환경에서 운영하며 클라우드플레어(Cloudflare)를 도입하는 과정은 보안과 속도 측면에서 필수적이지만, 설정이 어긋나는 순간 서버 502 에러와 애드센스 광고 증발이라는 거대한 부메랑으로 돌아올 수 있습니다.

워드프레스 클라우드플레어 설치 완료
워드프레스 클라우드플레어 설치 완료

최근 겪었던 악몽 같은 트래픽 폭탄과 보안 설정 충돌, 그리고 이를 극복하고 수익을 정상화한 전 과정을 기록합니다.

1. 마주했던 문제 상황 (트리거)

  • 서버 다운 (502 Bad Gateway): 정체 불명의 해외 대량 트래픽(미국·싱가포르·중국·네덜란드 등 수만 건)이 서버 자원을 소모하면서 Nginx와 PHP-FPM이 뻗어버림.
  • 애드센스 페이지뷰 3회 미만 폭락: GA4 활성 사용자는 하루 100명이 넘는데 애드센스 페이지뷰가 1~2회로 곤두박질침.
  • 광고 송출 중단 및 미리보기 404 오류: 구글 애드센스 대시보드에서 사이트 미리보기를 열면 "페이지를 찾을 수 없습니다" 에러가 발생하며 사이트를 긁어가지 못함.

2. 원인 분석: 무엇이 충돌을 일으켰나?

  1. 클라우드플레어 WAF의 과도한 봇 방어:
    • 해외 불량 봇을 막기 위해 무차별적으로 국가별 챌린지 규칙을 세웠으나, 이 과정에서 구글 애드센스 크롤러(Mediapartners-Google)와 미리보기 봇까지 차단당함.
    • 구글 봇이 사이트를 긁지 못하자 애드센스 시스템은 해당 도메인의 광고 송출을 전면 보류(Unfilled) 처리함.
  2. Nginx 보안 헤더(X-Frame-Options)의 부작용:
    • 서버 보안 강화를 위해 설정해 둔 X-Frame-Options SAMEORIGIN 헤더가 구글 애드센스 대시보드 안에서의 iframe 미리보기 렌더링을 원천 차단함.
  3. 502 오류 당시의 깨진 캐시 잔재:
    • 서버가 다운되었을 당시 스크립트가 로드되지 않은 빈 HTML 페이지가 Nginx FastCGI 캐시와 클라우드플레어 에지에 그대로 저장되어 방문자에게 송출됨.

3. 단계별 완벽 극복 솔루션

① 클라우드플레어 WAF 커스텀 규칙 정립 (구글 봇 프리패스)

무작정 국가를 차단하면 수익형 블로그는 망합니다. 악성 봇만 골라내고 구글 인증 봇과 애드센스 크롤러는 무조건 통과시키는 예외 처리가 핵심입니다.

  • 1순위 (Admin Bypass / Skip): 관리자 IP 및 워드프레스 REST API(/wp-json/) 통신을 무조건 건너뛰도록 설정.
  • 2순위 (Block Foreign Bots / Managed Challenge): 미국·싱가포르·중국 등 주요 스크래핑 국가의 트래픽을 방어하되, 구글 인증 봇(cf.client.bot)은 제외하는 수식 적용:
    Plaintext(ip.src.country in {"US" "SG" "CN" "NL"} and not cf.client.bot)
  • 주의할 점: 싱가포르(SG)나 중국(CN)을 무조건 차단하는 구형 규칙에 not cf.client.bot 예외가 빠져 있다면 구글 아시아 데이터센터 크롤러가 막히므로 반드시 삭제하거나 비활성화해야 함.

② Nginx 보안 헤더(X-Frame-Options) 수정

구글 애드센스 대시보드의 ‘자동 광고 미리보기’가 404 에러를 뿜어낸다면 서버 설정 파일(/etc/nginx/security-headers.conf)을 점검해야 합니다.

  • 문제 코드: add_header X-Frame-Options "SAMEORIGIN" always;
  • 해결: 외부 도메인(구글 대시보드) 안에서 내 블로그가 프레임으로 로드되는 것을 허용하기 위해 해당 줄을 주석 처리(#)하거나 삭제한 후 Nginx를 리로드함:
    Bashsudo systemctl reload nginx

③ 서버 및 CDN 캐시 완벽 초기화 (Purge Everything)

오류 상태의 페이지가 캐시되어 있으면 아무리 설정을 바꿔도 소용이 없습니다.

  1. Nginx FastCGI 캐시 디렉터리 청소 및 재시작
  2. 클라우드플레어 대시보드 ➔ Caching ➔ Configuration ➔ [Purge Everything] 실행

④ 애드센스 자동 광고 및 코드 점검

  • 플러그인을 과도하게 쓰기보다 구글 자동 광고(Auto Ads)를 메인으로 활성화하고 광고 게재율(Ad load)을 적절히 조절.
  • Newspaper 테마의 헤더 광고란이나 위젯에 기존에 검증된 디스플레이 수동 광고 코드를 안정적으로 배치.

4. 트러블슈팅 완료 후 얻은 교훈

  • 보안과 수익은 균형이 생명: 방화벽을 너무 조이면 악성 봇뿐만 아니라 나의 ‘돈줄’인 구글 크롤러까지 차단하게 됩니다. 룰을 만들 때는 항상 and not cf.client.bot 또는 Mediapartners-Google 예외를 동반해야 합니다.
  • 캐시의 무서움: 서버 에러가 발생한 직후에는 반드시 CDN과 서버 캐시를 모두 비워야 엉뚱한 원인 찾기로 헤매는 시간을 줄일 수 있습니다.

지금 고생하고 계신 워드프레스 운영자분들도 위 순서대로 방화벽 예외 처리와 캐시를 점검하신다면, 서버 안정성과 함께 애드센스 수익 그래프가 다시 정상 궤도로 오르는 것을 확인하실 수 있을 것입니다!

guest
0 Comments
Oldest
Newest