이미 검색에 색인된 쇼핑몰 필터 URL을 정리할 때는 검색에서 빼는 일, 중복을 대표 URL로 합치는 일, 앞으로 덜 크롤링하게 만드는 일을 분리해야 합니다. 세 목표를 같은 것으로 보고 robots.txt 차단, noindex, canonical을 한꺼번에 적용하면 정작 필요한 신호를 Google이 읽지 못할 수 있습니다.
아래 절차는 Google 검색을 기준으로 합니다. 중요한 것은 모든 필터를 없애는 것이 아니라, 검색 유입에 도움이 되는 필터는 보호하면서 나머지 URL의 수집·색인 비용을 줄이는 것입니다.
핵심 요약 이미 색인된 제외 대상은 noindex를 먼저 준비하고, 필요한 범위의 크롤링을 허용해 실제 제외를 확인하세요. 가치 있는 필터는 차단·noindex 없이 독립적인 대표 URL로 유지합니다. 이후 URL 생성 경로를 줄이고 robots.txt 차단을 선택적으로 검토하되, 차단을 영구적인 색인 제외 보장으로 생각해서는 안 됩니다.
1. 세 설정이 어느 단계에 작용하는지부터 구분하세요
| 설정 | 주된 역할 | 이미 색인된 URL에서의 한계 |
|---|---|---|
| robots.txt의 Disallow | 해당 URL의 크롤링 제한 | 검색 결과에서 삭제하라는 지시가 아님 |
| noindex | 해당 페이지의 검색 색인 제외 | Google이 페이지 응답을 가져와 지시를 읽어야 함 |
| canonical | 중복·유사 페이지 중 대표 URL 제안 | 삭제 명령이 아니며 지정한 대표가 반드시 채택되는 것은 아님 |
예를 들어 /shoes?brand=alpha&color=black이 이미 색인되어 있다고 합시다. 여기에 noindex와 상위 카테고리 canonical을 추가하면서 robots.txt로 막으면, Googlebot은 새로 배포한 페이지 응답을 가져오지 못합니다. 페이지 안의 canonical뿐 아니라 응답 헤더로 제공한 X-Robots-Tag: noindex도 요청이 이루어지지 않으면 새로 확인할 수 없습니다.
이 문제는 단순히 “robots.txt의 명령이 다른 태그보다 강하다”는 우선순위 경쟁이 아닙니다. 접근을 막아서 후속 판단에 필요한 정보를 전달하지 못하는 문제에 가깝습니다. 과거에 수집한 내용이나 외부 링크 등 다른 신호는 남아 있을 수 있으므로, 차단한 URL이 검색에 남는 경우도 있습니다. 그렇다고 모든 차단 URL이 영구적으로 남는다고 단정할 수는 없습니다.
noindex와 canonical이 함께 있다고 항상 기술 오류가 발생하는 것도 아닙니다. 예를 들어 공통 템플릿의 self-canonical이 noindex 페이지에 남아 있다고 해서 noindex가 자동으로 무효가 되지는 않습니다. 다만 다른 페이지로의 통합과 현재 페이지의 제외를 동시에 확실하게 달성하려는 목적으로 두 설정을 겹쳐 쓰는 것은 피해야 합니다. 제외가 목표인지, 중복 통합이 목표인지부터 결정하는 편이 검증도 명확합니다.
2. URL을 ‘필터 종류’가 아니라 ‘처리 목적’으로 분류하세요
브랜드 필터는 모두 유지하고 가격 필터는 모두 차단하는 식의 규칙만으로는 부족합니다. 실제 검색 의도, 상품 구성, 유입·전환, 기존 색인 상태를 함께 보아야 합니다.
| 처리 목적 | 판단 예시 | 기본 방향 |
|---|---|---|
| 독립적인 검색 랜딩 유지 | 특정 용도·브랜드·속성에 대한 수요와 안정적인 상품 구성이 있음 | 크롤링 허용, noindex 없음, self-canonical |
| 중복 주소 통합 | 파라미터 순서나 기본값만 다르고 실질적으로 같은 페이지 | 대표 URL로 canonical 또는 적절한 영구 리디렉션 |
| 사용자 기능은 유지하되 검색 제외 | 개인화에 가까운 세부 조합, 독립적인 검색 가치가 낮은 결과 | 기존 색인 URL은 크롤링 가능한 noindex로 처리 |
| 유효하지 않거나 폐기한 주소 제거 | 불가능한 조건, 존재하지 않는 페이지 번호, 영구 폐기 URL | 실제 상태에 맞는 404·410 검토 |
| 앞으로의 조합 폭발 억제 | 임의 가격 범위 등 끝없이 생성되는 비핵심 URL 공간 | 링크 생성 제한과 선택적 크롤링 차단 |
검색 가치가 있다는 판단은 제목에 키워드를 넣었다는 뜻이 아닙니다. 상위 카테고리보다 사용자의 탐색을 실제로 좁혀 주는지, 상품 구성이 지속적으로 유지되는지, 비슷한 필터를 여러 개 만들어 같은 의도만 반복하는지 확인해야 합니다. 적정 상품 수를 모든 쇼핑몰에 동일하게 적용할 수는 없습니다.
반례도 중요합니다. 색상 필터라도 특정 색상에 대한 구매 의도가 뚜렷하면 유용한 랜딩일 수 있습니다. 반대로 브랜드 필터라도 상품이 거의 없고 다른 페이지와 차이가 없다면 유지 가치가 낮을 수 있습니다. 쿼리 파라미터가 있다는 이유만으로 색인 가치가 없어지는 것도 아닙니다.
3. 정리 대상보다 먼저 ‘남길 페이지’를 보호하세요
유지할 필터 URL 목록을 만들고 각 URL의 목표 상태를 기록합니다. 적어도 다음 조건을 확인하세요.
- 로그인 없이 정상적인 상품 목록과 콘텐츠를 제공하며, 적절한 200 응답을 반환한다.
- 해당 Googlebot에 적용되는 robots.txt 규칙이 URL을 차단하지 않는다.
- 원본·렌더링 HTML과 응답 헤더에 noindex가 남아 있지 않다.
- 자기 자신을 대표로 남기려는 페이지라면 canonical도 그 정규 URL을 가리킨다.
- 카테고리·기획전 등 관련 페이지의 내부 링크와 사이트맵에서 같은 정규 URL을 사용한다.
robots.txt에 반드시 명시적인 Allow 줄이 있어야 하는 것은 아닙니다. 실제 적용 규칙상 차단되지 않으면 됩니다. 반대로 페이지 소스에 index가 보이더라도 응답 헤더에 noindex가 있으면 안전하다고 볼 수 없습니다.
독립적으로 남기려는 /shoes?brand=alpha를 /shoes로 canonical 처리하는 것은 목표와 어긋날 수 있습니다. 두 페이지의 검색 의도와 상품 범위가 다르다면 브랜드 필터를 일반 카테고리의 중복본처럼 취급해서는 안 됩니다. 물론 self-canonical을 넣었다고 색인이나 순위가 보장되는 것은 아닙니다. 콘텐츠와 내부 연결이 약하면 Google이 다른 판단을 할 수 있습니다.
4. 기존 색인 URL은 제외와 통합을 나누어 배포하세요
검색에서만 제외할 정상 페이지
사용자에게는 계속 제공하지만 검색 유입은 필요 없는 페이지라면 다음 순서가 실용적입니다.
- 제외할 URL 유형과 표본 목록을 확정합니다.
- noindex를 먼저 배포하고 응답 헤더·HTML·캐시에서 정확하게 제공되는지 확인합니다.
- 해당 지시를 읽힐 수 있도록 필요한 URL 범위의 robots.txt 차단을 해제합니다.
- 정규 Googlebot이 변경 후 다시 수집했는지 확인합니다.
- 색인된 URL 정보와 보고서에서 의도한 제외가 처리됐는지 확인합니다.
차단 전면 해제부터 시작하지 마세요. 필터 조합이 방대하면 정리 과정에서 요청량이 급증할 수 있습니다. 기존 색인 URL이 포함된 유형부터 단계적으로 개방하고, 요청량과 서버 오류를 보며 범위를 넓히는 편이 안전합니다. 이를 가능하게 하는 규칙은 사이트 URL 구조에 맞춰 설계해야 합니다.
noindex 처리에 follow를 명시하는 것은 필수 조건이 아닙니다. 또한 noindex 페이지에서 링크를 따라갈 것이라는 기대만으로 중요한 상품의 발견을 맡겨서는 안 됩니다. 상품은 정상 카테고리나 색인 가능한 목록에서도 접근할 수 있어야 합니다.
중복을 대표 페이지로 통합할 URL
실질적으로 같거나 매우 유사한 페이지라면 적절한 대표 URL로 canonical을 지정하고 양쪽을 크롤링 가능하게 유지합니다. 대표 대상은 정상 응답을 제공하고, noindex나 차단 상태가 아니어야 합니다. 불필요한 canonical 체인과 순환도 피하세요.
예를 들어 정렬 URL의 대표를 정할 때도 단순히 sort만 제거하면 끝나는 것은 아닙니다. 페이지네이션 때문에 실제 표시 상품이 달라지는지 확인해야 합니다. 서로 다른 상품을 보여 주는 모든 페이지를 첫 페이지로 canonical 처리하는 것은 적절하지 않습니다.
사용자에게 중복 주소를 별도로 제공할 이유가 없다면 대표 URL로의 영구 리디렉션을 검토할 수 있습니다. 다만 필터 조건이나 쿠폰·추적 기능을 없애지 않는지 확인해야 합니다. 리디렉션과 404·410도 Google이 변경을 처리하려면 해당 응답을 가져올 수 있어야 합니다.
빈 결과는 원인에 따라 구분
불가능한 조합이나 존재하지 않는 페이지 번호를 정상 페이지처럼 계속 생성하지 마세요. 반면 재입고 예정인 유효한 필터 랜딩을 상품 수가 잠시 0이라는 이유만으로 폐기할 필요는 없습니다. 페이지의 지속적인 유효성과 제공할 안내·대체 상품을 평가해야 합니다. 모든 빈 결과를 일반 카테고리로 돌리는 방식도 사용자 의도와 HTTP 상태를 왜곡할 수 있습니다.
5. 색인 정리 후에도 robots.txt 차단은 선택 사항입니다
“noindex로 빠진 것을 확인했으니 이제 모두 차단한다”를 필수 완료 단계로 삼지 마세요. 이후 정책은 운영 목표에 따라 갈립니다.
검색 제외를 계속 확실하게 유지하는 것이 중요하다면, 크롤링 가능한 상태에서 noindex를 유지하는 쪽이 적합합니다. 재확인을 위한 요청 비용은 남지만 Google이 제외 지시를 계속 읽을 수 있습니다.
방대한 무가치 URL 공간의 요청량 억제가 더 중요하다면, 기존 색인 정리를 확인한 뒤 범위별 robots.txt 차단을 검토할 수 있습니다. 다만 차단 후에는 noindex를 다시 읽지 못합니다. 외부 링크 등으로 알려진 주소가 콘텐츠 없이 URL 자체로 색인될 가능성을 배제할 수 없으므로, 영구 제외를 보장하는 방법은 아닙니다.
아직 색인되지 않은 무한 조합까지 모두 개방해 noindex를 읽힐 필요는 없습니다. 이 영역은 처음부터 생성·발견과 크롤링을 억제하는 편이 합리적일 수 있습니다. 또한 심각한 서버 부하가 있다면 색인 정리보다 서비스 안정화를 우선해야 할 수 있습니다. 이 경우 차단을 유지하는 동안 기존 URL의 제외 처리가 늦어질 수 있다는 비용을 함께 받아들여야 합니다.
핵심 포인트 noindex는 ‘검색에서 제외’, canonical은 ‘대표 선택’, robots.txt는 ‘크롤링 제한’입니다. 한 URL에 최대한 많이 붙이는 것이 아니라, 목적에 맞는 신호를 Google이 실제로 읽을 수 있게 만드는 것이 핵심입니다.
태그와 별개로 URL이 늘어나는 원인도 줄이세요. 같은 조건의 파라미터 순서를 통일하고, 불필요한 기본값·중복 조건이 새 주소를 만들지 않도록 합니다. 세션값을 탐색 링크에 넣지 않고, 무한히 이어지는 조합을 전부 크롤링 가능한 링크로 출력하지 않는 방법도 검토할 수 있습니다. 다만 사용자 조작과 공유 기능, 중요한 상품으로 가는 링크는 유지해야 합니다. nofollow 하나만으로 URL 발견과 크롤링이 완전히 차단된다고 기대해서도 안 됩니다.
robots.txt 규칙은 파라미터의 첫 위치·중간 위치, 순서 변경, 대소문자, 인코딩, 추가 조건이 붙은 경우를 나누어 시험하세요. Google의 규칙 해석에서는 단순한 파일 작성 순서가 아니라 매칭 범위의 구체성 등이 중요합니다. 예시 규칙을 그대로 복사하기보다 반드시 허용할 URL과 반드시 차단할 URL을 회귀 테스트 목록으로 관리하는 편이 안전합니다.
6. 검증은 ‘배포·처리·효과’로 나누세요
| 검증 단계 | 도구·자료 | 확인할 내용 | 이것만으로는 알 수 없는 것 |
|---|---|---|---|
| 배포 검증 | 실제 GET 응답, 헤더, 원본·렌더링 HTML | 상태 코드, noindex, canonical, 캐시 일관성 | Google의 실제 색인 반영 |
| 접근 검증 | URL 검사 라이브 테스트, robots 규칙 검사 | 현재 Google이 접근하고 지시를 읽을 수 있는지 | 실제 색인 여부와 대표 선택 확정 |
| 처리 검증 | URL 검사의 색인된 정보 | 마지막 크롤링, 제외 상태, 사용자 지정·Google 선택 canonical | 모든 URL의 동일 처리 여부 |
| 집계 검증 | 페이지 색인 생성 보고서 | URL 유형별 상태 변화와 예외 | 완전한 실시간 전체 URL 목록 |
| 비용·성과 검증 | 검증된 봇 로그, 검색 실적 | 불필요한 요청 감소, 중요한 페이지의 수집·유입 유지 | 변화가 모두 이번 설정 때문이라는 인과관계 |
배포 검증에서는 브라우저 화면만 보지 마세요. CDN, 서버, 애플리케이션이 서로 다른 robots 지시를 내보내는지 확인해야 합니다. 헤더만 보는 검사로 끝내지 말고 실제 GET 응답과 본문을 함께 확인하세요. JavaScript가 canonical이나 robots 지시를 뒤늦게 바꾸는 경우에는 원본과 렌더링 결과의 차이도 점검합니다.
라이브 테스트 성공은 현재 접근과 구현을 확인한 것이지, 정규 크롤러의 재방문이나 색인 업데이트가 끝났다는 뜻이 아닙니다. Google이 선택한 canonical은 라이브 테스트의 성공 여부가 아니라 색인된 URL 정보에서 확인해야 합니다. 마지막 크롤링이 배포 이전이라면 과거 설정을 바탕으로 한 결과일 수 있습니다.
보고서 상태도 구별해서 읽으세요.
- noindex로 제외: 의도한 제외 지시가 처리됐는지 확인하는 직접적인 단서입니다.
- robots.txt로 차단: 접근 제한의 단서이지 검색에서 사라졌다는 증거는 아닙니다.
- 적절한 canonical이 있는 대체 페이지: 의도한 대표로 통합됐는지 대상까지 확인합니다.
- Google이 다른 canonical을 선택한 중복 페이지: 콘텐츠 유사성, 링크, 사이트맵, 대상 응답을 재점검합니다.
- 크롤링됨—현재 색인되지 않음: 현재 미색인 상태일 뿐, noindex 정책이 처리됐다는 뜻은 아닙니다.
보고서는 갱신 지연과 예시 URL 범위의 한계가 있습니다. site: 검색 결과 수 역시 정확한 전체 색인 수로 취급하지 마세요. 같은 표본 URL의 변경 전후 기록과 URL 유형별 집계 추세를 함께 보는 것이 낫습니다.
7. 요청량 감소와 가치 있는 페이지의 보존을 함께 확인하세요
로그에서는 User-Agent에 Googlebot이 적혔다는 이유만으로 모두 정규 봇으로 집계하지 않습니다. 역방향·정방향 DNS 확인 등으로 검증한 요청을 사용하고, 사용자가 실행한 검사 요청도 일반 크롤링과 구분하세요. CDN을 사용한다면 원본 서버 로그에 나타나지 않는 요청이 있으므로 관측 범위부터 정해야 합니다.
필터 유형별 요청 수, 고유 URL 수, 응답 코드, 응답 시간과 함께 상품·핵심 카테고리의 수집 상황을 비교합니다. 비중만 보면 전체 요청량 변화에 속을 수 있으므로 절대량도 같이 보세요. 상품 출시나 프로모션처럼 비교 기간의 조건이 달라졌는지도 기록해야 합니다.
robots.txt 때문에 시도되지 않은 페이지 요청은 일반 접근 로그에 남지 않으므로, 로그만으로 차단의 모든 동작을 설명할 수는 없습니다. 반대로 서버 오류가 늘어서 요청량이 줄었다면 그것은 성공이 아닙니다.
마지막으로 유지 대상의 검색 노출·클릭·전환과 신규 상품 발견이 유지되는지 확인합니다. 불필요한 필터 크롤링이 줄어도 그만큼의 크롤링이 자동으로 상품에 재배분되거나 순위가 상승하는 것은 아닙니다. 특히 크롤링 제약이 크지 않은 사이트에서는 예산 절감보다 중복 정리와 핵심 페이지 보호가 더 중요한 성과일 수 있습니다.
실행 완료는 날짜가 아니라 통과 조건으로 판단하세요
유형별 소규모 적용부터 시작하고, 배포 후 정규 크롤링과 의도한 색인 상태가 확인되면 범위를 넓히세요. 유지 대상에 noindex가 붙거나 차단되었거나 다른 대표가 선택되는 등 문제가 나타나면 확대를 멈추고 해당 규칙을 되돌립니다. 일부 표본이 성공했다고 전체 처리가 끝났다고 단정하지는 마세요.
최종적으로 확인할 것은 세 가지입니다. 불필요한 기존 색인이 의도한 방식으로 정리됐는가, 새로운 저가치 URL의 생성·수집이 줄었는가, 가치 있는 필터와 상품의 접근·색인·성과가 보존됐는가. 이 세 조건을 따로 확인해야 태그를 많이 적용한 상태가 아니라 실제로 관리 가능한 URL 구조를 만들 수 있습니다.
넥스트티는 필터 URL을 지우는 일보다 남길 페이지를 지키는 일을 먼저 봅니다. 어떤 조합이 실제로 색인돼 있는지, 그중 유입이 있는 URL은 무엇인지 나눠 기록한 뒤 처리 순서를 정합니다. 차단이 색인 제외를 보장하지는 않습니다. 다만 무엇을 언제 바꿨고 그 뒤 무엇이 달라졌는지를 남기면, 효과가 없을 때 되돌릴 지점을 알 수 있습니다.
robots.txt로 무엇을 막고 무엇을 열어야 하는지는 robots.txt로 학습봇만 막는 설정에서 다뤘습니다.
자주 묻는 질문
검색 결과에서 급하게 숨겨야 한다면 Search Console 삭제 도구만 사용해도 되나요?
삭제 도구는 긴급한 임시 숨김에 사용할 수 있지만 영구적인 색인 제외나 크롤링 차단을 대신하지 않습니다. 페이지를 계속 제공한다면 크롤링 가능한 noindex를, 실제로 폐기한다면 적절한 삭제 응답을 함께 유지해야 합니다. 접두어 단위로 요청할 때는 남길 필터와 상품 URL까지 포함하지 않는지 특히 주의하세요.