지난 편에서 원인 네 가지를 찾았다. 고치는 건 오히려 쉬웠다. 어려운 건 그 다음이었다.

고친 다음에 뭘 해야 하나

수정을 배포하고 나서 든 생각은 “이제 뭘 하지"였다.

검색엔진의 판단은 즉시 갱신되지 않는다. 여러 크롤 주기를 거치면서 천천히 바뀐다. 그동안 내가 할 수 있는 일은 사실상 없다. 그런데 아무것도 안 하고 기다리는 게 생각보다 훨씬 어려웠다.

뭐라도 해야 할 것 같은 기분이 계속 든다. 그리고 손이 근질거리면 대개 새 페이지를 만드는 쪽으로 간다. 그게 제일 눈에 보이는 진전이니까.

측정 구간이라는 개념

정리하다가 이 문제를 이렇게 바꿔 생각하게 됐다.

지금 나는 실험을 하나 돌리고 있는 것이다. 가설은 “위 네 가지를 고치면 회복된다"이고, 결과는 색인 수와 유입으로 측정한다. 그렇다면 실험이 끝날 때까지 다른 변수를 넣으면 안 된다.

이렇게 놓고 보니 명확해졌다. 회복을 기다리는 기간은 그냥 대기 시간이 아니라 측정 구간이다. 이 구간에 새 변수를 집어넣으면, 나중에 결과가 나와도 무엇 때문인지 알 수 없다. 좋아져도 왜 좋아졌는지 모르고, 나빠져도 원래 문제인지 새로 넣은 것 때문인지 모른다.

그래서 8주를 잡고, 그 기간에는 구글 쪽으로 나가는 신호를 늘리지 않기로 했다.

그런데 이미 망쳐놓은 뒤였다

문제는 이 결정을 하기 전에 이미 손을 대고 있었다는 점이다.

원인을 진단하는 동안에도 다른 쪽 작업은 계속 하고 있었다. 새로운 카테고리를 몇 개 붙였고, 그 과정에서 6주 만에 6만 개 가까운 URL이 사이트맵에 새로 올라갔다. 앞 편에서 말한 조합형 5만 개도 이 시기에 다시 등록됐다.

콘텐츠 자체는 나쁘지 않았다. 실제 공공 데이터였고, 카테고리끼리 겹치지도 않았다. 그런데 그건 중요하지 않았다.

검색엔진 분류기가 반응하는 건 페이지의 품질이 아니라 “짧은 시간 안에 대량의 신규 URL이 한꺼번에 나타나는 패턴” 자체다.

이걸 늦게 깨달았다. 나는 계속 “내용은 괜찮은데 왜 걸리지"를 물었는데, 애초에 내용을 보고 걸린 게 아니었다. 대량 생성 사이트라는 판정을 회복하려는 시점에, 대량 생성 사이트의 행동 패턴을 그대로 반복하고 있었던 것이다.

그것도 하필 회복 여부를 측정해야 하는 바로 그 구간에.

페이지 단위 처리는 면죄부가 아니다

여기서 가장 값비싼 교훈이 나왔다.

새로 붙인 카테고리들에는 얇은 페이지를 색인에서 빼는 처리가 다 들어 있었다. 그래서 나는 안전하다고 생각했다. 실제로 각 페이지를 열어보면 규칙을 지키고 있다.

그런데 페이지 단위 색인 지시를 통과하는 것과, 사이트가 안전한 것은 다른 이야기다.

페이지에 붙인 지시는 그 페이지 하나의 색인 여부만 정한다. 사이트 전체가 어떤 속도로 얼마나 많은 URL을 만들어내고 있는지는 그와 무관하게 관찰된다. 규칙을 하나하나 다 지켰는데도 집합의 모양이 문제일 수 있다.

이걸 한 줄로 적으면 이렇다.

개별 페이지가 규칙을 지킨다는 사실이 집합이 안전하다는 뜻은 아니다.

그래서 코드와 노출을 분리했다

결론은 만들기를 멈추는 게 아니라 만드는 것과 노출하는 것을 분리하는 쪽이었다.

  • 코드 작업과 페이지 생성은 계속한다
  • 다만 완성된 페이지를 검색엔진에 알리지 않는다
  • 사이트맵에 넣지 않고, 색인 요청도 하지 않는다
  • 측정 구간이 끝나면 그때 조금씩 나눠서 올린다

이렇게 하니 손을 놓지 않으면서도 측정을 보존할 수 있었다. 8주 동안 아무것도 안 한 게 아니라, 8주 동안 밖으로 안 내보낸 것이다.

지금 생각하면 처음부터 이렇게 했어야 했다. 발행 게이트를 따로 두는 건 별로 어려운 일이 아닌데, 그런 개념 자체가 없어서 만들면 곧바로 내보내고 있었다.

남은 생각

이 일로 배운 걸 순서대로 적으면 이렇다.

대량 생성은 규모가 커지는 순간 성격이 바뀐다. 백 개까지는 그냥 페이지가 많은 사이트지만, 수만 개가 되면 다른 종류의 물건이 된다. 같은 방식으로 계속 늘리면 어느 지점에서 선을 넘는데, 그 선이 어디인지는 넘고 나서야 안다.

바쁘게 움직이는 것이 진전은 아니다. 문제가 생겼을 때 뭐라도 하고 싶은 충동이 가장 위험했다. 특히 그 “뭐라도"가 원인과 같은 종류의 행동일 때는 최악이다.

측정할 수 없는 개선은 다음에 또 같은 실수를 부른다. 회복이 되든 안 되든, 무엇 때문인지 모르면 다음번에 똑같이 헤맨다. 그래서 결과보다 측정 구간을 지키는 게 우선이었다.

아직 완전히 회복되진 않았다. 이 글도 결말이 있는 이야기는 아니다. 다만 확실한 건, 원인을 찾는 데 걸린 시간보다 아무것도 하지 않기로 결정하는 데 걸린 시간이 더 길었다는 것이다.

자주 묻는 질문

Q. 구글에서 사이트가 강등된 뒤 회복까지 얼마나 걸리나요?

정해진 기간은 없습니다. 신뢰 신호가 다시 쌓이는 과정이라 수정 직후에 바로 반영되지 않으며, 여러 크롤 주기가 지나야 판단이 갱신됩니다. 중요한 것은 기간을 예측하는 일이 아니라, 그 기간 동안 새로운 변수를 넣지 않아 무엇이 효과가 있었는지 판별할 수 있게 만드는 것입니다.

Q. 페이지마다 noindex 처리를 했는데도 대량 생성 콘텐츠로 판정될 수 있나요?

가능합니다. 페이지 단위 색인 지시는 개별 페이지의 색인 여부만 결정할 뿐, 사이트 전체가 어떤 속도와 규모로 새 URL을 만들어내는지는 그와 별개로 관찰됩니다. 짧은 기간에 대량의 신규 URL이 한꺼번에 등장하는 패턴 자체가 신호가 되므로, 개별 페이지가 모두 규칙을 지켜도 집합 수준에서 문제가 될 수 있습니다.