14장. 캐노니컬, 리디렉션, 중복 콘텐츠: 같은 글처럼 보이는 URL 정리법
canonical과 redirect는 모두 URL 신호를 모으는 데 쓰이지만 동작이 다릅니다. 리디렉션은 사용자와 크롤러를 실제 다른 주소로 이동시키고, canonical은 현재 페이지를 열어 둔 채 선호 대표를 알리는 힌트입니다. 내용이 다른 두 글을 합치는 장치도 아니고 중복 콘텐츠 벌점을 피하는 마법 태그도 아닙니다.
중복 진단은 URL 변형인지, 내용이 실질적으로 같은 문서인지, 검색 의도가 겹치는 별도 글인지부터 나눕니다. 대표 URL을 먼저 정하지 않은 상태에서 canonical과 이동 규칙을 동시에 배포하면 루프·연쇄·상충 신호가 생길 수 있습니다.
대표 힌트와 실제 URL 이동을 서로 대신 사용하지 않습니다. 변경은 한 번에 하나만 적용하고, 복구 완료는 다시 검사한 증거로 판단합니다.
중복을 전송 변형, 템플릿, 의도 겹침으로 분류합니다
HTTP·HTTPS, 호스트, 추적 매개변수, 모바일 변형처럼 같은 본문으로 열리는 주소는 기술적 URL 변형입니다. 라벨과 아카이브에 게시물 일부가 반복되는 것은 템플릿 노출입니다. 제목만 다르고 같은 질문에 같은 답을 주는 여러 게시물은 콘텐츠 포트폴리오 문제입니다. 세 유형은 같은 처방을 쓰지 않습니다.
URL 검사와 브라우저에서 최종 주소, 응답, canonical, 본문을 비교합니다. 검색 결과에 비슷해 보인다는 이유만으로 삭제하지 말고, 각 주소의 사용자 목적과 외부·내부 링크를 기록합니다.
현재 주소가 안정적으로 링크와 검색 기록을 쌓았다면 미관만을 이유로 바꾸지 않습니다. 주소가 길거나 모양이 마음에 들지 않는 문제는 제목, 메뉴명, 탐색 경로 개선으로 먼저 해결합니다. 법적·구조적 필요처럼 이전 편익이 분명할 때만 대응표와 롤백 계획을 갖춰 URL 변경을 선택합니다.
대표 URL 기준은 접근성, 완전성, 지속성입니다
대표는 성공 응답으로 열리고, 완전한 고유 본문을 제공하며, 장기 유지할 주소여야 합니다. noindex 또는 robots 차단 주소, 리디렉션 목적지가 아닌 주소, 임시 캠페인 주소를 대표로 선언하지 않습니다. 내부 링크와 사이트맵도 같은 대표를 지지해야 합니다.
맞춤 도메인을 쓴 Blogger에서는 blogspot과 맞춤 호스트, HTTPS, 모바일·매개변수 변형이 어떤 주소로 수렴하는지 표본 검사합니다. 플랫폼 기본 정규화를 확인하기 전에 테마에 canonical을 중복 삽입하지 않습니다.
canonical은 힌트이며 상충 신호를 정리해야 합니다
Google의 중복 URL 통합 안내처럼 canonical은 대표 선택의 강한 힌트지만 절대 명령으로 단정할 수 없습니다. 본문이 크게 다르거나 내부 링크·사이트맵·리디렉션이 다른 주소를 가리키면 Google이 다른 대표를 선택할 수 있습니다.
자기 참조 canonical은 대표 주소를 명확히 하는 데 쓸 수 있으나 잘못된 템플릿이 모든 게시물을 홈으로 가리키면 사이트 전체 손상이 됩니다. 사용자 선언 대표와 Google 선택 대표가 다르면 태그만 재삽입하지 말고 내용 유사성, 응답, 링크 신호를 함께 봅니다.
canonical 상충
관측 증거: 모든 글이 홈을 대표로 선언하거나, 플랫폼 기본과 테마 태그가 겹치거나, Google 선택 대표가 선언과 다릅니다. 판단 순서는 대표 후보의 200·접근·색인·본문 확인, 문서 간 실질 유사성 비교, 선언 태그 확인, 링크·사이트맵 신호 대조입니다. 태그를 반복 삽입해 선택을 강제하지 않습니다.
최근 테마의 URL 변수와 수동 삽입을 점검해 페이지마다 올바른 절대 canonical 하나만 남깁니다. noindex·robots 차단·오류 목적지는 대표에서 제외합니다. 서로 다른 게시물 표본에서 자기 대표가 복원되고, 본문이 실질 중복인 비대표만 교차 canonical을 사용하며, 사용자 선언과 주변 신호가 같은 주소를 지지해야 완료입니다.
redirect는 주소가 실제로 대체될 때 사용합니다
글을 통합하거나 영구 주소가 바뀌어 이전 URL을 더 이상 제공하지 않을 때 서버 측 영구 이동이 주된 수단입니다. 일시적 이동은 원래 주소를 계속 대표로 유지할 상황에 맞습니다. 상태 코드 이름을 외우는 것보다 변경이 영구인지, 목적지 내용이 실질적으로 대응하는지 판단합니다.
관련 없는 모든 삭제 URL을 홈으로 보내지 않습니다. 사용자 기대와 맞지 않고 soft 404처럼 처리될 수 있습니다. 리디렉션과 Google 검색 안내에 따라 직접 목적지 하나로 연결하고 연쇄와 루프를 피합니다.
redirect와 canonical을 서로 대신 쓰지 않습니다
이전 주소를 완전히 폐기할 수 있는데 canonical만 남기면 사용자는 계속 중복 페이지를 봅니다. 반대로 인쇄·추적 변형처럼 사용자가 접근할 필요가 있고 자동 생성되는 URL을 모두 리디렉션하기 어려우면 canonical이 더 현실적일 수 있습니다. 상황에 맞는 주 신호를 고릅니다.
리디렉션된 원본에 canonical이 무엇이었는지는 최종 이동보다 덜 직접적입니다. 중요한 것은 이동 목적지의 성공 응답과 자기 일관성입니다. robots로 원본을 막아 이동 자체를 못 보게 하지 않습니다.
유사 게시물은 합칠지 역할을 분리할지 결정합니다
두 글의 대상, 질문, 결론, 다음 행동을 비교합니다. 하나가 개념이고 다른 하나가 복구 절차라면 제목·도입을 분리하고 상호 링크합니다. 같은 사례와 결론을 되풀이한다면 더 강한 대표 글에 고유 문단과 근거를 합친 뒤 이전 글을 적절히 이동시킵니다.
canonical로 콘텐츠 기획 결정을 미루지 않습니다. 서로 다른 내용을 한쪽 canonical로 보내면 비대표 글이 검색에서 무시될 수 있고 사용자는 여전히 두 답을 보게 됩니다. 통합 전 검색어, 내부 링크, 외부 링크, 전환 역할을 보존합니다.
외부 파트너가 원문을 재배포하는 신디케이션은 내부 근접 중복과 다르게 다룹니다. 파트너 사본을 검색에 남길 필요가 없다면 원문을 가리키는 canonical만 기대하기보다 파트너가 사본에 noindex를 제공하는 방식을 우선 협의합니다. 원문 쪽 canonical·내부 링크·사이트맵은 자기 주소를 일관되게 지지하게 하고, 통제할 수 없는 외부 사본 때문에 원문을 noindex하지 않습니다.
복합 장애는 네 갈래로 나눠 처리합니다
- 리디렉션 연쇄 또는 루프
A→B→C 또는 A↔B가 보이면 추가 규칙을 멈추고 요청별 상태와 Location을 기록합니다. 최종 대표 하나를 정해 과거·중간 주소가 한 번의 이동 뒤 200에 도착하도록 직접 연결합니다. HTTP·HTTPS, 이전·신규 호스트, 슬래시, 매개변수 진입점을 검사하고 내부 링크에는 최종 주소만 사용합니다. - 관련 없는 홈 이동
삭제 URL이 일괄적으로 홈으로 간다면 이전 문서의 사용자 과업과 목적지 본문을 비교합니다. 같은 과업의 구체적 문서에만 직접 이동시키고, 실질 대체가 없으면 안내가 있는 404 또는 410으로 끝냅니다. 이전 URL이 예상 문서에 한 번에 도착하고 최종 목적지가 오류·noindex·추가 이동을 내지 않아야 완료입니다. - 신디케이션 사본
외부 재배포는 내부 유사 글과 구분합니다. 사본을 검색에 남길 필요가 없다면 파트너의 noindex 제공을 우선 협의합니다. 원문은 200·색인 허용·자기 canonical을 유지하고 내부 링크와 사이트맵도 원문을 지지해야 합니다. 원문을 noindex하거나 파트너 URL을 대표로 선언하지 않으며, 계약·배포 양식의 담당자와 실제 파트너 응답을 확인합니다. - 근접 중복의 역할 오판
두 문서의 질의·독자·결론·다음 행동이 다르면 제목·도입·사례를 분리하고 각각 자기 canonical과 설명적인 상호 링크를 둡니다. 답이 실질적으로 같다면 고유 사례·표·근거·유입 링크를 대표 본문에 보존한 뒤 이전 URL을 직접 이동시킵니다. 정보 이전과 대표 발행 전에는 이동을 켜지 않습니다.
Blogger 모바일과 매개변수 URL은 기본 처리를 먼저 확인합니다
플랫폼은 모바일 표시나 공유·추적 과정에서 주소 변형을 만들 수 있습니다. 변형이 자동으로 대표 게시물에 수렴하고 본문이 같다면 존재 자체를 중복 벌점으로 과장하지 않습니다. 내부 링크는 깨끗한 대표 주소로 작성해 새 변형 생성을 줄입니다.
테마를 수정해 canonical을 덧붙이기 전 렌더링된 페이지에 기존 태그가 몇 개인지 확인합니다. 복수 canonical, 상대 경로 오류, 모든 글의 동일 대표 지정이 확인되면 최근 테마 수정을 원인 후보로 둡니다.
모바일 매개변수와 깨끗한 URL의 최종 주소, 본문, canonical을 같은 표본에서 비교합니다. 기본 수렴이 정상이라면 별도 차단이나 삭제 규칙을 만들지 않습니다. 내비게이션과 공유 버튼이 계속 변형 주소를 만들 때는 대표 태그를 더하는 대신 링크 생성 원인을 고쳐 발견되는 URL 자체를 정돈합니다.
대규모 수정 전 중단선을 설정합니다
URL 대응표, 테마 백업, 정상 표본, 현재 검색 실적이 없으면 배포를 멈춥니다. 호스트 전환과 경로 변경, 콘텐츠 통합, 내비게이션 개편을 한 번에 겹치지 않습니다. canonical 불일치 하나만 보고 전체 사이트 주소를 재작성하지 않습니다.
배포 전 표본에서 루프, 두 번 이상 이동, 오류 목적지, noindex 목적지, 다른 내용의 목적지를 찾으면 확장을 중단합니다. 자동 규칙은 예외 하나가 수천 URL에 번질 수 있으므로 수동 대표 표본이 필수입니다.
이전 URL별 클릭·노출·주요 질의와 내부·외부 링크 표본을 내보내 새 대응 URL 옆에 둡니다. 전환 뒤에는 먼저 직접 이동 성공률, 최종 응답, 대표 선택을 비교하고 검색 실적은 같은 질의군의 별도 시계열로 관찰합니다. 기준선이 없으면 성과 변화를 기술 오류로 오인해 불필요한 재변경을 만들 수 있습니다.
마이그레이션 대응표 누락
관측 증거: 맞춤 도메인이나 경로 전환 뒤 이전·신규 호스트 링크가 섞이고 여러 과거 URL이 임의 목적지로 이동합니다. 추가 경로 변경을 멈추고 이전 URL, 새 URL, 보존할 콘텐츠, 이동 상태를 한 행에 둔 1:1 대응표를 만듭니다. 이전 호스트는 새 호스트의 동일 문서로 직접 이동시킵니다.
canonical, 내부 링크, 사이트맵, 구조화 데이터 URL을 새 대표로 맞추고 양쪽 속성에서 상태를 관찰합니다. 배포 전 URL별 클릭·노출·상위 질의와 내부·외부 링크 기준선을 보존해 누락된 고가치 URL을 찾습니다. 기술 평가는 이동 성공률과 대표 선택으로 먼저 닫고 검색 성과는 같은 질의군의 별도 시계열로 봅니다.
복구는 대표 확정, 신호 정렬, 재검사로 진행합니다
먼저 남길 URL과 이유를 정합니다. 다음으로 대표 본문을 완성하고 성공 응답과 색인 허용을 확인합니다. 내부 링크·사이트맵·canonical을 대표로 맞춘 뒤, 폐기할 동일 문서는 가능한 범위에서 직접 이동시킵니다. 마지막으로 이전 URL과 최종 URL 양쪽을 검사합니다.
잘못된 canonical 사고에서는 최근 테마 변경을 되돌리고 각 게시물이 올바른 대표를 출력하는지 확인합니다. 잘못된 리디렉션 사고에서는 루프 규칙을 제거하고 원본 또는 올바른 목적지를 복원합니다. 복구 중 robots 차단을 추가하지 않습니다.
내부 링크·사이트맵 불일치
관측 증거: canonical은 깨끗한 대표를 가리키지만 내비게이션, 본문, 공유 버튼 또는 사이트맵은 매개변수·이전 호스트·리디렉션 URL을 계속 만듭니다. canonical만 믿지 말고 href 생성 원인을 고쳐 신규 링크를 대표 주소로 바꿉니다. 사이트맵에는 200·색인 허용·자기 canonical URL만 남깁니다.
리디렉션, noindex, 교차 canonical 항목을 제거하고 내부 링크 수신 주소와 사이트맵 집합을 대조합니다. 모바일·추적 변형이 플랫폼 기본 처리로 정상 수렴한다면 존재 자체를 벌점으로 보아 차단하지 않습니다. 신규 콘텐츠와 공유 기능이 깨끗한 주소를 만들고 최종 대표가 일관되게 링크를 받을 때 종료합니다.
롤백과 검증은 사용자 이동부터 시작합니다
사용자가 이전 URL을 열어 관련 최종 글에 한 번에 도착하는지, 뒤로가기와 내부 링크가 정상인지 봅니다. 이어서 크롤러가 이동을 따라갈 수 있고 최종 페이지의 본문과 canonical을 읽는지 확인합니다. Google 선택 대표 갱신은 재처리가 필요하며 고정 기간을 보장하지 않습니다.
정상 URL이 홈으로 이동하거나, 여러 글이 같은 대표를 선언하거나, 색인 가능한 글이 noindex 목적지로 향하면 즉시 롤백합니다. 롤백 후 사이트맵과 내부 링크도 원래 주소로 되돌아왔는지 확인해야 반쪽 복구를 피할 수 있습니다.
롤백 뒤 신호 일부만 복원된 경우
이동 규칙은 되돌렸지만 내부 링크와 사이트맵이 신규 주소를 유지하거나 정상 글이 홈·noindex 대표를 계속 가리키면 롤백은 끝나지 않았습니다. 응답 규칙, 내비게이션과 본문 링크, 사이트맵, canonical, 구조화 데이터 URL을 같은 복구 범위로 묶습니다.
이전 대표가 200·자기 canonical로 복원됐는지, 신규 주소가 별도 200 중복으로 남지 않았는지 양방향으로 검사합니다. 사용자와 크롤러의 이동을 먼저 정상화하고 선택 대표와 검색 성과 갱신은 별도 관찰합니다.
대표 URL 결정은 한 장의 종합 확인표로 남깁니다
- 대표 URL 자격: 남길 문서가 200 응답, 크롤·색인 허용, 자기 canonical, 완전한 본문을 제공하는지 확인합니다.
- 정렬 신호: canonical, 내부 링크, 사이트맵, 구조화 데이터가 같은 대표 주소를 지지해야 합니다. 한 항목이라도 다른 주소를 가리키면 생성 원본부터 수정합니다.
- 폐기 URL: 관련 최종 대표로 한 번에 이동시키고 루프·연쇄·무관한 홈 이동이 없는지 양방향으로 검사합니다.
- 예외 변형: 신디케이션 사본은 파트너 noindex를 우선 협의하고, 모바일·매개변수 변형은 플랫폼의 정상 수렴 여부를 확인합니다.
- 배포 안전장치: 변경 전후 값, 검사 시각·도구·담당자, 1:1 대응표, 검색·링크 기준선과 롤백 범위를 남깁니다.
- 종료 조건: 사용자 이동, 크롤러 이동, 렌더링 본문, 선언 대표가 모두 일치할 때 기술 정리를 종료합니다.
중복 정리의 성공은 순위 하나로 판정하지 않습니다. 대표 URL 일관성, 이동 오류 감소, 불필요한 변형 링크 감소, 의도별 랜딩 명료성을 기술 성공 지표로 봅니다. 정상 URL이 홈이나 noindex 목적지로 향하거나 여러 글이 같은 대표를 선언하면 즉시 롤백하고, 응답 규칙뿐 아니라 내부 링크·사이트맵·canonical까지 함께 복원합니다.
URL 검사에서 사용자 선언 대표와 Google 선택 대표, 마지막 크롤을 확인하고 Search Console 페이지별 쿼리가 의도한 대표로 모이는지 관찰합니다. 기술 종료와 검색 성과 평가는 별도로 기록하며, 선택 대표나 순위가 갱신될 고정 기간은 약속하지 않습니다.
