로그스톤 샵 LogStone Shop TIL 5
파일이 없을 때 조용히 실패하지 않는다는 걸 이틀에 걸쳐 두 번 배웠다.
없는 것과 틀린 것
빈 자리가 엉뚱한 답을 돌려준다
정적 호스팅은 파일이 없는 주소를 요청받으면 오류 대신 홈 화면을 정상 응답으로 돌려주기도 한다. 이틀 새 같은 함정에 두 번 걸렸다.
한 번은 내려 둔 소개 페이지가 멀쩡히 열렸다. 지웠는데 왜 열리나 싶었는데 그 자리에 홈 내용이 오고 있었다. 또 한 번은 광고 인증 파일을 안 올린 상태에서, 광고 쪽이 그 주소를 읽고 홈 화면을 인증 파일로 해석해 “파일은 있는데 내용이 맞지 않는다”고 진단했다. 없는 것보다 헷갈리는 상태다.
여기서 얻은 판단은 이렇다. 무언가를 내리거나 새로 올렸으면 배포 뒤에 그 주소를 직접 열어 본다. 성공 신호만 보면 안 되고 내용이 기대한 것인지까지 봐야 한다. 시스템이 빈손을 조용히 넘기지 않고 그럴듯한 오답을 내놓을 수 있다는 걸 전제로 확인한다.
잠시 닫는 것과 영영 닫는 것은 신호가 다르다
페이지를 내릴 때 무엇으로 응답할지 고를 수 있고, 셋의 뜻이 다르다.
- 없다고 답하기 — 검색엔진이 색인에서 지운다. 다시 열 계획이면 그동안 쌓은 노출을 버리는 셈이다
- 주소가 바뀌었다고 답하기 — 색인이 새 주소로 넘어간다. 되돌려도 원래대로 돌아오는 데 시간이 걸린다
- 잠깐 다른 곳을 보라고 답하기 — 원래 주소를 계속 들고 있는다
출시 대기처럼 곧 되살릴 페이지는 세 번째가 맞다. 며칠 닫는 일에 첫 번째나 두 번째를 쓰면, 문 여는 날 검색에서 다시 시작하게 된다.
한 가지 더. 닫는 규칙의 범위를 넓게 잡으면 그 아래 있는 주소까지 함께 끊긴다. 소개 페이지와 방침이 같은 폴더에 있으면, 폴더째 닫는 순간 앱에 박힌 방침 주소도 죽는다.
광고가 붙는 앱의 도메인
재고 판매 권한을 도메인으로 증명한다
광고가 붙은 앱은 “이 앱의 광고를 팔 권한이 누구에게 있는가”를 개발자 웹사이트로 증명한다. 스토어에 적힌 웹사이트를 광고 쪽이 찾아와 그 도메인에 놓인 선언 파일을 읽는 구조다.
알아 둘 것은 셋이다.
- 계정 단위라 파일 한 줄이면 그 계정의 모든 앱이 커버된다. 앱이 늘어도 그대로 둔다
- 위치가 도메인 최상단이어야 한다. 하위 경로에 두면 못 찾는다
- 없으면 실제로 손해다. 일부 광고 구매자가 인증 안 된 재고를 입찰에서 제외한다
세 번째가 중요한 이유는 원인 구분이 어렵기 때문이다. 신규 앱은 원래도 광고가 잘 안 붙는 시기라, 인증이 빠진 탓인지 앱이 작아서인지 구분이 안 된다. 그래서 이건 나중에 확인할 일이 아니라 출시 전에 해 둘 일이다.
또 하나, 스토어에 적은 웹사이트 주소와 파일을 올린 도메인이 같아야 한다. 이건 콘솔 설정이라 코드에서 확인할 방법이 없어서, 확인했으면 어딘가에 적어 둬야 다시 묻지 않는다.
검색에 알리기
링크로 닿지 않는 페이지는 존재해도 발견되지 않는다
검색 크롤러는 링크를 따라다니며 페이지를 찾는다. 그래서 사이트 안에서 아무도 링크하지 않는 페이지는 있어도 없는 것과 같다.
우리 샵이 딱 그랬다. 페이지가 스물두 개인데 홈에서 링크로 닿는 건 제품 셋뿐이고, 제품별 방침·약관 열두 개는 앱과 스토어에서만 쓰는 주소라 사이트 어디에서도 링크되지 않는다.
목록 파일 하나로 “이 사이트에 이런 주소들이 있다”를 넘기면 이 구멍이 메워진다. 링크 구조에 의존하지 않고 알리는 방법이 따로 있다는 걸 알게 된 게 소득이다.
언어별 페이지가 있으면 목록에 그 관계도 같이 담는다. 그래야 영어판과 한국어판이 중복 콘텐츠가 아니라 한 쌍으로 이해되고, 방문자 언어에 맞는 쪽이 결과에 나온다.
규칙 파일은 없는 것보다 잘못 있는 게 나쁘다
크롤러에게 주는 규칙 파일도 같은 함정을 만났다. 파일을 안 올린 상태에서 그 주소를 열면 홈 화면이 정상 응답으로 온다. 크롤러는 그걸 규칙으로 읽으려다 실패한다.
그래서 올린 뒤에는 형식까지 확인한다. 브라우저에 그럴듯한 화면이 나오는 것과, 기계가 읽을 형식으로 나오는 것은 다른 문제다.
검색 콘솔에 직접 제출하는 것은 별개다. 두면 언젠가 발견되지만, 제출하면 색인 상태와 오류를 화면으로 볼 수 있어 문제를 빨리 안다.
만든 것을 다시 쓰기
스토어용으로 만든 이미지를 사이트에 그대로 쓴다
앱 등록용 소개 이미지는 사이트에서도 쓸 수 있다. 다시 만들지 않는 편이 낫다 — 두 벌이 되면 문구가 갈라지고, 어느 쪽이 최신인지 알 수 없게 된다.
세 가지를 배웠다.
- 한국어와 영어 문구가 함께 박힌 이미지는 두 언어 페이지에 그대로 쓸 수 있다. 대체 텍스트만 갈라 주면 된다
- 이미 기기 화면 모양으로 만들어진 이미지에는 액자를 덧대지 않는다. 프레임 안에 프레임이 된다
- 스토어용 원본은 무겁지만 웹으로 내보낼 때 자동으로 줄어든다. 장당 1MB짜리가 30KB 아래로 떨어졌다
반영이 안 된 것처럼 보일 때 무엇을 먼저 가를까
광고 인증 파일을 사이트 맨 위 경로에 올리고 바로 열어 봤는데 옛 내용이 그대로 왔다. 파일이 잘못 올라갔나 싶어 다시 만지고 싶어지는 자리다. 이때 코드를 의심하기 전에 두 가지를 가른다. 배포가 아직 안 끝났는가, 아니면 응답이 중간 어딘가에 저장돼 있는가.
가르는 방법은 호스팅이 주는 원래 주소로 직접 열어 보는 것이다. 거기서 새 내용이 보이면 중간 어딘가에 옛 응답이 남아 있는 것이고, 거기서도 옛 내용이면 아직 배포가 안 끝난 것이다.
이 구분을 못 하면 멀쩡한 코드를 고치러 간다. 실제로 이번 건은 잠시 기다리면 되는 상황이었다.