11장. Google 크롤링과 색인 기본, 글이 검색에 보이기까지의 과정
발행한 URL이 검색되지 않을 때 먼저 해야 할 일은 색인 요청을 반복하는 것이 아니라 실패 지점을 분리하는 일입니다. 발견은 Google이 주소를 아는 단계, 크롤링은 HTTP 응답과 자원을 가져오는 단계, 렌더링은 최종 본문을 해석하는 단계, 색인은 대표 문서를 저장하는 단계입니다. 검색 노출과 순위는 그 뒤의 별도 판단입니다.
따라서 한 화면의 상태 문구만으로 원인을 단정하지 않습니다. 브라우저에서 열린다는 사실은 Googlebot 접근을 보장하지 않고, 크롤링 성공은 색인을 보장하지 않으며, 색인됨은 특정 검색어 노출을 보장하지 않습니다. 아래 절차는 원본 URL과 검사 시각, 변경 내역을 먼저 기록한 뒤 한 층씩 확인하도록 설계했습니다.
발견·크롤링·렌더링·색인·노출의 경계를 유지합니다. 11장의 복구 완료는 각 단계에서 다시 검사한 증거로 판단합니다.
증상을 URL 한 개와 URL 묶음으로 먼저 나눕니다
한 게시물만 빠졌다면 그 URL의 공개 상태, HTTP 응답, 대표 URL, 본문 고유성을 봅니다. 같은 시점의 여러 게시물이 빠졌다면 테마의 로봇 지시, Blogger 공개 범위, 맞춤 도메인 연결, 사이트 전체 장애를 먼저 의심합니다. 사이트 검색 명령은 참고용 표본일 뿐 완전한 색인 목록이 아니므로, 판단 근거는 Search Console의 URL 검사와 페이지 색인 보고서로 둡니다.
중단선은 사이트 전체 설정을 바꾸기 전입니다. 표본 URL 하나의 문제를 해결하려고 robots 규칙이나 테마를 전역 수정하지 않습니다. 정상 URL과 문제 URL을 각각 하나 이상 골라 같은 항목을 비교하면 URL 고유 문제인지 템플릿 문제인지 빨리 갈립니다.
발견 단계에서는 실제 링크와 사이트맵 흔적을 확인합니다
Google이 URL을 모르는 상태라면 게시물이 공개되었는지, 홈·관련 글·허브에서 실제 앵커 링크로 도달하는지, 사이트맵에 정확한 대표 주소가 실렸는지 봅니다. 주소 문자열이 자바스크립트 동작이나 선택 목록에만 들어 있는 것은 안정적인 발견 경로가 아닙니다. Google의 크롤링 가능한 링크 안내처럼 목적지가 있는 일반 링크가 기본입니다.
사이트맵 제출은 발견 보조 수단이지 색인 명령이 아닙니다. 새 글을 사이트맵에 넣었다는 이유로 품질·중복·응답 문제를 건너뛰지 않습니다. Blogger에서는 게시물 목록, 라벨, 피드가 자동 생성될 수 있지만 중요한 글은 관련 본문에서 설명적인 앵커로 직접 연결하는 편이 진단과 사용자 탐색 모두에 유리합니다.
HTTP 계층은 최종 URL과 응답 의미를 함께 봅니다
검사 대상 주소가 정상 본문을 담은 성공 응답인지, 다른 주소로 이동하는지, 삭제나 서버 오류를 반환하는지 확인합니다. 여러 번 이동하거나 서로 왕복하는 리디렉션, 존재하지 않는 내용을 성공 응답으로 돌려주는 soft 404, 로그인·국가·쿠키에 따라 달라지는 응답은 브라우저 육안만으로 놓치기 쉽습니다. URL 검사에서 Google이 본 최종 주소와 가져오기 결과를 대조합니다.
복구할 때는 먼저 의도한 최종 URL을 하나 정합니다. 살아 있는 글이면 그 주소에서 완전한 본문을 제공하고 내부 링크도 그 주소로 맞춥니다. 삭제라면 유사하지 않은 홈으로 억지 이동시키지 말고 삭제 의미를 유지합니다. 서버 또는 도메인 문제라면 콘텐츠 수정보다 연결 복구가 선행되어야 합니다.
진단 카드: 발견 경로가 없음
- 증상: URL 검사에 색인 정보가 없고 공개 사이트 안에서도 진입 링크를 찾을 수 없습니다.
- 확인 증거: 게시물 공개 상태와 검사한 원본 주소를 대조하고, 관련 허브의 렌더링된 HTML에서 목적지를 가진 실제 href, 설명적인 앵커, 허브의 접근 가능성을 확인합니다. 사이트맵 포함만으로 발견을 확정하지 않습니다.
- 조치: 의도한 대표 주소로 문맥 링크와 사이트맵 주소를 정렬합니다. 이 단계에서는 제목 변경이나 반복 색인 요청을 하지 않습니다.
- 완료 조건: 접근 가능한 허브의 최종 HTML에서 대표 주소 링크가 확인되고, 경로 생성 시각과 최초 크롤 시각이 기록되어 발견 실패와 크롤 대기를 구분할 수 있습니다.
크롤링 허용과 색인 허용을 분리합니다
robots.txt 차단은 가져오기를 제한할 뿐 색인 삭제 지시가 아닙니다. 반대로 noindex는 Google이 페이지를 가져와 그 지시를 읽을 수 있어야 작동합니다. 두 설정을 동시에 걸면 크롤러가 noindex를 보지 못할 수 있습니다. URL 검사에서 크롤링 허용 여부와 색인 허용 여부를 별개 항목으로 읽고, 중요한 게시물에는 의도치 않은 noindex가 없는지 확인합니다.
Blogger의 검색엔진 공개 설정과 맞춤 로봇 헤더는 넓은 범위에 영향을 줄 수 있습니다. 복구 중에는 문제 게시물 하나 때문에 전역 규칙을 재작성하지 말고, 현재 설정을 복사한 뒤 조건별 적용 범위를 확인합니다. 차단을 해제한 뒤에야 실시간 테스트로 접근 가능성을 다시 검증합니다.
진단 카드: 발견 후 크롤이 대기하거나 실패함
- 증상: 발견 상태인데 마지막 크롤이 없거나, 브라우저에서는 열리지만 Google 가져오기만 실패합니다.
- 확인 증거: 같은 템플릿의 정상 URL과 내부 진입 링크, 사이트맵 주소, 응답 안정성을 비교합니다. 가능한 경우 요청 시각·상태·응답 크기를 대조하고, Blogger에서 로그가 제한되면 URL 검사와 호스트 장애 기록을 사용합니다.
- 조치: 크롤 대기에는 임의 기한을 붙이지 않습니다. 가져오기 실패라면 본문보다 HTTP·도메인·robots·필수 자원을 먼저 복구합니다.
- 완료 조건: 라이브 검사에서 접근이 복구되고 그 증거를 저장했습니다. 이후 마지막 크롤 갱신 전까지 URL과 본문을 겹쳐 바꾸지 않습니다.
진단 카드: noindex 또는 robots가 게시물을 막음
- 증상: 원본·렌더링 결과·HTTP 헤더에 제외 지시가 보이거나 URL 검사 차단이 특정 robots 규칙과 일치합니다.
- 확인 증거: 플랫폼 공개 설정, robots meta, X-Robots-Tag, 적용 사용자 에이전트와 경로 범위를 각각 기록합니다. noindex는 가져와야 읽히고 robots.txt는 가져오기를 제한할 뿐 삭제 명령은 아닙니다.
- 조치: 원인이 된 규칙만 좁혀 수정하고, 공개할 표본과 계속 차단할 표본을 함께 시험합니다.
- 완료 조건: 라이브 결과에서 접근 허용과 제외 지시 제거를 별도로 확인했으며, 유지 대상 차단은 그대로입니다.
렌더링 결과에서 본문과 링크가 남는지 봅니다
초기 응답에 제목만 있고 본문이 늦게 삽입되거나, 렌더링 자원이 차단되거나, 스크립트 오류 뒤 빈 화면이 남으면 가져오기 성공과 콘텐츠 이해가 갈릴 수 있습니다. URL 검사 렌더링 결과에서 핵심 문단, 이미지 설명, 내부 링크가 실제로 보이는지 확인하고 일반 브라우저의 모바일 화면과 비교합니다.
Blogger 게시물 본문은 보통 플랫폼이 렌더링하지만 서드파티 테마, 광고, 위젯이 본문 앞을 가리거나 DOM을 변경할 수 있습니다. 원인을 가를 때는 최근 추가한 위젯과 테마 변경부터 되돌립니다. 단, 라이브 사이트 전체를 즉시 초기화하지 말고 백업본과 비교해 변경 하나씩 검증합니다.
진단 카드: 렌더링 결과에서 본문이 사라짐
- 증상: 가져오기는 성공하지만 최종 결과에는 초기 셸만 남고 고유 문단과 내부 링크가 없습니다.
- 확인 증거: 렌더링된 HTML에서 고유 문장과 목적지 링크를 찾고, 차단된 JavaScript·CSS·데이터 요청, 동의창 뒤 본문, 오류 폴백을 확인합니다. 브라우저 화면만으로 정상 판정하지 않습니다.
- 조치: 색인 요청을 멈추고 최근 테마·광고·위젯 변경 하나를 되돌립니다. 표본 복구 전 전체 초기화나 추가 수정으로 증거를 덮지 않습니다.
- 완료 조건: 같은 렌더링 검사에서 핵심 문장과 링크가 다시 확인되고, 원인이 된 배포 항목이 기록되었습니다.
색인 제외 사유는 상태 문구가 아니라 증거 묶음으로 읽습니다
“발견됨”은 주소를 알지만 아직 가져오지 않은 상태를 뜻할 수 있고, “크롤링됨”은 가져왔지만 대표 문서로 저장하지 않은 상태를 뜻할 수 있습니다. 후자에서 기술 오류가 없다면 유사 문서, 얇은 답변, 선택된 대표 URL, soft 404 가능성을 함께 봅니다. 상태 문구 하나를 품질 판정문이나 벌점 통지로 번역해서는 안 됩니다.
URL 검사 도구 도움말은 현재 색인 정보와 실시간 테스트가 다를 수 있음을 전제로 합니다. 실시간 테스트 통과는 즉시 색인된다는 뜻이 아닙니다. 검사 시각, 마지막 크롤 시각, 사용자 선언 대표와 Google 선택 대표를 기록해야 후속 비교가 가능합니다.
콘텐츠 고유성과 대표성은 기술 검사 뒤에 봅니다
응답과 허용 신호가 정상인데 색인이 되지 않으면 검색자가 그 URL에서만 얻는 답이 무엇인지 확인합니다. 제목과 날짜만 바뀐 연속 글, 공식 문구를 재배열한 글, 다른 게시물의 축약본은 각각 접근 가능해도 하나의 대표 묶음으로 처리되거나 색인 우선순위가 낮을 수 있습니다. 글자 수 자체를 목표로 삼기보다 질문 범위, 근거, 절차, 예외를 구체화합니다.
비슷한 두 글이 같은 의도를 해결한다면 무조건 canonical만 붙이지 않습니다. 하나로 합쳐야 할지, 서로 다른 작업 단계로 역할을 나눌지 먼저 결정합니다. 합친다면 유용한 문단과 외부 참조를 대표 글에 옮기고 내부 링크를 갱신한 뒤 이전 주소 처리를 검토합니다.
진단 카드: 중복 묶음의 대표 URL이 다르게 선택됨
- 증상: 사용자 선언 대표와 Google 선택 대표가 다르고 두 URL의 렌더링 본문과 결론이 유사합니다.
- 확인 증거: 두 문서의 canonical, 사이트맵 포함, 내부 링크 목적지, 제목과 고유 답변을 비교하고 공유 원본과 리디렉션 최종 주소도 묶음에 포함합니다.
- 조치: 같은 문서라면 유용한 내용을 한 대표에 합쳐 신호를 정렬하고, 다른 과업이라면 도입·절차·결론을 분리합니다. canonical 반복 삽입으로 모순을 덮지 않습니다.
- 완료 조건: 대표 본문과 내부 링크·사이트맵·canonical이 같은 주소를 지지하거나, 각 문서의 독립 과업이 명확해졌습니다.
이미 크롤됐지만 색인되지 않은 URL도 같은 판단층에서 봅니다. 성공 응답·색인 지시·렌더링이 정상이라면 유사 묶음, Google 선택 대표, 고유 해결 범위를 확인합니다. 마지막 크롤이 수정 전이면 현재 라이브 결과와 분리해 기록합니다.
진단 카드: 성공 응답이 soft 404로 해석됨
- 증상: HTTP는 성공이지만 렌더링 후 본문이 비거나 오류 안내·무관한 홈만 남습니다.
- 확인 증거: 빈 검색 결과, 지역·재고 분기 0건, 스크립트 실패 뒤 오류 DOM을 정상 문서와 비교합니다. 상태 코드 200이나 글자 수만으로 판정하지 않습니다.
- 조치: 유지할 글은 핵심 답과 탐색을 복원합니다. 삭제 글은 의미상 같은 대체 문서에만 직접 이동시키고, 대체가 없으면 삭제 의미의 응답을 유지합니다.
- 완료 조건: 유지 URL에는 요청한 답이 렌더링되고, 삭제 URL은 무관한 홈 이동 없이 의도한 최종 응답을 냅니다.
Blogger에서 바꿀 수 있는 범위와 없는 범위를 구분합니다
게시물 공개 여부, 맞춤 퍼머링크, 내부 링크, 라벨, 본문 품질, 검색 설명은 운영자가 통제할 수 있습니다. 플랫폼이 만드는 일부 피드·아카이브·모바일 변형과 서버 응답 세부는 제한적으로만 통제됩니다. 통제할 수 없는 변형마다 테마 조건을 덧대면 오히려 전역 메타 신호를 망가뜨릴 수 있습니다.
맞춤 도메인을 쓴다면 blogspot 호스트와 맞춤 호스트가 어떤 최종 주소로 수렴하는지 확인합니다. HTTPS와 호스트 변형이 섞인 내부 링크는 대표성 판단을 불필요하게 복잡하게 만듭니다. Blogger가 정상 처리하는 변형은 그대로 두되, 운영자가 작성하는 링크와 사이트맵 제출 속성은 일관되게 관리합니다.
수정 중단선은 원인 증거가 사라지기 전입니다
제목, URL, 본문, 테마, robots 설정을 한 번에 바꾸면 어떤 조치가 효과를 냈는지 알 수 없습니다. 먼저 검사 결과와 화면, 원본 HTML, Search Console 상태를 저장합니다. URL을 바꾸는 작업은 기존 공유·외부 링크·내부 링크에 영향이 있으므로 마지막 수단으로 둡니다. 색인 요청을 반복하는 것도 진단을 대신하지 못합니다.
명확한 접근 오류가 확인되면 즉시 고치되, 상태 문구만 바뀌지 않는다는 이유로 연속 수정하지 않습니다. 재크롤링과 재처리는 운영자가 고정된 날짜로 보장할 수 없습니다. 다음 검토 시점은 임의의 “며칠” 약속보다 Google의 마지막 크롤 갱신과 보고서 변화에 맞춥니다.
진단 카드: 전역 템플릿 변경 뒤 정상 글도 누락됨
- 증상: 게시 시점과 주제가 다른 여러 URL에서 같은 noindex, 잘못된 canonical, 가져오기 실패 또는 본문 누락이 동시에 나타납니다.
- 확인 증거: 게시물 유형별 정상·문제 표본의 응답, 메타 지시, 대표, 렌더링 본문을 비교하고 최초 이상 시각을 테마·공개 설정·도메인 변경 시각과 맞춥니다.
- 조치: 개별 글 편집을 멈추고 마지막 정상 백업으로 공통 배포 계층을 롤백합니다.
- 완료 조건: 표본 전체가 회복됐으며, 확인 전 새 전역 규칙을 추가하지 않았습니다.
복구는 백업, 최소 수정, 재검사의 순서로 진행합니다
첫째 원본과 메타 설정을 백업합니다. 둘째 의도한 공개·대표 URL을 한 문장으로 적습니다. 셋째 응답, 차단, noindex, 리디렉션처럼 확인된 원인 하나만 수정합니다. 넷째 브라우저와 URL 검사 실시간 테스트에서 최종 본문과 링크를 확인합니다. 다섯째 관련 허브의 내부 링크와 사이트맵 URL을 대표 주소로 맞춥니다.
롤백 조건도 미리 정합니다. 정상 URL까지 가져오기 실패가 생기거나, 대표 URL이 엉뚱한 주소로 바뀌거나, 게시물 본문이 렌더링되지 않으면 새 설정을 중지하고 백업으로 되돌립니다. 롤백 후에는 캐시된 보고서만 보지 말고 라이브 응답과 렌더링을 다시 검사합니다.
검증은 접근, 해석, 색인, 노출을 따로 종료합니다
접근 복구 완료는 Googlebot이 페이지를 가져오고 필요한 자원을 읽을 수 있을 때입니다. 해석 복구 완료는 렌더링 결과에 제목·핵심 본문·내부 링크·대표 URL이 의도대로 남을 때입니다. 색인 복구 완료는 URL 검사에서 대표 URL과 색인 상태가 갱신될 때이며, 노출 회복은 별도로 검색 실적의 페이지·검색어 데이터를 봐야 합니다.
색인 성공 뒤에도 특정 쿼리의 노출이 없을 수 있습니다. 그것을 다시 크롤링 오류로 되돌려 해석하지 말고 검색 의도, 콘텐츠 경쟁력, 제목과 본문의 약속을 검토합니다. Google 크롤링·색인 개요를 기준으로 단계별 종료 조건을 유지하면 불필요한 전역 수정을 막을 수 있습니다.
색인은 정상인데 검색 노출만 감소함
- 증상: 성공 응답, 색인 허용, 선택 대표와 현재 색인은 정상인데 노출이나 클릭만 줄었습니다.
- 확인 증거: 기간·페이지·검색어·기기별 실적에서 수요, 의도, 제목의 약속과 답변 경쟁력 변화를 확인합니다.
- 조치: robots·canonical·URL 변경은 후보에서 빼고 콘텐츠 분석으로 넘깁니다.
- 완료 조건: 기술 검증 종료와 콘텐츠 분석 시작 시각을 분리했습니다. 대표나 색인 상태가 실제로 바뀔 때만 기술 진단을 다시 엽니다.
발행 전 최종 기록표를 남깁니다
기록에는 검사 URL, 최종 URL, 응답 의미, 크롤링 허용, 색인 지시, 사용자 선언 대표, Google 선택 대표, 렌더링 핵심 본문, 내부 진입 링크, 사이트맵 포함 여부를 남깁니다. 각 항목에 확인 시각과 도구를 붙이면 다음 장애 때 정상 기준선으로 재사용할 수 있습니다.
마지막 질문은 단순합니다. Google이 주소를 발견할 경로가 있는가, 서버가 의도한 내용을 반환하는가, 가져오기와 색인을 막는 신호가 없는가, 렌더링 후에도 답이 남는가, 다른 URL보다 이 문서가 대표여야 할 이유가 있는가를 순서대로 답할 수 있어야 발행을 계속합니다.
발행 전 체크리스트
- 발견 경로, 마지막 크롤, 렌더링 본문을 서로 다른 증거로 기록했습니다.
- robots 차단과 noindex 지시, HTTP 응답을 섞지 않고 확인했습니다.
- 사용자 선언 대표와 Google 선택 대표, 중복 후보를 함께 대조했습니다.
- 라이브 테스트 통과와 현재 색인 데이터 갱신을 별도 완료 조건으로 두었습니다.
- 수정 배포 시각보다 마지막 크롤이 앞서는지 확인해 오래된 상태를 새 장애로 오인하지 않았습니다.
- 색인이 정상인 URL의 노출 감소는 검색 실적 분석으로 넘겼습니다.
