개발 로그에는 무엇을 언제 고쳤는지가 날짜순으로 적혀 있습니다. 이 글은 그 로그에는 안 담기는 이야기입니다 — 애드센스 심사에서 다섯 번 거절당하며 실제로 무엇을 잘못 판단했고, 어떻게 다시 진단했는지에 대한 회고입니다.
1. 첫 거절: "가치가 별로 없는 콘텐츠"
애니 시맨틀은 게임 하나로 시작했습니다. 입력창, 결과 테이블, 그게 전부였습니다. 첫 애드센스 심사에서 "가치가 별로 없는 콘텐츠"라는 사유로 거절당했을 때, 저는 이 문장을 곧이곧대로 받아들였습니다 — 콘텐츠가 부족하다 = 페이지가 부족하다라고요.
2. 두 번째 거절: 실수를 34배로 키우다
그래서 전체 작품·캐릭터 목록 페이지를 만들었습니다. 그래도 다시 거절당하자, 이번엔 장르별 페이지를 36개(17개 장르 × 한국어/영어) 한 번에 추가했습니다. 결과는 세 번째 거절이었는데, 사유는 똑같았습니다 — "가치가 별로 없는 콘텐츠".
돌이켜보면 당연한 결과였습니다. 이 페이지들은 전부 MyAnimeList 데이터를 다른 레이아웃으로 다시 보여준 것에 불과했습니다. 페이지 수를 34배로 늘린다고 콘텐츠의 가치가 34배로 늘어나지 않습니다. 오히려 "가치 낮은 페이지가 압도적으로 많은 사이트"라는 신호만 34배로 키운 셈이었습니다.
이 시점에 방향을 바꿨습니다. 장르 페이지 전체를 noindex 처리해
검색 노출에서 뺐고, 대신 이 사이트에서만 나오는 데이터 — 매일 갱신되는
정답 아카이브 — 를 새로 만들었습니다. 게임
소개 페이지에는 유사도 가중치를 어떤 근거로 정했는지 실측 데이터를 그대로
공개했습니다.
3. 세 번째 거절: 내가 보는 것과 구글이 보는 것은 다르다
대응 방향을 바꿨는데도 세 번째 심사 역시 거절당했습니다. 이번엔 다르게 접근했습니다 — 제가 사이트를 어떻게 보는지가 아니라, Google Search Console이 실제로 무엇을 색인했는지부터 열어봤습니다.
색인된 페이지는 12건이었습니다. 그중 5건이 문의·개인정보처리방침 페이지였습니다. 콘텐츠 페이지는 몇 개 안 만들었어도, 그 몇 개조차 "구글이 실제로 읽고 있는 목록" 안에서는 보일러플레이트 페이지에 밀려 있었던 겁니다. 제가 아무리 about 페이지에 공을 들여도, 구글의 색인 코퍼스 관점에서는 그 페이지가 12건 중 1건, 그리고 절반은 정형화된 법적 페이지라는 구조가 그대로 남아 있었습니다.
교훈은 단순합니다 — "콘텐츠가 충분한가"는 내가 판단할 게 아니라, 검색엔진이 색인한 목록을 직접 열어서 확인해야 하는 질문입니다.
4. 정책 위반처럼 보였던 건 사실 버그였다
같은 조사 과정에서 전혀 다른 문제도 발견했습니다. 내부 링크와 캐노니컬 태그가
.html 확장자 URL을 가리키고 있었는데, 호스팅이 이를 임시(307)
리디렉션으로 처리하고 있었습니다. 307은 "임시"라서 구글이 원래 URL을 계속
붙들고 있었고, 그 결과 contact와 contact.html이 각각
따로 색인되는 등 중복 색인이 발생하고 있었습니다.
sitemap도 3주 가까이 재수집이 안 되고 있었는데, 원인은 몇 주 전 버전에 남아있던
<changefreq>quarterly</changefreq> — sitemap 프로토콜에
없는 값이었습니다. 이미 삭제한 값인데도 구글이 그 버전을 기억하고 있었던 겁니다.
둘 다 "콘텐츠 가치"와는 무관한 순수 기술적 결함이었습니다. 그런데 색인 코퍼스가 얇고 지저분해 보이는 데는 이 버그들도 한몫했을 가능성이 있습니다 — 중복 색인은 같은 콘텐츠가 자리를 두 번 차지하는 셈이고, 재수집이 막힌 sitemap은 새 콘텐츠가 아예 구글 눈에 안 들어온다는 뜻이니까요.
5. 네 번째 거절: 채우는 것과 쓰는 것은 다르다
사이트 전체 50개 파일의 내부 URL을 확장자 없는 형태로 통일하고, sitemap을 재제출했습니다. 정답 통계 페이지와 참여자 수 집계 기능도 이 과정에서 추가했습니다. 그리고 정답 아카이브의 날짜마다 한 줄짜리 코멘트를 직접 써 넣었습니다 — "매일 자동 생성되지만 사람이 하나도 안 거친 페이지"라는 인상을 벗으려는 의도였습니다.
네 번째도 거절이었습니다. 사유는 네 번 모두 같았습니다.
이번엔 제가 쓴 코멘트를 다시 읽어봤습니다. 24개 날짜에 총 334자, 평균 13.9자. 22개가 20자 미만이었습니다. 그리고 그중 상당수는 이런 문장이었습니다 — "몰라요", "고전 명작(본 적 없음)", "최신 로맨스는 안 봐서 몰라". 작성자가 그 작품을 모른다고 적어둔 코멘트입니다.
독자에게 아무것도 주지 않는 문장이었습니다. 오히려 빈 칸을 채워야 해서 채운 흔적에 가까웠습니다. thin content를 벗어나려고 코멘트를 넣었는데 그 코멘트 자체가 thin content의 교과서적 사례였던 겁니다. 2장에서 페이지 수로 대응했던 실수를, 이번엔 글자 수로 반복한 셈입니다.
그래서 전부 지웠습니다. 장르 페이지 34개를 noindex 처리했던 것과 같은 판단입니다 — 가치가 없는 것은 늘리는 것보다 없애는 편이 낫습니다. 아카이브에 남긴 건 정답별 상위 유사 항목 표와 그 분포를 데이터로 요약한 문장뿐입니다. 적어도 이건 이 사이트에서만 나오는 숫자입니다.
6. 다섯 번째 거절: 물량은 답이 아니었습니다
네 번째 거절 직후 제가 이 글에 적었던 결론은 이랬습니다 — "코드로 만들 수 있는 건 다 만들었다. 필요한 건 이 게임을 하는 사람이 읽을 이유가 있는 글이다." 그래서 그걸 했습니다. 유사도 데이터를 여러 각도로 캐서 분석 글을 다섯 편 썼고, 장르 가이드 두 편을 전수 데이터로 다시 썼고, 스포츠와 초자연 편을 새로 더했습니다. 정형 페이지는 색인 대상에서 뺐고, 아카이브 해설은 데이터 조건에 따라 문장이 갈리도록 다시 짰습니다.
읽을거리로 쓴 글은 5,385자에서 35,832자로 6.7배가 됐습니다. 색인 대상 주소는 22개에서 34개가 됐습니다. 네 번째 거절의 원인으로 제가 지목했던 여섯 가지가 하나도 재발하지 않았다는 것도 하나씩 다시 재어 확인한 뒤에 신청했습니다.
결과는 1~4차와 글자 하나 다르지 않은 사유의 거절이었습니다.
이건 앞선 네 번과 성격이 다릅니다. 이전에는 매번 "무엇을 놓쳤는가"를 찾으면 답이 나왔습니다. 이번에는 놓친 게 없었습니다. 그러면 남는 질문은 하나뿐입니다 — 지금까지의 방향이 애초에 이 판정을 뒤집을 수 있는 종류였는가. 분량을 6.7배로 늘려도 판정이 그대로라면, 적어도 분량은 이 판정을 결정하는 변수가 아니었다는 뜻입니다.
그래서 방향을 바꿨습니다. 글을 더 채우는 대신 사이트 구조 자체를 손봤습니다. 한국어판이 사이트 루트를 차지하고 영어판만 하위에 있던 구조를 언어별로 나누고, 루트를 언어 선택 화면으로 새로 만들었습니다. 홈에서는 게임을 여전히 첫 자리에 두되, 게임과 분석과 데이터를 같은 크기로 놓았습니다.
여기서 한 가지는 정직하게 적어둡니다. 이 구조 변경이 승인을 가져온다는 근거는 없습니다. 구글의 실제 판정 기준은 공개돼 있지 않고, 저는 다섯 번 모두 같은 정형 문구만 받았습니다. 다만 다섯 번째까지 오면서 확실해진 건, 같은 방향을 더 세게 반복하는 것이 답이 아니라는 것입니다.
7. 지금 남은 것
다섯 번을 거치며 확인한 건, 제가 "이제 남은 건 트래픽"이라고 판단했던 시점마다 그 판단이 틀렸고, "이제 남은 건 원고량"이라고 판단한 시점 역시 틀렸다는 사실입니다. 두 번 다 하나의 변수로 설명하려 한 게 문제였습니다.
이 중 하나는 이후 실제로 재봤습니다. 배포 전 점검 과정에서 아카이브 개별
항목에 "참여 N명 · 정답률 X%"가 그대로 노출되고 있던 걸 발견했는데, 이건 네
번째 거절의 원인 중 하나로 이미 지목했던 패턴이 stats.html 감사
사각지대에서 재발한 것이었습니다 — 네·다섯 번째 거절 기간 내내 라이브로 노출되고
있었을 가능성이 높습니다. 해당 렌더링을 지우고, 아카이브를 최근 14일 상세 +
이전 기록 압축 요약표로 다시 짜서 페이지당 정보 밀도를 높였습니다. 트래픽 신호
쪽은 공식 최소 요건 문서가 없어, 이번엔 낮은 수치를 드러내지 않는 것 이상의
조치는 하지 않기로 했습니다. 콘텐츠 획일성 가설은 아직 손대지 않았습니다 — 이미
캐냈지만 기사로 옮기지 않은 데이터로 형식이 다른 글 한 편을 시험해볼 계획입니다.
여섯 번째 신청은 이 가설 대응과 별개로, 지금 진행 중인 검색 재수집이 안정되는
걸 먼저 확인한 뒤에 하려고 합니다.
8. 만드는 사람에게
- "콘텐츠 부족" 거절에 페이지 개수로 대응하지 마세요. 같은 데이터를 다른 틀로 재포장한 페이지는 늘어나도 가치가 늘지 않습니다.
- 색인 코퍼스를 직접 열어보세요. 내가 만든 콘텐츠가 아니라, 검색엔진이 실제로 색인한 페이지 목록을 봐야 진짜 문제가 보입니다.
- "정책 위반"처럼 보이는 문제가 실은 기술 버그일 수 있습니다. 리디렉션 체인, sitemap 프로토콜 오류처럼 콘텐츠와 무관한 곳도 함께 점검하세요.
- 이 사이트에서만 나오는 데이터를 만드세요. 외부 API를 재포장한 페이지보다, 매일 쌓이는 자체 기록 하나가 더 강한 신호입니다.
- 채워 넣은 글자는 콘텐츠가 아닙니다. 빈 칸을 메우려고 쓴 한 줄은 심사자에게 정확히 그렇게 읽힙니다. 쓸 말이 없으면 칸을 없애세요.
- 하나의 변수로 설명하려 하지 마세요. "남은 건 트래픽", "남은 건 원고량" — 저는 같은 형태의 오진을 두 번 했습니다. 한 축을 크게 키웠는데 결과가 그대로라면, 그 축이 원인이 아니었다는 정보를 얻은 것입니다.
- 배포한 글도 틀린 채로 남습니다. 재보지 않고 쓴 문장은 공개된 뒤에도 계속 틀려 있습니다. 이 사이트에서는 여섯 곳에서 그런 문장을 발견해 정정문으로 바꿨습니다.