Разработчикам
Каким должно быть перенаправление в магазин приложений — 301 или 302?
Перенаправление, зависящее от устройства, должно оставаться временным. Почему 301 в App Store или Google Play потом создаёт проблемы.
Коротко
Используйте 302 (или 307): перенаправление, которое отправляет iPhone в App Store, а Android-телефоны в Google Play, отвечает разным устройствам по-разному и может потом измениться. Браузеры запоминают 301 и в следующий раз обходят ваш сервер, поэтому исправленный позже URL магазина продолжает отправлять вернувшихся посетителей на старый. OneStoreLink (onestore.link) отвечает кодом 302, так что изменённый адрес назначения действует со следующего нажатия.
Последняя проверка: 2026-11-03
Когда вы пишете перенаправление, этот выбор кажется мелочью, но именно он решает, сможете ли вы когда-нибудь сменить адрес назначения. Браузеры понимают 301 как «этот адрес переехал навсегда» и запоминают его; 302 означает «на этот раз иди туда». Для ссылки, напечатанной на QR-коде или вставленной в профиль, которой пользуются месяцами, эта разница важнее всего остального в перенаправлении. В этом руководстве — какой код использовать, почему и что ещё должно отправлять перенаправление в магазин.
Проблема
- 301 сообщает браузерам, что переезд навсегда, и они это запоминают: следующее посещение может уйти в магазин, не спрашивая ваш сервер.
- Если 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-кодом — она же подхватит iPad, которые представляются как Mac.
- 3
Или используйте готовую ссылку
Создайте onestore.link с двумя URL магазинов: она отвечает кодом 302 под каждое устройство, не пускает короткую ссылку в индекс и позволяет потом сменить адрес назначения.
Частые вопросы
Плох ли 301 для ссылки на скачивание приложения?
Он рискован. Браузеры могут запомнить 301 и перестать спрашивать ваш сервер, поэтому адрес назначения, который вы потом измените, не дойдёт до посетителей, уже переходивших по ссылке. 302 избавляет от этого без каких-либо затрат.
302 или 307?
Оба временные. 307 гарантирует сохранение метода запроса; для ссылки, на которую нажимают люди, а это всегда GET, оба ведут себя одинаково. 302 — обычный выбор.
Вредит ли 302 SEO?
Не для такой ссылки. Перенаправление в магазин — не та страница, которую вы хотите продвигать в поиске; продвигать нужно ваш сайт. Пометьте перенаправление как noindex и ставьте ссылки на свой сайт со своих страниц.
Что отправляет onestore.link?
302 в App Store для User-Agent iPhone и iPad и в Google Play для Android, с заголовком X-Robots-Tag: noindex. Встроенные браузеры приложений и компьютеры вместо этого получают страницу, потому что там голое перенаправление не срабатывает или ничего не устанавливает.
Готовы попробовать?
Бесплатно навсегда, без пароля. Ваша ссылка будет готова примерно за минуту.
Создать бесплатную ссылкуСравниваете инструменты? onestore.link vs bitly →