Post

기술 SEO 공부 정리 | 크롤러가 못 찾으면 랭킹은 없다

robots.txt 설정 하나가 검색 노출을 없앨 수 있다. 크롤링부터 인덱싱까지, 프론트엔드에서 챙겨야 할 기술 SEO 기초를 정리해봤다.

기술 SEO 공부 정리 | 크롤러가 못 찾으면 랭킹은 없다

PXD Story에서 프론트엔드 개발자 관점으로 기술 SEO를 다룬 글이 올라왔다. 검색엔진이 우리 사이트를 어떻게 찾고 색인하는지에 대한 이야기인데, 읽다 보니 내가 공부하고 있는 컴포넌트 구조랑 생각보다 맞닿는 부분이 있었다.

솔직히 말하면 robots.txt 파일이 있다는 건 알고 있었는데, 그게 정확히 어떤 역할인지, 왜 중요한지는 한 번도 제대로 짚은 적이 없었다. 글을 읽다 보니 생각보다 직접적인 이야기가 나와서 정리해봤다.

1️⃣ 이게 뭐냐?

검색엔진이 결과를 보여주려면 크롤링 → 인덱싱 → 랭킹 세 단계를 거친다. 여기서 중요한 건 흐름이 앞 단계부터 막힌다는 점이다. 크롤러가 접근을 못 하면 인덱싱이 없고, 인덱싱이 없으면 랭킹 참여 자체가 성립하지 않는다. 아무리 좋은 콘텐츠를 써도 발견 자체가 안 되는 상황이 생기는 거다.

robots.txt는 크롤러가 사이트에 처음 들어올 때 가장 먼저 확인하는 파일이다. “이 경로는 탐색해도 되고, 이 경로는 안 돼”를 알려주는 역할이다. 이 파일 하나를 잘못 설정하면 멀쩡한 콘텐츠도 검색 결과에서 사라질 수 있다.

글에서 소개된 실패 케이스가 인상에 남았다. 개발 환경에서 Disallow: /로 설정해둔 robots.txt를 운영 환경에 그대로 올린 사례인데, 그 사이트는 수개월 동안 검색 노출이 0이었다고 한다. 콘텐츠 문제가 아니라 크롤러를 전부 차단해버린 문제였다.

2️⃣ 내가 든 생각

처음엔 robots.txt나 sitemap 같은 건 배포할 때 한 번 세팅하면 끝인 설정 파일로만 생각했다. 근데 이 글을 읽고 생각이 좀 달라졌다. sitemap의 lastmod 필드에 실제 수정일이 아닌 현재 날짜를 자동으로 넣으면 크롤러가 신뢰를 잃는다고 한다. 단순히 형식을 맞추는 용도가 아니라, 크롤러에게 보내는 신호에 가까운 거였다.

AI 크롤러 분화도 흥미로운 부분이었다. 같은 OpenAI 봇이라도 GPTBot(학습용)과 OAI-SearchBot(검색 노출용)이 따로 존재한다. Anthropic도 ClaudeBot과 Claude-SearchBot이 분리돼 있다. 학습에는 쓰이지 않으면서 검색 노출에는 허용하는 선택지가 생긴 셈이다. robots.txt에서 두 역할을 구분해서 처리할 수 있다는 게, 이전까지 몰랐던 부분이었다.

👉🏻 공부하는 입장에서 가장 직접적으로 와닿은 건 내부 링크 부분이었다. onClick 이벤트로만 처리된 네비게이션은 크롤러가 링크로 인식하지 못한다고 한다. Next.js의 Link 컴포넌트를 써야 한다는 건 알고 있었는데, 그게 SEO랑 직결되는 이유라는 맥락은 이번에야 연결됐다.

💡 여기서 드는 질문?
CSR로만 렌더링되는 페이지는 JavaScript가 꺼진 환경에서 핵심 콘텐츠가 아예 안 보일 수 있다는데, 실제로 그 상태를 어떻게 확인하는지가 궁금해졌다. 브라우저에서 직접 JavaScript를 끄고 보는 게 가장 단순한 방법인가 싶었다.

⭐️ 마지막으로, 기술 SEO 공부하며 남은 인상

공부 끝에 남은 건, SEO가 콘텐츠의 문제이기 전에 접근성의 문제라는 한 줄이다. 잘못 설정된 robots.txt 하나가 수개월간 모든 노출을 막아버릴 수 있다는 사례가 가장 강하게 남았다. 그 시작점이 마크업 구조나 설정 파일 같은 기초에 있다는 게, 프론트엔드를 공부하는 입장에서 생각보다 가까운 이야기였다.


참고 원문: 검색엔진은 우리 사이트를 어떻게 발견할까?

This post is licensed under CC BY 4.0 by the author.