고객지원이 캠페인 페이지를 티켓에 붙이고, 운영이 상품 링크를 카카오톡이나 슬랙에 던지고, 개발자가 문서 주소를 채팅에 붙입니다. 매일 일어나는 일입니다. 복사된 문자열은 생각보다 깁니다. utm_source=newsletter, fbclid= 뒤에 이어지는 수십 글자, 네이버 광고의 n_media=와 n_rank=. 그 긴 주소를 그대로 넘기면 유입 채널, 광고 클릭 식별자, 노출 위치까지 다음 사람에게 같이 넘어갑니다.
반대로 물음표 뒤를 통째로 지우는 사람도 있습니다. 유튜브는 영상을 못 열고, 쇼핑몰은 홈으로 돌아가고, 검색 결과는 빈 목록이 됩니다. 문제는 「정리할 것인가」가 아닙니다. 파라미터를 두 종류로 나누는 일입니다. 추적 태그는 지워도 됩니다. 자원을 가리키는 값은 남겨야 합니다. 아래는 대조표, 예외, 그 자리에서 확인할 수 있는 순서입니다. MyPassGen의 UTM 제거 페이지도 같은 경계를 따릅니다. 이 글은 도구 소개가 아닙니다. 공유할 때 지워도 되는 이름과 지우면 안 되는 이름만 답합니다.
물음표 뒤가 전부 쓰레기는 아니다
URL에서 ? 뒤는 쿼리 문자열입니다. WHATWG URL 표준에 따르면 http / https 링크를 열 때 쿼리는 요청 줄에 들어가고, 상대 사이트의 접속 로그에도 남습니다. 우물정자 # 뒤의 프래그먼트와는 다른 객체입니다. 브라우저는 기본적으로 프래그먼트를 HTTP 요청에 넣지 않습니다. 쿼리는 나갑니다.
쿼리는 이름=값 쌍의 목록이고, 항목 사이는 &로 잇습니다. 브라우저의 URLSearchParams로 이름을 읽고 지울 수 있어서, 물음표를 눈으로 찾을 필요는 없습니다. 지워도 되는지는 값이 얼마나 길거나 난수처럼 보이느냐가 아니라, 그 이름이 콘텐츠를 여는 데 필요한가로 판단합니다.
추적 파라미터: 분석 시스템이 읽는 태그
추적 파라미터는 통계, 광고 기여, 메일 시스템에 쓰입니다. 페이지 템플릿은 대개 이 값 없이도 같은 글, 같은 상품을 그립니다. 지운 뒤에도 방문자는 같은 콘텐츠에 도착해야 합니다. 바뀌는 것은 도착지의 보고서입니다. 「어느 광고, 어느 메일에서 들어왔는가」가 한 번 덜 찍힙니다.
Google Analytics는 이 태그를 UTM으로 적습니다. 도움말 Collect campaign data with custom URLs에 나오는 이름은 utm_source, utm_medium, utm_campaign, utm_term, utm_content, utm_id입니다. source, medium, campaign은 맞춤 캠페인에 항상 붙이라는 세 항목입니다. 마케터가 태그를 다는 기준이지, 페이지가 열리기 위한 전제가 아닙니다.
업무 파라미터: 이 콘텐츠를 여는 데 필요한 값
업무 파라미터는 구체적인 자원을 가리킵니다. 유튜브의 v=는 영상 ID입니다. 쇼핑몰의 sku=, id=, 쿠팡의 상품 경로에 붙는 식별자는 특정 SKU를 엽니다. 검색 페이지의 q=는 검색어입니다. page=는 몇 번째 화면인지를 정합니다. 이 이름을 지우면 서버는 어떤 객체를 달라는지 모릅니다. 404, 홈, 빈 결과가 나옵니다. 이름이 짧거나 값이 난수처럼 보여도, 그게 추적값이라는 증명은 아닙니다.
지우기 전에 한 가지만 묻기
이 이름이 「분석 시스템에 어디서 왔는지 알려 주는가」, 아니면 「서버에 어느 레코드를 열라고 알려 주는가」. 답이 안 나오면 일단 utm_로 시작하는 항목과 흔한 클릭 ID만 지운 뒤, 새 탭에서 제목과 본문이 같은 페이지인지 확인합니다.
지워도 되는 추적 파라미터 대조
아래 표는 출처별로 묶었습니다. 전 세계 목록이 아닙니다. 광고 플랫폼은 새 이름을 계속 만듭니다. 다만 광고 관리 화면, 뉴스레터, 카카오톡·메일 공유 버튼에서 가장 자주 따라오는 묶음은 커버합니다. 이들을 지워도, 열려던 그 페이지는 대개 그대로입니다.
| 구분 | 흔한 이름 | 지운 뒤에 보통 일어나는 일 |
|---|---|---|
| UTM 캠페인 태그 | utm_source utm_medium utm_campaign utm_term utm_content utm_id |
같은 페이지. 도착지 캠페인 기여가 한 번 빠짐 |
| 광고 클릭 ID | fbclid gclid gbraid wbraid msclkid dclid twclid |
같은 페이지. 광고 플랫폼의 클릭 대사 한 건이 빠짐 |
| 분석·메일 | _ga _gl mc_eid mkt_tok |
같은 페이지. 교차 도메인 또는 메일 신원 연결이 한 번 빠짐 |
| 국내 광고·공유 귀속 | n_media n_query n_rank n_ad si igshid |
같은 페이지. 네이버 광고 슬롯·유튜브 공유 ID가 따라가지 않음 |
fbclid는 페이스북·인스타그램 공유나 광고 점프에 붙는 클릭 식별자입니다. gclid는 Google Ads의 클릭 ID입니다. msclkid는 Microsoft Advertising에 대응합니다. gbraid / wbraid는 서드파티 쿠키가 제한된 뒤 Google 기여 경로에 나타납니다. 값이 길고 열쇠처럼 보이지만, 하는 일은 기여이지 글이나 상품을 찾는 일이 아닙니다.
네이버 검색광고의 자동 추적 URL은 캠페인 설정에서 켜면 랜딩에 n_media, n_query, n_rank, n_ad_group, n_ad, n_keyword 등을 붙입니다. 네이버 광고주센터 도움말이 이 이름을 명시합니다. 광고주 리포트용이지, 상품 페이지를 여는 키가 아닙니다. 쇼핑검색의 n_mall_pid는 광고 쪽 상품 식별에 가깝습니다. 랜딩 경로에 이미 상점 상품 ID가 있으면 대개 지워도 됩니다. 확신이 없으면 남기고 새 탭에서 상품이 바뀌는지 봅니다.
유튜브 공유 버튼이 붙이는 si=, 인스타그램의 igshid도 같은 계열입니다. 영상 ID인 v=는 남기고, 공유 추적만 뗍니다. iOS 17 이후 Safari의 링크 추적 보호는 메일·메시지·Safari 개인 정보 보호 브라우징에서 클릭 ID 일부를 이미 지웁니다. Apple은 공식 목록을 내지 않습니다. 보고되는 이름에는 gclid, fbclid, msclkid가 자주 들어갑니다. 표준 UTM은 그 목록에 없다는 이야기가 많아서, iOS 메시지에서 붙여 넣은 주소는 클릭 ID만 없고 utm_source는 남아 있을 수 있습니다. 참고일 뿐, 넘기기 전 정리를 생략할 이유는 아닙니다. 크롬을 쓰는 동료는 당신이 남긴 문자열을 그대로 받습니다.
회색 이름도 있습니다. ref, source, from, 일부 제휴의 tag=. 어떤 사이트는 캠페인 기여만 하고, 어떤 사이트는 이 값으로 템플릿이나 정산을 바꿉니다. 모르겠으면 남기고, UTM과 클릭 ID만 지운 뒤 새 탭에서 제목, 본문, 상품 옵션을 대조합니다.
지우면 페이지가 열리지 않는 업무 파라미터
업무 파라미터에는 공통 접두사가 없습니다. 사이트가 그 이름으로 무엇을 하는지만 보면 됩니다. 아래 묶음은 거의 항상 남겨야 합니다.
- 자원 ID:
v=(영상),id=/sku=/pid=/itemId=(상품 또는 객체),doc=(문서 번호). 네이버 블로그의blogId와logNo도 글을 가리킵니다. - 검색 자체: 검색 페이지의
q=,query=,keyword=. 지도의 좌표나 장소 ID. - 페이지와 정렬:
page=,p=,offset=,sort=. 지우면 1페이지나 기본 정렬로 돌아갑니다. 404가 아니어도, 넘기려던 그 화면은 아닙니다. - 언어와 사이트:
hl=,lang=,locale=. 지우면 확인 중이던 언어 판에서 벗어날 수 있습니다.
바로 할 수 있는 시험이 있습니다. 쿼리 전체를 메모장에 복사하고, 이름 하나만 지운 뒤 개인 정보 보호 창에서 엽니다. 제목, 대표 이미지, 가격, 본문이 원문과 다르면 그 이름을 「남겨야 하는 쪽」에 되돌립니다. 물음표 뒤를 한 번에 비운 다음 어느 항목이 범인인지 추측하지 않습니다.
로그인 상태나 일회용 토큰이 붙은 링크는 더 위험합니다. token=, auth=, access_key=도 난수처럼 보이지만, 세션이나 다운로드 자격 증명일 수 있습니다. UTM도 아니고, 단톡방에 올라갈 값도 아닙니다. 토큰이 있는 URL은 전달하지 않습니다. 같은 내용을 보여 줘야 하면 상대의 로그인 입구를 쓰거나, 파일을 이 기기에서 암호화한 뒤 다른 채널을 고릅니다.
물음표 통째를 출처 불명의 「온라인 정리」에 넣지 말 것
쿼리에는 세션 토큰, 미리보기 코드, 내부 객체 ID가 섞일 수 있습니다. 원문을 업로드하는 사이트에 전체 URL을 붙이면 그 값이 상대 로그에 기록됩니다. 정리는 현재 탭의 브라우저에서 끝내고, 빠진 이름을 목록으로 보여 줘야 대조할 수 있습니다. 「저장하지 않습니다」한 줄을 믿을 일이 아닙니다.
단축 링크, QR, 복사 버튼은 파라미터를 숨긴다
bit.ly, t.co, 카카오의 짧은 주소, 각 플랫폼의 단축 링크를 보고 물음표 뒤가 깨끗하다고 생각하지 않습니다. 단축 링크는 한 겹의 점프입니다. 브라우저가 짧은 호스트를 요청한 뒤, 301/302로 쿼리가 가득한 긴 주소로 갑니다. 채팅에 복사된 것은 짧은 쪽입니다. 받는 사람이 누르면 주소창 최종에는 여전히 utm_와 클릭 ID가 남을 수 있습니다.
QR도 같습니다. 많은 「공유」 버튼은 추적 파라미터가 붙은 긴 주소를 만든 뒤 코드로 줄입니다. 휴대폰으로 스캔한 뒤에는 포스터 이미지가 아니라, 점프가 끝난 주소창을 봅니다. 깨끗한 링크를 보내려면 도착한 뒤 주소창에서 복사합니다. 관리 화면의 「단축 링크 복사」를 그대로 넘기지 않습니다.
메일과 문자 포장은 더 잘 안 보입니다. 일부 메일 서비스는 모든 링크를 자체 클릭 집계 도메인으로 바꾼 뒤, mkt_tok나 mc_eid가 붙은 도착 페이지로 보냅니다. 넘겨야 하는 것은 최종 랜딩이지, 메일 안의 집계 점프가 아닙니다. 순서는 이렇습니다. 직접 연다 → 주소창이 멈출 때까지 기다린다 → 그다음 어떤 쿼리를 지울지 정한다.
그 자리에서 확인: 주소창, 새 탭, Network
구호는 확인할 수 없습니다. 트래픽은 확인할 수 있습니다. 아래 순서는 브랜드 약속에 기대지 않습니다. 브라우저가 결과를 펼쳐 줍니다.
- 넘길 URL을 메모장에 통째로 붙여 넣습니다. 원래 쿼리를 남기고, 기억만으로 고치지 않습니다.
- 위 표대로 먼저
utm_*와 클릭 ID(fbclid,gclid등)만 지웁니다. 페이지 ID는 이번 패스에서 건드리지 않습니다. - 개인 정보 보호 창이나 새 탭에서 정리한 주소를 엽니다. 제목, 본문, 가격, 영상이 같은 대상인지 봅니다.
- 개발자 도구 Network를 열고 「로그 유지」를 켠 뒤 새로고침합니다. 문서 요청의 Request URL을 봅니다. 지운 이름은 없어야 하고,
v=,id=같은 값은 남아 있어야 합니다. - 페이지가 이상하면 메모장에서 방금 지운 항목을 되돌립니다. 한 번에 이름 하나만 복구해, 실제로 필요한 파라미터를 찾습니다.
브라우저에서 「빠진 이름」을 나열하는 도구를 쓰면, 그 목록과 Network의 Request URL을 나란히 읽습니다. 목록에 있고 요청에 없으면 실제로 빠진 것입니다. 목록에 없는데 손으로 id=를 지웠다면 오작동입니다. 되돌립니다.
MyPassGen의 UTM 제거는 이 경계로 동작합니다. 표준 모드는 흔한 UTM, 클릭 ID, 일부 커머스 귀속 파라미터를 뺍니다. 보수적 모드는 주로 UTM과 클릭 ID만 건드립니다. 정리는 현재 탭에서 끝나고, 원문은 올라가지 않으며, 가입도 필요 없습니다. 빠진 파라미터를 목록으로 보여 주소창과 맞출 수 있습니다. 한 줄이 8 KB를 넘거나, 한 번에 약 100줄을 넘기면 나눠서 처리합니다. 도구가 임의의 긴 텍스트를 삼킬 것이라고 가정하지 않습니다.
오해: 물음표를 비우기, 단축 링크를 믿기, 토큰을 놓치기
「물음표 뒤는 전부 쓰레기」가 가장 흔한 과잉 정리입니다. 검색어, 페이지, 언어, 자원 ID가 모두 쿼리에 삽니다. 안전한 기본값은 화이트리스트 삭제(알려진 추적 이름만 건드림)이지, 블랙리스트 비우기(모르는 이름을 전부 지움)가 아닙니다.
「단축 링크는 이미 짧으니 깨끗하다」는 성립하지 않습니다. 짧은 것은 점프 층이지, 도착 쿼리가 아닙니다. 확인하려면 점프가 끝난 주소창을 봐야 합니다.
「HTTPS면 프라이버시는 지킨다」는 전송 경로의 엿듣기만 가립니다. 받는 사람이 링크를 열면 도착지는 쿼리 전체를 봅니다. 줄여야 하는 것은 내가 넘기는 그 사본에 붙은 불필요한 태그입니다. HTTPS의 역할이 아닙니다.
「링크를 정리하면 개인정보도 가려진다」도 틀립니다. 전화번호, 주민등록번호, 이메일, API Key는 본문, 캡처, 티켓 표에 있는 경우가 많고 URL에는 없습니다. 링크가 깨끗해진 뒤에도 같은 로컬 처리로 그 칸을 가려야 합니다. utm_를 뺐다고 끝난 것이 아닙니다.
어디서부터 정리할까
오늘 보내야 하는 그 한 줄부터 합니다. 원본을 열고, 주소창이 멈출 때까지 기다린 뒤 전체 URL을 복사합니다. 표대로 UTM과 클릭 ID만 빼고, 새 탭에서 확인한 다음 보냅니다. 단톡 공지, 지식 베이스, 티켓 템플릿의 옛 링크는 나중에 해도 됩니다. 한 번에 사이트 전체를 비울 필요는 없습니다.
한 덩어리에 URL이 여러 개면 줄 단위로 나눕니다. 물음표 뒤 이름을 하나씩 봅니다. 한 주소에 id=와 n_rank=가 같이 있으면 id=는 남기고 n_rank=는 뺀 뒤, 열어 상품이 그대로인지 확인합니다. 이 한 패스를 하면 제목의 질문에 답할 수 있습니다. 지워도 되는 것은 추적 태그입니다. 지우면 안 되는 것은 콘텐츠를 여는 업무 파라미터입니다.
정리한 주소와 짧은 비밀을 같이 줘야 할 때는 키를 다시 쿼리에 넣지 않습니다. 한 번만 보여 줄 비밀은 일회용 링크를 쓰고, 키는 URL의 # 뒤에 둡니다. 나중에 다시 풀 파일은 파일 암호화로 이 기기에서 .lock / .enc를 만듭니다. 링크 정리가 하는 일은 「넘길 때 태그를 줄이는 것」이지, 키 교환이 아닙니다.
자주 묻는 질문
UTM을 빼면 상대도 같은 페이지를 보나요?
대부분의 콘텐츠 사이트와 상품 페이지에서는 그렇습니다. UTM은 분석 시스템의 캠페인 기여용이고, 템플릿은 보통 그 값 없이 본문을 그립니다. 상태 코드 200만 보지 말고, 새 탭의 제목과 본문을 기준으로 합니다.
fbclid가 긴데, 열쇠인가요? 넘겨도 되나요?
클릭 식별자이지 로그인 암호는 아닙니다. 그래도 넘길 이유는 없습니다. 남겨 두면 그 클릭의 기여 사슬을 다음 연 사람에게 주고, 상대가 보관하는 채팅 기록에도 남습니다.
단축 링크는 먼저 펼친 뒤에 파라미터를 빼야 하나요?
그렇습니다. 자기 브라우저에서 단축 링크를 열고, 점프가 끝난 뒤 주소창의 긴 주소를 복사한 다음, 표의 추적 이름을 지웁니다. 짧은 쪽만 넘기면 받는 사람 도착 후에도 쿼리가 그대로일 수 있습니다.
링크 정리에 가입이 필요한가요? 원문이 올라가나요?
가입은 필요 없습니다. 원문을 업로드하는 사이트에 URL을 넘길 때 로그 위험이 생깁니다. 로컬 처리에서는 원문이 현재 탭에 남습니다. 확인할 것은 Network가 전체 URL을 제3자에게 보냈는지, 목록에 적힌 이름이 주소창에서 실제로 사라졌는지입니다.