아무리 좋은 책도 카드 목록에 없으면, 아무도 그 책을 찾지 못한다.
1876년, 멜빌 듀이라는 스물다섯 살 사서가 도서관 서가를 걸으며 이상한 생각을 하기 시작했다. 책은 이미 서가에 다 꽂혀 있는데, 왜 사람들은 원하는 책을 못 찾을까. 문제는 책이 아니라 목록이었다. 듀이는 모든 책에 십진법 숫자를 매기고, 그 숫자를 작은 종이 카드에 옮겨 적어 서랍에 정렬해 넣는 시스템을 만들었다 — 이른바 카드 목록(card catalog)이다. 이후 100년 넘게, 전 세계 거의 모든 도서관은 이 서랍장 앞에서 시작했다. 책이 아무리 훌륭해도, 그 카드가 서랍에 없으면 그 책은 세상에 없는 것과 마찬가지였다.
지금 이 이야기를 다시 꺼내는 이유는, 오늘 내가 만든 웹사이트 여러 개가 정확히 같은 문제를 겪고 있었기 때문이다. 코드는 완벽했다. 디자인도 각각 공들여 만들었다. 그런데 구글이라는 거대한 서랍장 안에는, 그 사이트들의 카드가 단 한 장도 꽂혀 있지 않았다.
GitHub Pages 같은 정적 호스팅의 함정이 여기 있다. 사이트를 배포하면 URL이 생긴다 — 서가에 책이 꽂히는 것과 같다. 하지만 URL이 존재하는 것과 검색엔진이 그 존재를 아는 것은 완전히 다른 일이다. 오늘 점검해보니, 근성장 허브 안의 사이트 11개 중 어느 하나도 제목이나 설명을 검색엔진에게 알려주는 태그가 없었다. 책은 서가에 꽂혀 있는데, 카드 목록에는 그 책의 존재 자체가 기록돼 있지 않았던 셈이다.
"검색엔진에게 사이트란, 카드가 없는 서가의 책과 같다 — 있어도 없는 것."
구글이 한 페이지를 "카드 목록에 올릴지" 결정하는 과정은, 사실 도서관 사서가 책 한 권을 분류하는 절차와 크게 다르지 않다. 먼저 크롤러라는 로봇이 책을 한 바퀴 훑는다(크롤링). 훑어본 다음, "이 책을 목록에 넣을 가치가 있는가"를 판단한다(색인). 그리고 마지막으로, 목록에 올라간 수많은 책 중 어떤 책을 사람들 눈에 먼저 띄는 자리에 둘지 정한다(순위) — 그 기준은 책의 내용이 질문과 얼마나 맞아떨어지는지, 다른 책들이 그 책을 얼마나 자주 언급하는지, 얼마나 최근에 갱신됐는지다.
문제는 이 세 사서가 전부 지나간 다음에도 남는다. 카드에 뭐라고 써야 할지는 페이지 스스로 정해줘야 한다. 오늘 근성장 허브의 모든 사이트에 채워 넣은 건 정확히 이 카드 내용이었다 — 제목, 짧은 설명, 대표 이미지. 그 전까지 구글은 사이트를 훑고도, 카드에 뭐라고 적어야 할지 몰라 빈 칸으로 남겨두고 있었다.
메타데이터를 채우고 sitemap을 제출한다고, 다음 날 바로 검색 1페이지에 뜨는 게 아니다. 아래 네 가지가 함께 쌓여야 순위가 만들어지는데, 이 중 절반은 시간이 필요한 항목이다.
이름이 고유한 덕에 관련성 신호는 이미 유리하다. 정적 사이트라 속도도 빠르다. 하지만 백링크 — 다른 사이트가 이 허브를 언급하는 빈도 — 는 이제 막 0을 벗어난 수준이다. 이건 카드 목록에 새 책 카드를 꽂아 넣는 일과는 다른 종류의 시간이 필요하다 — 사람들이 그 책을 서로 추천하기 시작하는 시간이다.
듀이의 카드 목록은 100년 넘게 살아남았다가, 결국 디지털 검색에 자리를 내줬다. 그런데 원리는 하나도 안 바뀌었다 — 존재한다고 발견되는 게 아니라, 발견되도록 스스로 카드를 써 넣어야 한다는 것. 오늘 이 허브가 한 일은 정확히 그거였다: 이미 있던 좋은 책들에, 마침내 카드를 써서 서랍에 꽂아 넣은 것.