본문으로 건너뛰기
브라우저 화면과 HTML 원본을 나란히 비교한 그림

자바스크립트로 그리는 페이지는 AI에게 어떻게 보이나 — 본문 노출 확인법

화면에는 글이 보이는데 HTML에는 없는 페이지가 있습니다. 이런 페이지는 수집 단계에서 빈 문서로 취급될 수 있습니다. 본문이 HTML에 있는지 확인하는 세 가지 방법과, 전면 재구축 없이 손보는 순서를 정리했습니다.

브라우저에서는 제품 설명이 잘 보이는데, 페이지 소스를 열면 그 문장이 없는 경우가 있습니다. 화면을 자바스크립트로 그리는 구조에서 흔합니다.

이 상태가 문제가 되는 이유는, 페이지를 수집하는 쪽이 자바스크립트를 실행해 준다고 보장하지 않기 때문입니다. 실행하는 경우도 있고 HTML만 받아 가는 경우도 있습니다. 후자라면 그 페이지는 본문이 없는 문서로 취급됩니다.

확인하는 세 가지 방법

본문 노출을 확인하는 세 가지 방법을 나열한 그림

1. 소스 보기에서 문장을 검색합니다(1분). 페이지에서 오른쪽 클릭 → 페이지 소스 보기를 열고, 화면에 보이는 문장 한 토막을 그대로 검색합니다. 개발자 도구의 요소 탭이 아니라 소스 보기여야 합니다. 요소 탭은 자바스크립트 실행 후의 결과를 보여 주기 때문에 항상 문장이 있습니다.

2. 자바스크립트를 끄고 다시 엽니다(3분). 브라우저 설정에서 해당 사이트의 자바스크립트를 차단한 뒤 새로 고칩니다. 이때 남는 것이 대략 HTML만 받아 가는 쪽이 보는 화면입니다.

3. 명령줄로 HTML을 받아 검색합니다(2분).

curl -s https://example.com/product | grep "화면에 보이는 문장"

결과가 비어 있으면 그 문장은 HTML에 없습니다. 세 방법 중 가장 정확하고, 리다이렉트나 봇 차단이 함께 걸려 있는지도 응답으로 드러납니다.

어디부터 손보는가

전면 재구축을 하지 않고도 순서대로 줄일 수 있습니다.

손보는 순서를 우선순위대로 배치한 그림

  1. 핵심 페이지의 본문을 서버 응답에 포함합니다. 전체 사이트가 아니라 제품·가격·자주 묻는 질문 페이지처럼 인용됐으면 하는 페이지 몇 개로 시작합니다. 서버 렌더링이나 정적 생성으로 처리합니다.
  2. 탭과 아코디언 안의 텍스트를 HTML에 둡니다. 접혀 있어도 HTML에 있으면 읽힙니다. 클릭한 뒤에 내용을 가져오는 구조라면 그 텍스트는 HTML에 없습니다. 자주 묻는 질문 영역이 이 형태인 경우가 많습니다.
  3. 링크를 a href로 만듭니다. 클릭 이벤트로만 이동하는 요소는 링크로 읽히지 않아 그 뒤 페이지가 발견되지 않습니다.
  4. 무한 스크롤 목록에 페이지 주소를 부여합니다. 스크롤로만 불러오는 항목은 주소가 없어 개별 페이지가 수집 후보에 들어가지 못합니다.

이 판단을 할 때 헷갈리는 것

상황판단
검색 결과에는 잘 나온다검색 엔진이 실행해 준 결과일 수 있습니다. 다른 수집기에도 같다고 볼 수는 없습니다
요소 탭에는 문장이 다 있다확인 방법이 잘못됐습니다. 소스 보기나 curl로 다시 확인합니다
렌더링 대행 서비스를 쓰고 있다크롤러 이름별로 다르게 응답하는 설정이면, 이름을 바꿔 요청해 실제 응답을 확인합니다
본문은 없고 요약만 HTML에 있다요약이 답변용 발췌 단위가 됩니다. 요약 문장의 품질을 먼저 정리합니다

핵심 페이지 3개를 curl로 받아 문장 하나씩 검색해 보시면 됩니다. 결과가 비면 콘텐츠 작업보다 이 문제가 먼저입니다.

게시일
수정일

이 글의 내용을 우리 사이트에 적용하고 싶다면

진단 결과 해석, 도입 문의는 geotracker@humuson.com으로 보내 주세요.

기술 점검