혹시 사이트에서 지워버린 옛날 글이나 상품 페이지가 검색 결과에 계속 떠서 골치 아프신 적 없나요? 분명히 내용을 다 지웠는데, 검색 로봇은 눈치 없이 계속 그 페이지를 긁어가고 순위는 오히려 떨어지는 기이한 현상 말이죠.
오늘은 제 지인이 쇼핑몰 리뉴얼을 하면서 "페이지 없음" 처리를 잘못했다가, 검색 엔진에게 '불량 문서'를 양산하는 스팸 사이트로 오해받을 뻔했던 아찔한 이야기를 들려드리려 해요. 로봇과 대화하는 올바른 언어, 'HTTP 상태 코드'만 알면 해결될 일이었답니다.
🚦 검색 로봇에게 보내는 정확한 신호등 3가지
SIGNAL 1. 없는 페이지는 디자인만 보여주지 말고 404 (Not Found) 코드를 쏘세요.
SIGNAL 2. 이사 간 페이지는 자바스크립트 이동 말고 301 (Redirect)을 쓰세요.
SIGNAL 3. 서버 점검 중일 땐 200 OK가 아니라 503 (Service Unavailable)이 정답입니다.
💡 이웃님을 위한 용어 해설!
소프트 404 (Soft 404)란? 사용자가 볼 때는 "페이지 없음"이라는 안내 문구가 뜨지만, 실제 서버 신호는 "정상(200 OK)"이라고 거짓말을 하는 상황을 말해요. 검색 로봇을 혼란스럽게 만드는 주범이죠.
"품절 상품 지웠는데 왜 자꾸 노출돼?" 김 사장의 하소연
제 친구 김 사장이 운영하는 쇼핑몰에서 지난달에 대대적인 상품 정리를 했어요. 안 팔리는 상품 페이지 100개를 삭제하고, 접속하면 "판매가 종료된 상품입니다"라는 예쁜 이미지가 뜨도록 만들었죠. 김 사장은 고객들이 당황하지 않게 안내까지 했으니 일 처리를 완벽하게 했다고 생각했어요.
그런데 며칠 뒤, 웹마스터 도구에 경고등이 켜지기 시작했어요. 검색 로봇이 그 100개의 삭제된 페이지를 계속 수집해가면서 "내용 부실(불용 문서)" 판정을 내리고 있었거든요. 알고 보니 화면에는 '삭제됨'이라고 써놨지만, 정작 검색 로봇에게 보내는 서버 신호는 "200 OK(정상적인 페이지입니다)"라고 거짓 신호를 보내고 있었던 거예요.
이걸 전문 용어로 '소프트 404'라고 하는데, 로봇 입장에서는 "정상 페이지라길래 왔더니 내용은 껍데기뿐이네?"라며 사이트 신뢰도를 깎아먹게 되는 거죠.
빈 껍데기만 남은 페이지, 자바스크립트의 배신
또 흔히 하는 실수가 있어요. 페이지를 이동시킬 때 HTML 태그나 서버 설정이 아니라, 자바스크립트(JS)만 덜렁 써놓는 경우예요. 예를 들어, 옛날 주소로 접속하면 새 주소로 넘겨주기 위해 location.href = 'new_url'; 같은 스크립트만 딱 한 줄 적어놓는 거죠.
사람이 쓰는 브라우저는 이걸 해석해서 화면을 이동시켜 주지만, 네이버 검색 로봇은 상황이 좀 달라요. 로봇이 이 페이지에 딱 도착했을 때 HTML 코드를 보니 아무런 내용도 없고 자바스크립트 한 줄만 있거든요.
그러면 로봇은 "어? 이 페이지는 내용이 없는 빈 깡통이네?"라고 판단하고 색인(검색 노출) 대상에서 제외해 버려요. 이사가 목적이라면 반드시 301 Redirect 같은 서버 응답 코드를 사용해야 로봇도 "아, 이사가셨구나" 하고 따라간답니다.
🚫 상황별 최악의 대처 vs ✅ 최고의 대처
상황 1. 없는 페이지 (삭제됨)
🚫 (최악) "페이지 없음" 이미지만 띄우고 200 OK 전송
✅ (최고) 404 Not Found 코드 전송
상황 2. 서버 점검 중
🚫 (최악) "점검 중" 텍스트 띄우고 200 OK 전송
✅ (최고) 503 Service Unavailable 코드 전송
상황 3. 페이지 이동
🚫 (최악) 자바스크립트로 강제 이동
✅ (최고) 301 Moved Permanently 코드 전송
"서버 점검 중입니다" 로봇에게도 휴식 시간을 주세요
가끔 사이트 리뉴얼이나 호스팅 만료로 사이트 문을 잠시 닫아야 할 때가 있죠? 이때도 많은 분이 실수로 200 OK 코드를 남발해요. 화면에는 "점검 중"이라고 떠 있는데, 로봇에게는 "정상 영업 중"이라고 말하는 셈이죠. 이러면 로봇은 "점검 중"이라는 안내 멘트 자체를 유의미한 콘텐츠로 착각해서 수집해 가버려요.
나중에 검색 결과에 사이트 설명 대신 "점검 중입니다"라는 문구만 뜨는 참사가 벌어질 수 있죠.
이럴 때는 확실하게 503 (서비스 이용 불가) 코드를 보내줘야 해요. 그래야 로봇이 "아, 지금은 공사 중이네. 나중에 다시 와야겠다"라고 생각하고, 기존에 수집해 둔 좋은 정보들을 유지해 준답니다. 불필요한 오해로 잘 쌓아둔 점수를 깎아먹지 마세요.
📌 개발자에게 이렇게 요청하세요!
1. "삭제된 페이지는 이미지만 띄우지 말고, 실제 404 코드를 리턴해 주세요."
2. "로그인 안 한 사람이 접근하면 403 Forbidden 코드를 띄워 주세요."
3. "서버 점검 페이지는 반드시 503 코드로 설정해 주세요."
4. "리다이렉트는 자바스크립트 말고 HTTP 301/302로 처리해 주세요."