애드센스 심사 결과가 나왔습니다. 「가치가 별로 없는 콘텐츠」.

8월 10일에 이 사이트의 준비 상태를 정리하면서 "신청해도 되는 상태로 본다"고 적었습니다. 틀렸습니다. 무엇을 잘못 봤는지 적어 둡니다.

분량으로 판단했습니다

그때 제가 본 숫자는 이런 것이었습니다. 500자 미만 0건, 1,000자 미만 2건, 개발기 27편. 대부분 2,000자 이상. 그래서 통과할 것으로 봤습니다.

거절 뒤에 다시 쟀습니다. 색인 대상 73페이지 중 49페이지가 2,000자 이상입니다. 분량은 여전히 나쁘지 않습니다.

평균이 좋다는 것과 얇은 페이지가 없다는 것은 다른 이야기였습니다.

어디가 얇았나

짧은 순으로 세워 보니 답이 나왔습니다.

페이지본문
/search/127자
출시작 4종의 소개634 ~ 765자
/support/765자

/search/는 검색창과 빈 결과 영역뿐입니다. 그런데 색인 대상이었고 사이트맵에도 제출돼 있었습니다. 리뷰어가 표본으로 여기에 닿으면 읽을 것이 없습니다.

더 아픈 쪽은 두 번째 줄입니다. 스토어에 실제로 출시한 앱 넷의 소개가 가장 얇았습니다. 게임 개발기는 2,000자가 넘는데, 정작 사람들이 받아서 쓰는 앱들은 아이콘 하나에 기능 일곱 줄이었습니다. 화면 사진도 없었습니다.

앱 목록을 먼저 여는 사람에게는 이 사이트에서 제일 약한 페이지가 첫인상이었던 셈입니다.

고친 것

읽을 것이 없는 페이지는 색인에서 뺐습니다. /search//sitemap/noindex, follow로 돌리고 사이트맵에서 제거했습니다. 사람에게는 그대로 제공하되 콘텐츠로 내놓지 않습니다. follow를 남긴 것은 링크는 계속 따라가게 하기 위해서입니다.

색인하지 말라고 하면서 사이트맵으로 제출하면 두 신호가 서로 반대를 말합니다. 그래서 같은 변경에서 함께 뺐고, 이 조합은 배포 검사가 이미 실패로 잡습니다.

출시작 소개를 다시 썼습니다. 요약을 늘린 게 아니라 각 앱의 저장소와 문서를 읽고 왜 그렇게 만들었는지를 넣었습니다. 낚시일기가 로그인을 강요하지 않는 구조인 이유, 모임 앱이 카드에서 채팅방으로 바로 들어가게 둔 이유, 대회 앱이 「검증」을 별도 메뉴로 세운 이유 같은 것들입니다.

화면 사진도 넣었습니다. 안드로이드 앱 둘은 제 플레이 스토어 등록 화면에서 가져왔습니다. 정적 HTML에는 없어서 브라우저로 열어 렌더링된 화면에서 주소를 뽑았습니다.

1,000자 미만 색인 페이지가 6개에서 1개가 됐고, 그 하나도 이어서 채웠습니다.

그리고 아홉 개를 더 찾았습니다

위까지 고치고 분량을 다시 재다가, 색인 대상 목록에 본문이 0자인 페이지가 하나 보였습니다. 사진을 글자로 바꾸는 도구의 화면이었습니다. 혼자가 아니었습니다.

페이지본문
/ttm/7자
/furball/21자
/mission/28자
/rail/62자
/ocean/89자
/robo/97자
/city/105자
/fishing/140자
/racing/391자

전부 브라우저에서 도는 게임입니다. 화면 전체가 캔버스라 읽을 수 있는 글자는 로딩 문구 한 줄이 전부입니다. 그런데 아홉 개 다 크롤링과 색인이 열려 있었습니다.

크롤러가 이 도메인을 훑으면 거의 빈 페이지 아홉 개를 만납니다. 사람이 읽을 소개는 /apps/<slug>/에 이미 따로 있는데도요. 앞서 고친 /search/ 하나보다 이쪽이 훨씬 큽니다.

robots.txt로 막았습니다. 게임 경로는 각자 다른 워커가 서빙해서 Pages의 헤더 파일이 그 응답에 닿지 않고, 도메인 전체에 한 번에 걸리는 수단이 robots.txt뿐이었습니다. Pages가 직접 내주는 둘에는 헤더도 함께 걸었습니다 — robots.txt는 가져가지 말라는 요청일 뿐이라 링크로 발견된 페이지가 색인되는 것을 막지 못하기 때문입니다.

/tiny/(4,282자)와 /fps/(3,729자)는 열어 뒀습니다. 그 둘은 껍데기가 아니라 실제 소개 문서입니다. 경로 모양이 같다고 같은 취급을 하면 멀쩡한 문서를 검색에서 지웠을 것입니다.

남는 것

이번에 배운 것은 심사 기준이 아니라 제 측정 방식이었습니다.

얇은 페이지를 찾을 때 저는 앱 소개와 개발기만 세고 있었습니다. 게임 경로는 "콘텐츠가 아니니까" 하고 세는 대상에서 빼 뒀는데, 크롤러는 그렇게 나누지 않습니다. 같은 도메인에 있으면 전부 이 사이트의 페이지입니다. 세는 범위를 제가 정해 놓고 그 안에서만 확인한 것이 이번 오진의 형태였습니다.

분포를 볼 때 평균과 중앙값을 보고 있었고, 봐야 했던 것은 최악값이었습니다. 리뷰어는 평균 페이지를 읽지 않습니다. 몇 개를 골라 읽고, 그중 하나가 127자면 그게 인상이 됩니다.

그리고 사이트가 스스로에 대해 하는 말과 실제 상태를 계속 대조해야 한다는 것도요. 같은 실수를 며칠 전에도 했습니다 — 소개 문구가 "앱 일곱 개"라고 말하는 동안 실제로는 열두 개였습니다. 그때도 원인은 같았습니다. 사람이 한 번 적어 둔 값을 아무도 다시 확인하지 않는 것.