문제 — 「발행 준비 완료」라고 부르던 원고 47편
회사 홈페이지에 쌓아 둔 리포트를 네이버 블로그용 원고로 바꾸는 변환기를 돌리고 있었다. 사람이 새로 쓰지 않고, 이미 홈페이지에 실린 글을 네이버 형식으로 옮기기만 하는 도구다. 그 변환기가 만든 원고 47편이 「발행 준비 완료」 상태로 폴더에 들어 있었다.
원고 형식은 하나였다. 리포트를 짧게 줄인 요약 한 덩어리, 그리고 전문을 보려면 우리 홈페이지로 오라는 링크 한 줄. 이 형식을 고른 이유는 분명하다. 본문을 남의 플랫폼에 통째로 올려 두면 검색 자산이 그쪽에 쌓이고 우리 도메인에는 아무것도 남지 않는다.
문제는 그 형식이 네이버에서 통하는지 한 번도 재본 적이 없다는 사실이었다. 통한다고 가정한 채 47편이 쌓였다. 네이버는 원문 없는 짧은 요약글을 저품질로 판정할 수 있고, 그렇게 걸리면 검색 결과에 나타나지 않는다. 나타나지 않으면 링크를 아무리 붙여도 우리 홈페이지로 넘어오는 사람이 0명이다.
즉 우리가 「발행 준비 완료」라고 부르던 상태가 실제로는 발행해도 아무 일이 일어나지 않는 상태였을 수 있다. 이 글은 그 가정을 실제 검색 결과로 재고, 형식을 바꾸고, 다시 잰 기록이다.
이런 상태의 비용은 눈에 잘 안 잡힌다. 서버가 죽지도 않고 오류도 안 난다. 폴더에는 원고가 늘어나고 진행 상황 문서에는 준비 완료라고 적힌다. 잘못된 것은 숫자가 아니라 그 숫자에 붙인 이름이고, 이름은 검사기가 잡아 주지 않는다.
변수를 더 늘릴 여유도 없었다. 우리가 파는 서비스와 직결된 검색어 40개 가운데 네이버 100위 안에 들어 있는 것이 1개뿐이었고, 그 상태가 5주 동안 움직이지 않았다. 같은 축에서 검색 노출이 안 붙는 원인을 다시 잰 기록도 이미 한 번 남겼다. 여기서 원고를 그냥 발행해 버리면, 노출이 0으로 나왔을 때 원인이 글 형식인지 도메인 힘인지 가를 방법이 없다.
처음 잰 숫자 — 상위 9건은 중앙 3,299자, 우리는 1,033자였다
먼저 잰 것은 우리 글이 아니라 남의 글이다. 우리가 노리는 검색어에서 지금 상위에 올라 있는 글이 몇 자짜리인지 모르면, 우리 원고가 짧은지 긴지 판단할 기준 자체가 없다.
측정 방법을 먼저 밝힌다. 순위는 네이버가 제공하는 공개 검색 API가 아니라 실제 검색 결과 화면을 직접 받아서(HTTP 200) 뽑았다. 공개 API가 돌려주는 목록의 순서는 사람이 검색창에 쳤을 때 보는 순위와 다르다. 이 도메인에서 가장 자주 밟는 함정이 바로 그 둘을 같은 것으로 취급하는 일이다.
본문을 세는 범위도 미리 못 박았다. 네이버 블로그 화면에는 본문 말고도 글자가 많다 — 옆에 붙는 메뉴, 이웃 목록, 버튼 라벨. 이것을 같이 세면 남의 글은 부풀고 우리 글은 그대로라 비교 자체가 무너진다. 그래서 스마트에디터가 만드는 본문 영역 안의 문단만 세기로 했다.
검색어는 우리가 파는 서비스에서 3개를 골랐다 — 홈페이지제작업체, AI 업무자동화, AI 챗봇 제작. 각각 상위 3건씩, 모두 9건의 본문 글자수를 셌다.
이 측정은 한 번 하고 버리는 작업이 아니다. 우리 원고 한 편과 검색어 목록을 넘기면 같은 절차가 다시 도는 형태로 만들어 뒀다. 다음에 형식을 또 건드릴 때 「그때는 그랬다」가 아니라 「지금 다시 재면 이렇다」로 답하려면 측정 자체가 다시 실행할 수 있는 물건이어야 한다.

- 본문 글자수 최소 1,966자 · 중앙 3,299자 · 최대 4,296자
- 본문 이미지 1~15개. 상위권에 이미지가 0개인 글은 한 편도 없었다
- 상위 글 제목은 경험담이나 단계 가이드형이다 — 「~해봤더니」, 「8단계 가이드」, 「~이유 공개」
같은 자로 우리 원고를 쟀다. 1,033자였다. 상위 하한 1,966자의 절반을 조금 넘는 분량이다. 중앙값 3,299자와 비교하면 3분의 1도 되지 않는다.

세운 가설 — 글자수만 채우면 노출이 붙는가?
여기서 세운 가설은 좁다. 「짧은 요약글은 저품질로 걸려 경쟁에 들어가지도 못한다. 그러니 분량을 상위 하한 위로 올리면 최소한 경쟁에는 들어간다.」 검증 대상은 글의 품질이 아니라 형식이다. 글자수가 순위를 만든다는 주장이 아니라, 글자수가 모자라면 순위를 겨룰 자격 자체가 없다는 주장이다.
이 가설을 세우면서 두 가지 다른 길을 명시적으로 버렸다. 버린 이유를 남겨 둔다 — 나중에 같은 자리에서 같은 유혹이 다시 온다.
| 안 | 내용 | 판정 |
|---|---|---|
| a | 요약형을 그대로 두고 일단 발행해 본다 | 기각 — 노출이 0으로 나와도 원인이 형식인지 도메인 힘인지 가를 수 없다. 서비스 검색어 40개 중 100위 안 1개·5주 무변이라 변수를 더 늘릴 여유가 없었다 |
| b | 상위 글처럼 경험담·단계 가이드형으로 새로 쓴다 | 기각 — 이미 쓴 재료 154편을 두고 집필을 시작하면 이 도구는 변환기가 아니라 집필기로 바뀐다 |
| c | 본문 전개형으로 바꾸고 인접 리포트를 재사용한다 | 채택 — 새 원고를 쓰지 않고 이미 쓴 것만으로 분량을 올린다 |
안 (b)를 기각한 이유는 품질이 아니라 도구의 성격이다. 한 사람이 굴리는 자동화에서 변환기가 집필기로 바뀌면 하루 처리량이 그 자리에서 무너진다.
채택한 (c)는 canonical 링크백 원칙과 정면으로 당긴다. 본문을 남의 플랫폼에 통째로 두지 않겠다는 규율을 우리가 먼저 만들어 놓고, 분량을 올리려면 그 규율을 밀어야 하는 상황이었다. 이 충돌을 어떻게 절충했는지는 조치 절에서 적는다.
가설이 틀린 지점 — 1차 측정의 5,252자는 본문이 아니었다
처음 돌린 측정은 상위 글 본문을 5,252~8,778자로 내놨다. 그 숫자를 그대로 믿었다면 이 작업은 시작하지도 않았다. 1,033자에서 8,778자는 여덟 배 넘는 격차이고, 이미 쓴 재료를 아무리 펴도 닿지 않는 거리다. 결론은 「형식을 바꿔도 소용없다」로 끝났다.
숫자가 이상해서 수집 대상을 열어 봤다. 네이버 블로그 화면에서 글자를 세는 자리가 본문 바깥까지 잡고 있었다. 사이드바, 메뉴, 버튼 라벨 같은 화면 구성 요소가 본문에 섞이면서 글자수가 부풀었다.
스마트에디터가 만드는 본문 영역 안에서 문단 단위만 세도록 범위를 좁혔다. 그렇게 다시 재니 1,966~4,296자가 나왔다. 같은 글, 같은 페이지인데 자를 고치는 것만으로 판정이 뒤집혔다 — 「따라잡을 수 없는 격차」가 「따라잡을 수 있는 격차」로.

우리 원고에도 같은 자를 댔다. 표의 행, 링크만 있는 줄, 머리기호 기호는 양쪽 모두 본문에서 뺐다. 한쪽에만 유리한 자를 대면 그 뒤의 모든 판정이 무의미하다.
이 반증이 남긴 규칙은 하나다. 비교 측정에서 먼저 의심할 것은 상대 값이 아니라 측정 범위다. 같은 유형의 오판을 자사 글끼리 순위를 나눠 먹는다고 잘못 진단한 기록에서도 한 번 겪었다.
진짜 원인 — 재료가 없어서가 아니라 접어 둔 채 내보냈기 때문
분량이 모자란 원인을 찾을 때 가장 먼저 떠오르는 설명은 「쓸 내용이 없다」다. 그런데 원본 리포트를 열어 보면 반대였다. 문단, 자주 묻는 질문, 어떻게 계산했는지 적은 방법론, 출처 목록이 전부 들어 있었다.
변환기가 그 가운데 요약만 뽑아 내보내고 나머지를 접어 뒀다. 부족한 것은 글이 아니라 펴는 규칙이었다. 게다가 같은 판매 축에 묶인 인접 리포트가 이미 여러 편 있었고, 그것도 원고에 붙어 있지 않았다.
확인은 간단했다. 원본 리포트 한 편을 열어 두고 그 리포트로 만든 원고를 나란히 놓으면, 어디서 잘렸는지가 눈으로 보인다. 자주 묻는 질문 묶음이 통째로 빠져 있고, 계산 방법을 적은 절이 한 줄 요약으로 줄어 있고, 출처 목록은 아예 없었다. 잘라 낸 분량이 곧 모자란 분량이었다.
인접 리포트도 마찬가지였다. 같은 서비스 축에 묶인 다른 리포트가 이미 홈페이지에 올라가 있는데, 원고에는 그 존재가 한 줄도 들어가지 않았다. 읽는 사람 입장에서 더 볼 것이 없는 글이었고, 검색 엔진 입장에서도 그 글은 홀로 떠 있는 짧은 문서였다.
이 진단이 중요한 이유는 조치의 성격을 바꾸기 때문이다. 재료가 없다면 답은 「글을 더 써라」이고, 그건 사람 시간을 매일 쓰는 일이다. 재료가 접혀 있을 뿐이라면 답은 「펴는 규칙을 고쳐라」이고, 그건 한 번 고치면 이후 모든 원고에 자동으로 붙는다.
조치 — 새 원고를 한 편도 쓰지 않고 분량을 올린다
변환기가 하는 일을 다섯 가지 고쳤다. 공통점은 하나다 — 새로 쓴 문장이 없다.
- 원본 리포트의 문단·자주 묻는 질문·방법론·출처를 접지 않고 전량 펴서 싣는다
- 같은 판매 축의 인접 리포트 3편을 「함께 보면 좋은 글」로 붙인다. 제목과 소개 한 줄은 원본에 이미 있는 값을 그대로 재사용한다
- 표는 상위 5행까지만 싣고, 전체 표와 계산기는 우리 홈페이지로 보낸다
- 판매 축에 매핑되지 않은 원고는 여전히 차단한다. 막는 쪽이 기본값이라는 규율은 그대로 뒀다
- 더 이상 팔지 않는 축의 원고 28편은 백업한 뒤 삭제한다
47편이 126편으로 늘어난 과정도 적어 둔다. 편수가 늘어난 이유는 글을 더 써서가 아니라, 그동안 변환 대상에서 빠져 있던 리포트를 규칙에 맞춰 다시 넣었기 때문이다. 반대로 더 이상 팔지 않는 축의 28편은 백업한 뒤 지웠다. 늘리기만 하면 지표는 좋아지지만 발행 목록에는 팔지 않는 서비스 글이 섞인다.
네 번째 항목은 눈에 잘 안 띄는데 중요하다. 판매 축에 매핑되지 않은 원고는 통과시키지 않고 막는다. 막는 쪽이 기본값이라 새 축이 생기면 매핑을 등록하기 전까지 원고가 나가지 않는다. 이 규율을 이번 변경에서 느슨하게 풀고 싶은 유혹이 있었지만, 분량을 올리는 작업과 무엇을 내보낼지 정하는 작업은 서로 다른 판단이라 그대로 뒀다.
세 번째 항목이 앞에서 말한 충돌의 절충안이다. 표를 전부 실으면 남의 플랫폼에서 우리 리포트가 끝나 버리고, 하나도 안 실으면 분량이 오르지 않는다. 상위 5행까지만 싣고 나머지는 우리 도메인으로 보낸다 — 분량은 오르고 자산은 남는다.
부수 효과가 하나 있었다. 인접 리포트를 붙이면서 원고 한 편당 우리 홈페이지로 향하는 내부 링크가 3개씩 늘었다. 원래 노린 것은 분량이었는데 링크가 따라왔다.
운영 쪽도 같이 걸었다. 매일 오전 8시 50분에 변환기가 자동으로 도는 일정을 등록했고, 형식이 다시 무너지지 않도록 지켜야 할 조건을 검사하는 회귀 검사 7건을 새로 만들었다. 원고의 강한 번역체는 0건으로 확인했다. 변경은 세 묶음으로 나눠 반영했다.
형식을 고쳐도 발행으로 이어지지 않던 구멍 하나
형식만 고치고 끝냈다면 원고는 계속 쌓이기만 했다. 같은 날 배선이 끊긴 자리를 하나 더 찾았다.
네이버 블로그에 실제로 글을 올리는 절차에는 원고를 읽어 제목·본문·태그로 쪼개는 준비 단계가 있다. 그 준비 단계가 읽는 위치가 다른 폴더의 파일 한 종류로 고정돼 있었다. 우리 변환기가 만드는 원고는 경로도 파일 이름도 달랐다. 그래서 원고가 아무리 쌓여도 발행 절차 안으로 들어갈 수 없었다.

준비 단계에 파일 경로를 직접 넘기는 옵션을 열어 이었다. 실제 원고 한 편으로 확인했다 — 제목, 평문 3,836자짜리 본문, 태그 5개로 정확히 갈렸다.
한 군데 더 있었다. 발행 담당자가 보는 체크리스트가 바뀌기 전 규율을 그대로 지시하고 있었다. 「본문은 요약과 링크만」이라고 적혀 있었으니, 형식을 바꿔 놓고 체크리스트를 두면 다음 발행에서 원상 복구가 난다. 발행 명령, 사용할 계정, 이미지 교체 항목까지 함께 고쳐 넣었다.
우리 도메인으로 돌아오는 원문 링크는 표본 3건 모두 정상 응답으로 살아 있음을 확인했다.
재측정 결과 — 중앙 2,101자, 126편 중 87편이 하한 안으로
고친 변환기로 전체를 다시 굽고, 처음과 같은 자로 다시 쟀다.

| 형식 | 본문 글자수 | 상위 하한 대비 |
|---|---|---|
| 기존 요약 + 링크 | 1,033자 | 불통과 |
| 본문 전개형 | 중앙 2,101자 (최소 923 · 최대 2,730) | 126편 중 87편(69%) 통과 |
같은 측정 범위·같은 제외 규칙으로 양쪽을 쟀다. 표 행·링크 줄·머리기호는 양쪽 모두 본문에서 뺐다.
- 원고 47편 → 126편 (더 이상 팔지 않는 축 28편은 백업 후 삭제한 뒤의 수치다)
- 본문 중앙 1,033자 → 2,101자
- 상위 하한 1,966자 이상 87편 = 전체의 69%
- 강한 번역체 0건 · 형식 회귀 검사 7건 신설 · 매일 오전 8시 50분 자동 실행 등록
「같은 자로 다시 쟀다」는 말에는 세 가지가 들어 있다. 첫째로 본문 범위를 스마트에디터 본문 영역 안의 문단으로 고정했고, 둘째로 표 행·링크 줄·머리기호를 양쪽 모두 뺐고, 셋째로 비교 상대인 상위 9건 값을 다시 뽑지 않고 그대로 뒀다. 개선을 재는 쪽이 자기에게 유리하게 자를 바꾸면 그 뒤의 모든 숫자가 무의미하다.
69%라는 수치의 뜻도 좁혀 둔다. 126편 가운데 87편이 상위 하한 위로 올라왔다는 말이지, 87편이 검색 결과 상위에 오른다는 말이 아니다. 나머지는 원본 리포트가 짧아 아무리 펴도 1,966자에 닿지 않는다. 그중 13편은 1,500자에도 못 미친다.
상위 하한을 목표선으로 삼은 이유도 여기서 밝힌다. 중앙 3,299자를 목표로 잡으면 첫 판정에서 126편 전부가 미달로 나오고, 그러면 형식 변경에 효과가 있었는지 없었는지 가를 수 없는 한 덩어리로 남는다. 하한선을 먼저 통과시키고 그 위를 다음 문제로 미루는 편이 판정을 두 번 나눠 받을 수 있다.
판정은 조건부 통과다. 기존 요약형은 불통과였고, 본문 전개형은 상위 노출 글의 하한선 안으로는 들어왔다. 다만 통과한 것은 「경쟁에 들어갈 자격」이지 「순위」가 아니다. 그 구분을 흐리면 다음 판정에서 자기 숫자에 속는다.
남는 한계 — 왜 중앙값 3,299자에는 한 편도 닿지 못했나?
본문 전개형의 최대값이 2,730자다. 상위 중앙 3,299자에 닿은 원고가 0편이라는 뜻이다. 중앙끼리 놓고 보면 2,101자와 3,299자로 약 1,200자가 벌어져 있다. 리포트 원본을 전량 펴도 그 이상이 나오지 않는다.
즉 남은 격차는 형식이 아니라 재료 분량이다. 메우려면 사례, 화면 캡처, 단계 설명을 새로 써야 하는데 그건 변환이 아니라 집필이고, 앞에서 기각한 안 (b)로 돌아가는 일이다. 이번 범위 밖에 두고 문서에 남겼다.
| 남은 것 | 내용 | 왜 지금 안 하나 |
|---|---|---|
| 중앙값 격차 | 약 1,200자 | 메우려면 새로 써야 한다 — 도구의 성격이 바뀐다 |
| 이미지 0개 | 원고에는 자리표시자 3곳만 있다 | 상위권에 이미지 0개인 글이 한 편도 없었으므로 발행 단계의 필수 작업으로 남긴다 |
| 제목 형식 | 우리는 리포트형, 상위는 경험담·가이드형 | 노출이 붙은 뒤 클릭률로 판정할 축이다 |
| 짧은 원고 13편 | 1,500자 미만 | 원본 리포트 자체가 짧다 — 우선순위를 뒤로 둔다 |
네 항목 모두 이번 변경으로 해결하지 않았다. 감추지 않고 남겨 두는 편이 다음 판정을 정확하게 만든다.

다음 판정 시점은 발행 후 4주다. 그때의 판정 기준은 이 글에 나온 글자수가 전부 아니다. 실제 검색 순위로 잰다. 글자수는 경쟁에 들어갔는지를 재는 앞단 지표이고, 들어간 다음에 어디에 서는지는 다른 문제다.
한 가지는 원고가 스스로 채울 수 없다. 이미지다. 변환기는 이미지를 넣을 자리 3곳을 표시만 하고 실제 그림은 발행 단계에서 사람이 붙인다. 상위 노출 글의 본문 이미지가 1~15개였고 0개인 글이 한 편도 없었으므로, 이 자리를 비운 채 올리면 앞의 분량 작업이 절반만 살아남는다.
다음 판정을 어떻게 할지도 미리 정해 뒀다. 우리 블로그 계정을 대상으로 판매 서비스 검색어를 넣어 실제 순위를 조회하는 절차를 그대로 쓴다. 판정 시점에 새로 방법을 고르면 결과가 좋은 쪽 방법으로 손이 간다 — 그래서 방법은 지금 고정하고 시점만 기다린다.
이번 작업에서 남길 것이 있다면 순서다. 우리는 형식을 정했고, 그 형식이 통하는지 재지 않은 채 47편을 쌓았다. 재는 데 든 시간은 하루가 안 걸렸다. 만들기 전에 재면 47편이 아니라 1편에서 알았을 일이다.
비슷한 자리에서 멈춰 있는 콘텐츠 파이프라인이 있다면 상담에서 우리가 어떻게 재는지부터 이야기한다.