메인 페이지로 연결되지 않는다?
구글에서 사이트의 링크를 클릭할 경우, 메인 페이지가 아닌 다른 페이지가 뜨는 현상이 있었다. 구글 크롤러가 다시 크롤링하기까지를 기다려서 해결이 되는 것인지 알 수 없었다. 우선은 당장 해결할 수 있는 방법이 있는지를 알아보아야 했다.
soft 404 처리가 되고 있다?
그러다 팀원분께서 "크롤러가 메인 페이지를 빈 페이지라고 판단하여, soft 404 처리를 하였네요"라고 하셨다.
그래서 soft 404는 무엇인지, robots.txt는 무엇인지에 대해 알아보았다.
(그전에, 팀원분은 soft 404임을 어떻게 아셨을까?)
soft 404란 사용자에게 페이지가 존재하지 않음을 알리는 페이지와 200
코드를 반환하는 URL이다.
경우에 따라 내용이 약간 있거나 아예 없는 페이지가 표시될 수 있다.
404
(Not Found)/410
(Gone: 해당 리로스에 접근하는 것이 서버에서부터 불가능하며, 이 현상은 영구적일 것임)이나 301
(Moved Permanently) 대신 200
코드(성공)을 반환하는 것은 좋지 않다.
성공 코드는 해당 URL에 실제 페이지가 있다고 검색 엔진에 알려준다.
따라서, 페이지가 검색 결과에 표시될 수 있고, 검색엔진은 실제 페이지를 크롤링하는데 시간을 쓰지 않고, 존재하지 않는 URL을 계속 크롤링하려고 시도한다.
페이지를 더이상 사용할 수 없다면?
404나 410 응답코드를 반환해야 한다. 410은 404보다 페이지가 영구적으로 존재하지 않음을 강조하는 응답 코드이다. 410을 반환하면 구글은 해당 페이지를 더이상 크롤링하지 않는다.
다른 페이지로 연결되는 링크와 같은 404페이지를 사용자에게 표시할 수도 있다.
페이지가 이동되었다면?
대체되는 페이지가 있다면, 301
(Moved Permanently)를 반환하여, 사용자를 적절히 리다이렉트시킨다.
페이지가 soft 404로 잘못 지정되었다고 생각한다면?
URL 검사 도구를 사용하여 렌더링된 컨텐츠와 반환된 HTTP 코드를 검토하라.
렌더링된 페이지가 전부 or 거의 비어있다면, 페이지에서 로드할 수 없는 리소스(이미지나 스크립트 등 텍스트가 아닌 요소)를 많이 참조하고 있기 때문일 수 있다. 이 경우 페이지가 soft 404로 해석될 수 있다.
리소스 로드의 실패 이유는
리소스가 차단되었거나(robots.404에 의해)
페이지에 너무 많은 리소스가 있거나
로드 속도가 너무 느리거나
리소스의 크기가 너무 크기 때문일 수 있다.
URL 검사 도구를 사용하면, 로드될 수 없는 리소스의 목록을 확인하고 렌더링된 실제 페이지도 확인할 수 있다.
robots.txt 파일을 사용하면, 크롤러가 요청할 수 있는 페이지/파일과 요청할 수 없는 페이지/파일을 검색엔진 크롤러에게 알려줄 수 있다.
구글로부터 웹페이지를 숨기기 위한 메커니즘은 아니다. 웹페이지를 숨기려면, noindex 명령어나 비밀번호로 페이지를 보호해야 한다.
robots.txt 파일의 용도는 사이트의 클로러 트래픽을 관리하고, 다음과 같은 파일 형식에 따라 구글에 파일을 표시하지 않게 하기 위해 사용한다.
웹페이지
트래픽 관리 : ✅
구글 크롤러의 요청으로 인해 서버에 부하가 크다고 생각되면, robots.txt 파일을 사용하여 웹페이지의 크롤링 트래픽을 관리할 수 있다. 사이트에서 중요하지 않거나, 비슷한 페이지의 크롤링을 피할 수 있다.
구글로부터 숨겨짐 : ❌
robots.txt로 웹페이지를 차단하면, 검색 결과에는 표시될 수 있지만, 설명이 나타나지 않는다. 페이지를 검색에서 완전히 숨기려면 서버의 파일을 비밀번호로 보호하거나, noindex
메타태그 또는 응답헤더를 사용해야 한다. 아니면, 페이지 전체를 삭제해야 한다.
미디어 파일
트래픽 관리 : ✅
검색 결과에 이미지, 동영상, 오디오 파일이 표시되지 않도록 할 수 있다.
구글로부터 숨겨짐 : ✅
리소스 파일
트래픽 관리 : ✅
구글로부터 숨겨짐 : ✅
리소스 파일(중요하지 않은 이미지, 스크립트, 스타일 파일)없이 페이지가 로드되어도, 크게 영향을 받지 않는다면 robots.txt 파일을 사용하여 리소스 파일을 차단한다.
그러나, 해당 리소스 없이 google 크롤러가 페이지를 이해할 수 없다면, 차단하면 안된다. 차단한다면 구글에서 이 리소스에 의존하는 페이지를 제대로 분석할 수 없기 때문이다.
robots.txt 테스터를 이용하여 robots.txt 테스트하기
robots.txt 테스터 도구는 robots.txt 파일이 사이트의 특정 URL에서 Google 웹 크롤러를 차단했는지 알려준다.