운영 사례
구글 검색 유입이 99% 줄었다: 원인을 찾고 첫 수정을 적용하기까지
회사 이름으로 검색했는데 홈페이지가 잘 보이지 않았어요. Search Console에는 사이트가 등록돼 있었고, 사이트맵도 제출한 상태였습니다. 처음에는 설정 한두 군데를 고치면 해결될 문제처럼 보였어요.
실적을 열어 보니 조사 범위가 달라졌습니다. 일주일 동안 550회였던 Google 검색 클릭이 비교 기간에는 5회로 줄었어요. 노출도 56,460회에서 533회로 떨어졌습니다. 회사 이름 검색부터 시작한 확인이, 기술 위키를 포함한 사이트 전체의 검색 유입 조사로 이어졌어요.
이 글은 데이터스케쳐스가 실제 기록을 대조하고 첫 수정을 적용한 과정입니다. 조사와 수정 결과는 2026년 10월 24일 확인분, 검색 실적은 10월 21일까지의 확정 데이터를 기준으로 해요. 이 기록에서는 수정 이후 검색 유입 회복까지 확인하지 못했습니다.
클릭률보다 큰 문제는 노출 감소였어요
하루 최고점과 마지막 날을 비교하면 집계 지연이나 요일 차이를 놓치기 쉬워요. 먼저 집계가 끝난 같은 길이의 두 기간을 비교했습니다. 아래 날짜는 Search Console의 미국 태평양시간(PT) 기준입니다.
| 지표 | 2026년 10/1–7 | 2026년 10/12–18 | 변화 |
|---|---|---|---|
| 클릭 | 550회 | 5회 | 99.09% 감소 |
| 노출 | 56,460회 | 533회 | 99.06% 감소 |
| 클릭률 | 0.974% | 0.938% | 약 0.036%p 감소 |
클릭률의 변화보다 노출 감소가 훨씬 컸어요. 검색 결과에서 보고도 누르지 않는 현상만으로는 이 하락을 설명하기 어려웠습니다. 제목과 설명을 손보기 전에, 페이지가 검색 결과에 나타날 수 있는 상태인지부터 살펴봤어요.

그림 1. Search Console API 확정 데이터로 그린 실제 추이예요. 세로선과 음영은 조사한 사건의 시점을 표시합니다. 음영에는 중간 복구 시간이 포함돼 있으며, 계속 장애가 났다는 뜻은 아닙니다. 같은 시기에 일어났다는 사실만으로 원인을 확정하지 않았어요.
페이지별 실적을 나누니 하락의 중심은 기술 위키였어요. 페이지별로 반환된 행을 합산하면, 하락 전 위키가 클릭의 98.4%, 노출의 99.6%를 차지했습니다. Search Console API는 상위 일부 행을 반환하며 모든 URL을 보장하지 않습니다. 이 합계는 사이트 전체 실적과 집계 방식도 달라서 같은 분모로 섞지 않았어요. Google API의 집계 범위
회사 홈페이지는 하락 전 기간인 10/1–7에 3클릭, 10노출이었어요. 회사명 검색과 기술 문서 검색은 출발 규모부터 달랐습니다. 둘의 회복도 따로 확인하기로 했어요.
또 한 가지를 바로잡았습니다. 9월 말의 증가세가 오랫동안 유지된 기준선은 아니었어요. 월 클릭은 7월 35회, 8월 19회, 9월 649회였습니다. 하루 최고점을 곧바로 정상 목표로 삼기보다 안정적인 주간 유입을 확인할 필요가 있었습니다.
서버 기록과 검색 기록을 같은 시간축에 놓았어요
처음 조사한 것은 서버가 실제로 응답했는지, 정상 주소가 엉뚱한 곳으로 이동하지 않았는지였어요.
Search Console의 크롤링 통계에서 10월 8일 서버 연결 실패율은 9.88%, 평균 응답 시간은 13.36초였습니다. 10월 16–21일에는 실패율이 매일 0%로 표시됐고 평균 응답 시간은 0.50–0.71초였어요. 접근 환경이 나아졌다는 기록과 검색 유입이 회복됐다는 기록은 별도로 봐야 했습니다.
그사이 잘못된 외부 리디렉션도 확인했어요. 한국시간 10월 10일에는 회사 도메인에서 무관한 외부 주소로 보내는 301 규칙이 적용됐고, 복구 후 10월 12일에 재발한 기록이 있었습니다. 공개 요청에서도 외부 목적지로 이동하는 응답을 확인했어요.
301은 주소가 영구적으로 옮겨졌다는 응답입니다. Google은 이를 이동한 목적지를 처리할 강한 신호로 사용해요. 서버 오류가 이어지면 수집 속도를 낮추거나, 지속적으로 오류를 반환하는 URL을 색인에서 제외할 수도 있습니다. Google의 HTTP 상태 코드 설명
다만 외부 이동 사고 하나로 전체 급락을 설명하지는 않았어요. 노출 하락은 첫 외부 리디렉션 사고 전부터 시작됐습니다. 서버 장애와 주소 이동은 유력한 기여 요인이지만, 각각 얼마나 영향을 줬는지는 확인하지 못했어요.
날짜 기준도 맞췄습니다. 서버 기록의 UTC, 사고 대응 기록의 한국시간, Search Console의 태평양시간을 그대로 겹쳐 놓으면 하루 차이가 생길 수 있거든요. 사건을 비교하기 전에 시간을 변환했어요.
Google의 September 2026 spam update도 9월 24일에 시작해 10월 8일에 끝났습니다. 초기 하락 시점과 겹치지만, 이 사실만으로 우리 사이트에 자동 제재가 적용됐다고 단정할 수는 없어요. 10월 24일 확인한 직접 조치와 보안 문제 보고서에는 감지된 문제가 없었습니다. 이 결과 역시 자동 평가의 영향을 배제하는 증거는 아닙니다. Google 공식 업데이트 일정
페이지가 열린다고 색인이 돌아온 것은 아니었어요
하락 전후 클릭 감소가 큰 URL 100개를 골라 기존 검사 결과와 연결했습니다. 이때 저장된 Google URL 검사 결과가 있던 주소는 25개였어요.
25개 모두 Google의 페이지 가져오기는 성공했고, 크롤링과 색인도 허용된 상태였습니다. 표준 주소도 각 문서의 주소와 일치했어요. 그런데 24개는 ‘크롤링됨 - 현재 색인이 생성되지 않음’ 상태였고, 1개만 색인이 생성돼 있었습니다.
이 25개는 무작위로 뽑은 표본이 아닙니다. 24개가 미색인이라는 결과를 사이트 전체 비율로 확대하지 않았어요. 나머지 75개의 상태는 당시 확보하지 못했고, 추가 API 조회도 사이트별 일일 한도 소진으로 진행하지 못했습니다.
상태를 다음처럼 구분하니, 어디까지 확인했는지 명확해졌어요.
| 단계 | 이번에 확인한 것 | 이 결과만으로 알 수 없는 것 |
|---|---|---|
| URL 발견 | 개별 사이트맵에서 주소를 발견한 수 | 그 주소를 모두 수집하거나 색인했는지 |
| 페이지 가져오기 | HTTP 응답과 Google의 저장된 가져오기 결과 | 검색 결과에 포함됐는지 |
| 색인 생성 | URL 검사에 표시된 색인 상태 | 원하는 검색어에서 실제로 노출되는지 |
| 검색 노출과 클릭 | 집계가 끝난 실적 보고서 | 이후 수정의 효과가 앞으로 얼마나 날지 |
사이트맵에서도 비슷한 혼동이 있었어요. 10월 24일 확인 당시 상위 sitemap.xml은 성공으로 표시되면서 발견 수가 0이었습니다. 반면 직접 제출한 개별 사이트맵 12개의 발견 수 합계는 91,034개였어요. 상위 집계가 0인 원인은 아직 확정하지 못했지만, 사이트 전체의 주소가 발견되지 않았다고 해석할 상황은 아니었습니다.
Google도 사이트맵이 URL 발견을 돕지만 모든 항목의 수집과 색인을 보장하지는 않는다고 설명해요. 당시에는 사이트맵 제출 성공, 주소 발견, 색인 생성, 검색 노출을 따로 기록하는 편이 정확했습니다. Google 사이트맵 안내
실제 유입이 있었던 문서부터 수정했어요
초기 오류 조사에서는 짧거나 잘못된 본문과 깨진 주소를 먼저 고쳤습니다. 실제로 필요한 수정이었지만, 수정 대상이 잃어버린 유입과 얼마나 연결되는지는 별도의 문제였어요.
대조해 보니 앞서 고친 문서들은 이번 비교의 하락 전 기간에 합산 클릭이 0이었고, 클릭 감소 상위 100개와도 겹치지 않았습니다. 그때부터 우선순위를 바꿨어요. 과거에 독자가 찾아온 페이지를 고정하고, 그 페이지가 약속한 내용을 제대로 제공하는지 검토했습니다.
1차 대상 20개 중 위키 문서 19개를 수정했어요. 나머지 1개는 기존 회사소개 주소였고, 홈페이지로 정상 이동하는 것을 확인했습니다. 실제 수정에는 다음 내용이 포함됐어요.
| 문서 | 확인한 문제와 보완 |
|---|---|
| ChatGPT MCP 연결 | 폐기된 출처와 옛 설정 경로를 현재 공식 안내로 갱신 |
| PaddleOCR 빠른 시작 | 한국어 모델 지정, 설치와 실행 코드, 결과 확인 방법 보완 |
| MinerU 빠른 시작 | 서로 다른 버전의 설치법과 명령이 섞이지 않도록 4.x 기준으로 정리 |
| llama.cpp 로컬 실행 | 모델 변환 명령과 입력 경로를 바로잡고 기존 예제 보존 |
| Prometheus | 알림용 함수 설명 오류를 교정하고 실행 환경에 따른 주소 차이 설명 |
글을 길게 만드는 것만으로 완료 처리하지 않았어요. 오래된 경로를 따라가다 막히는 부분, 명령을 복사했을 때 실패할 부분, 결과를 확인할 수 없는 부분을 구체적으로 고쳤습니다.
회사 홈페이지에도 회사명과 제공 서비스를 설명하는 문장, 상담으로 연결되는 링크를 추가했어요. 기술 문서 검색과 회사명 검색을 구분해서 본 만큼, 홈페이지가 어떤 일을 하는 회사인지 설명하는지도 함께 점검했습니다.

그림 2. 2026년 10월 24일 수정 후 확인한 공개 홈페이지 화면입니다. 화면 반영을 확인한 자료이며 검색 순위 변화를 보여주는 자료는 아닙니다.
AI의 초안도 검수 대상이었어요
문서 작업에는 Hermes CLI 초안 작업자 5개와 별도 검수자 3개를 사용했습니다. 문서 묶음과 출력 위치를 나누고, 공식 출처와 원문을 대조하도록 구체적으로 요청했어요. 운영 반영은 검수 이후에 진행했습니다.
여기서도 오류가 나왔습니다. 서로 다른 버전의 설치법이 섞이거나, 기술 설명이 부정확하거나, 긴 원문의 일부가 잘린 초안이 있었어요. 결과에 ‘완료’라고 적혀 있는 것만으로 게시할 수 없었습니다.
공식 문서와 다시 대조하고 기존 코드와 조건의 누락을 확인했습니다. Python 코드 14블록은 문법 검사를 했고, 수정한 문서 19개는 실제 운영 렌더러로 변환한 뒤 공개 페이지의 본문, 제목 구조, 코드 블록과 맞춰 봤어요.
검증 범위도 남겼습니다. 유료 API 호출과 GPU 추론을 모두 실행한 것은 아니며, 로컬 OCR의 실제 인식은 연결 문제로 확인하지 못했어요. 문법 검사, 화면 반영, 예제의 실제 실행은 각각 다른 확인입니다. 이 구분이 빠지면 AI를 여러 개 쓰더라도 검증되지 않은 내용이 빠르게 늘어날 수 있습니다.
첫 수정의 결과와 다음 판단 기준
10월 24일 수정 후 확인한 결과는 다음과 같아요.
| 대상 | 확인한 결과 |
|---|---|
| 우선순위 URL 100개 | 98개는 직접 정상 응답, 2개는 정상 이동 후 응답. 최종 응답은 모두 HTTP 200 |
| 위키 문서 19개 | 승인한 본문과 공개 페이지의 내용, 제목 구조, 코드 블록 일치 |
| 깨진 LangGraph 옛 주소 | 내용이 대응하는 현재 개요 문서로 301 연결 |
| 수정 문서의 사이트맵 | 19개 모두 포함돼 있고 수정일이 반영됨 |
| 최우선 문서의 색인 요청 | Google의 요청 접수 확인. 색인 완료는 미확인 |
우선순위 100개 중 본문 심화 검수는 78개가 남아 있었습니다. 사이트 전체 미색인 문서가 해결됐다는 의미로 이 결과를 확대하지 않았어요.
재수집 요청도 복구 완료로 기록하지 않았습니다. Google은 요청을 받아도 검색 결과에 즉시 포함되거나 반드시 포함되는 것은 아니며, 같은 URL을 반복 요청해도 더 빨라지지는 않는다고 안내합니다. Google 재수집 요청 안내
이후에는 같은 URL 목록으로 최근 수집일과 색인 상태를 확인하고, 집계가 끝난 동일 길이의 7일 실적을 비교하려고 해요. 회사명 검색, 위키 검색, 회사 페이지의 변화도 구분해서 볼 계획입니다. 수집 자체가 없다면 접근성과 내부 연결을 다시 보고, 재수집됐는데도 미색인이면 문서의 중복과 독자에게 주는 가치를 다시 검토해야겠죠.
이번 작업에서 달라진 것은 완료 기준입니다. 문서가 저장됐는지, 공개 페이지가 바뀌었는지, Google이 다시 수집했는지, 검색 결과에 노출됐는지를 각각 확인하기 시작했어요. 이 기록이 끝나는 지점은 첫 수정과 공개 반영 검증까지입니다. 검색 유입이 얼마나 달라졌는지는 이후의 확정 데이터로 판단해야 합니다.
기록과 이미지에 관하여
데이터스케쳐스의 Search Console 실적, 크롤링 통계, 운영 기록, 2026년 10월 24일 수정 후 공개 검증을 바탕으로 작성했습니다. 표지와 추이 이미지는 실제 집계값으로 만든 그래프이며, 홈페이지 이미지는 당시 공개 화면의 캡처입니다. 내부 계정 정보, 서버 상세 구성, 인증 정보와 원본 운영 로그는 싣지 않았습니다.
원인별 기여율, 자동 평가의 적용 여부, 수정 이후 검색 회복은 확인하지 못했습니다. 이 글은 모든 사이트에 같은 조치가 효과가 있다는 주장이나 검색 회복을 보장하는 안내가 아닙니다.