개발자
앱 스토어 리디렉션은 301과 302 중 무엇이어야 할까?
기기에 따라 달라지는 리디렉션은 임시로 남아야 합니다. App Store나 Google Play로 가는 301이 나중에 문제를 일으키는 이유를 설명합니다.
짧은 답변
302(또는 307)를 쓰세요. iPhone은 App Store로, Android 휴대폰은 Google Play로 보내는 리디렉션은 기기마다 다르게 응답하고 나중에 바뀔 수도 있습니다. 브라우저는 301을 기억해 다음 방문 때 서버를 건너뛰므로, 나중에 고친 스토어 URL이 있어도 재방문자는 계속 예전 URL로 가게 됩니다. OneStoreLink(onestore.link)는 302로 응답하므로, 수정한 목적지가 다음 탭부터 바로 적용됩니다.
최종 검토일: 2026-11-03
리디렉션을 작성할 때는 사소해 보이지만, 이 선택이 앞으로 목적지를 바꿀 수 있을지를 결정합니다. 브라우저는 301을 “이 주소는 영구적으로 이동했다”로 받아들여 기억하고, 302는 “이번에는 저기로 가라”라는 뜻입니다. QR 코드에 인쇄되거나 프로필 소개에 붙여 넣어 몇 달씩 계속 쓰이는 링크라면, 이 차이가 리디렉션의 다른 무엇보다 중요합니다. 이 가이드는 어떤 코드를 써야 하는지, 그 이유, 그리고 스토어 리디렉션이 그 밖에 무엇을 보내야 하는지 설명합니다.
문제
- 301은 브라우저에 이동이 영구적이라고 알리고, 브라우저는 이를 기억합니다. 다음 방문은 서버에 묻지 않고 바로 스토어로 갈 수 있습니다.
- 새 앱 페이지, 새 패키지 이름, 고친 오타 등으로 나중에 스토어 URL이 바뀌어도, 재방문자는 여전히 예전 URL로 갈 수 있습니다.
- 기기 기반 리디렉션은 iPhone과 Android 휴대폰에 서로 다른 답을 주는데, 영구 리디렉션은 이를 표현하지 못합니다.
- 검색 엔진에 색인된 리디렉션 URL은 사람을 다른 곳으로 보내기 위해서만 존재하는 페이지를 하나 더 만듭니다.
onestore.link와 함께
- 302(또는 요청 메서드까지 유지하는 307)로 응답하세요. 브라우저는 방문할 때마다 서버에 다시 묻습니다.
- 요청할 때마다 방문자의 User-Agent로 목적지를 고르면, 변경 사항이 즉시 적용됩니다.
- 리디렉션에 X-Robots-Tag: noindex 헤더를 붙여 짧은 링크 자체가 검색 결과에 나오지 않게 하세요.
- onestore.link는 302와 X-Robots-Tag: noindex 헤더로 응답하며, 공유한 링크를 바꾸지 않고도 언제든 스토어 URL을 수정할 수 있습니다.
방법
SDK도, 재빌드도 없습니다. URL 하나면 됩니다.
- 1
임시 리디렉션 반환하기
User-Agent로 스토어를 고르고 상태 코드 302로 응답하세요. 여기서는 Cloudflare Worker 예시이며, 같은 로직은 어떤 서버에서도 작동합니다.
// 임시 리디렉션: 브라우저는 방문할 때마다 서버에 다시 묻는다 export default { fetch(req) { const ua = req.headers.get("user-agent") || ""; const ios = "https://apps.apple.com/app/id0000000000"; const android = "https://play.google.com/store/apps/details?id=com.example.app"; const web = "https://example.com/download"; const to = /iPhone|iPad|iPod/.test(ua) ? ios : /Android/i.test(ua) ? android : web; return new Response(null, { status: 302, headers: { Location: to, "X-Robots-Tag": "noindex" } }); }, }; - 2
컴퓨터는 스토어가 아니라 페이지로 보내기
스토어 페이지로는 컴퓨터에 아무것도 설치할 수 없습니다. 데스크톱 방문자는 두 스토어 버튼과 QR 코드가 있는 페이지로 보내세요. 이 페이지는 Mac이라고 밝히는 iPad도 받아 냅니다.
- 3
또는 호스팅되는 링크 사용하기
두 스토어 URL로 onestore.link를 만드세요. 기기별로 302로 응답하고, 짧은 링크를 색인에서 제외하며, 나중에 목적지를 바꿀 수 있게 해 줍니다.
자주 묻는 질문
앱 다운로드 링크에 301은 나쁜가요?
위험합니다. 브라우저가 301을 기억하고 서버에 묻지 않게 될 수 있어, 나중에 바꾼 목적지가 이미 링크를 따라간 방문자에게 닿지 않습니다. 302는 아무 비용 없이 이를 피합니다.
302인가요, 307인가요?
둘 다 임시 리디렉션입니다. 307은 요청 메서드가 유지됨을 보장하지만, 사람이 탭하는 링크는 항상 GET이므로 둘의 동작은 같습니다. 일반적인 선택은 302입니다.
302가 SEO에 해가 되나요?
이런 링크에는 해가 되지 않습니다. 스토어 리디렉션은 순위를 올리고 싶은 페이지가 아니며, 순위를 올려야 할 페이지는 내 웹사이트입니다. 리디렉션은 noindex로 표시하고, 내 페이지들에서 웹사이트로 링크하세요.
onestore.link는 무엇을 보내나요?
iPhone과 iPad User-Agent에는 App Store로, Android에는 Google Play로 가는 302를 X-Robots-Tag: noindex 헤더와 함께 보냅니다. 인앱 브라우저와 컴퓨터에는 대신 페이지를 보여 줍니다. 그곳에서는 단순한 리디렉션이 실패하거나 아무것도 설치하지 못하기 때문입니다.
사용해 볼 준비가 되셨나요?
영원히 무료이고 비밀번호도 필요 없습니다. 약 1분이면 링크가 준비됩니다.
무료 링크 만들기도구를 비교하고 계신가요? onestore.link vs bitly →