혹시 네이버나 구글 검색 결과에서 내 홈페이지가 엉망진창으로 깨져 보이거나, 아무리 글을 써도 메인 페이지만 노출되고 세부 페이지는 감감무소식인 적 없으신가요? "나는 분명히 보안 인증서(HTTPS)도 설치했고, 최신 기술로 멋지게 만들었는데 도대체 왜 이러지?"라며 억울해하실 수 있어요.
오늘은 제 지인이 사이트 보안을 강화하겠다고 문단속을 너무 철저히 하는 바람에, 정작 손님(검색 로봇)이 들어오지도 못하게 막아버렸던 '웃픈' 실수를 통해, 검색 로봇이 좋아하는 리소스와 링크 관리법을 아주 쉽게 알려드릴게요.
🚦 검색 로봇의 통행을 돕는 3가지 프리패스
PASS 1. robots.txt에서 JS/CSS 파일 차단을 해제하세요. (Disallow 금지)
PASS 2. 링크는 자바스크립트 함수 말고 <a href="주소">로 만드세요.
PASS 3. HTTPS 사이트라면 내부 이미지나 링크도 모두 HTTPS로 통일하세요.
💡 이웃님을 위한 상식!
현대의 웹사이트는 단순히 글자(HTML)만으로 이뤄지지 않아요. 화면을 예쁘게 꾸미는 CSS와 기능을 담당하는 자바스크립트(JS)가 합쳐져야 비로소 온전한 모습이 되죠. 로봇에게 이 파일들을 못 보게 막으면, 로봇은 뼈대만 앙상한 사이트로 인식한답니다.
"보안 때문에 막았는데요?" 개발자 친구의 헛발질
제 친구 중에 프리랜서 웹 개발자인 정 실장이라는 친구가 있어요. 실력은 좋은데 보안 의식이 좀 과해서 탈인 친구죠. 어느 날 이 친구가 관리하는 고객 사이트의 검색 노출이 너무 안 된다며 저에게 도움을 요청하더라고요. 사이트에 들어가 보니 디자인도 훌륭하고 내용도 알찼어요. 그런데 네이버 웹마스터도구에서 '사이트 최적화' 점수를 확인해 보니 엉망이었죠.
원인을 찾아보니 robots.txt 파일이 문제였어요. 정 실장이 "외부에서 우리 소스 코드를 보면 안 된다"라며 /js 폴더와 /css 폴더, 그리고 이미지 폴더인 /resources까지 전부 Disallow(수집 거부) 처리를 해버린 거예요.
사람 눈에는 브라우저가 알아서 보여주니까 멀쩡해 보였지만, 로봇 입장에서는 스타일도 없고 기능도 없는 '텍스트 쪼가리'만 보였던 거죠. 로봇이 사이트를 사람처럼 온전하게 보고 판단(렌더링)할 수 있도록, 리소스 파일의 문은 활짝 열어두셔야 해요.
클릭해도 갈 수 없는 길, 자바스크립트 링크
정 실장의 두 번째 실수는 바로 '링크'였어요. 쇼핑몰 상품 목록을 보는데, "더 보기" 버튼이나 상품 클릭이 전부 자바스크립트로 짜여 있더라고요. 소스를 까보니 <a href="javascript:viewItem(101)"> 이런 식으로 되어 있었죠.
이웃님, 검색 로봇은 아주 단순하면서도 원칙적이에요. 로봇은 오직 href="https://..."라고 적힌 정직한 표지판만 따라가요. "이 함수를 실행하면 이동해" 같은 복잡한 명령은 무시하거나 이해하지 못하죠. 결과적으로 로봇은 메인 페이지에 들어왔다가,
다른 페이지로 가는 길을 찾지 못하고 그냥 나가버리게 돼요. 수백 개의 상품이 있어도 로봇에겐 '길 없는 섬'이나 다름없는 셈이죠.
🚫 로봇이 길을 잃는 링크 vs ✅ 로봇이 좋아하는 링크
· 나쁜 예: <a href="#" onclick="goPage()">
(로봇: "갈 곳이 없네?")
· 나쁜 예: <a href="javascript:void(0)">
(로봇: "이건 그냥 장식이구나.")
· 좋은 예: <a href="https://mysite.com/news/1">
(로봇: "오! 뉴스 1번 페이지로 가면 되는군!")
자물쇠는 잠갔는데 창문이 열려있다? (HTTPS 혼용)
마지막으로 흔히 겪는 문제가 바로 '혼합 콘텐츠(Mixed Content)' 문제예요. 요즘은 보안 때문에 http:// 대신 자물쇠가 달린 https://를 많이 쓰시죠? 정 실장도 사이트 전체를 HTTPS로 잘 구축했어요. 그런데 정작 페이지 안에 들어가는 로고 이미지나 배너 링크는 예전에 쓰던 http:// 주소를 그대로 놔둔 거예요.
이렇게 되면 브라우저 주소창에 "주의 요함"이나 "안전하지 않음"이라는 무시무시한 경고가 떠요. 검색 로봇도 마찬가지예요. "어? 여긴 보안 사이트라면서 리소스는 보안이 안 된 걸 쓰네?"라며 신뢰도를 깎아버리죠. 심하면 이미지가 아예 안 뜨기도(엑박) 하고요. HTTPS를 적용하셨다면, 내부의 모든 링크와 이미지 주소도 s를 붙여서 프로토콜을 통일해 주셔야 해요.
📌 내 사이트 건강검진 체크리스트
1. robots.txt에 Disallow: /js, /css, /images가 있다면 삭제하세요.
2. 메뉴나 버튼 링크는 onclick 대신 반드시 href 속성에 주소를 적으세요.
3. HTTPS 사이트라면 내부 리소스 경로도 https://로 시작하는지 확인하세요.
4. 혹시 방화벽이 검색 로봇의 IP를 차단하고 있진 않은지 점검하세요.