Skip to main content

Переспрямування URL у Shopify: обмеження, перевірені на практиці.

Що переспрямування URL у Shopify роблять, а чого не роблять, встановлено тестами, а не читанням документації. Підтримка символів підстановки та регулярних виразів, обробка рядків запиту й параметрів, ланцюжки переспрямувань, ліміти символів і записів, формати URL, які мовчки віддають 404, та правила масового імпорту CSV. А також те, як перевірити, що ваші переспрямування справді працюють після запуску.

Золота глиняна дорога обривається на розриві, а лісово-зелена глиняна стрілка вигинається над ним на дорогу, що продовжується, де стоїть синя глиняна торба для покупок
Коротка версія
  1. Жодних символів підстановки і жодних регулярних виразів, у жодному тарифі. Кожен запис це одна URL-адреса, зіставлена з одним призначенням, і в стандартних тарифах, і в Plus. Правила за шаблоном мають жити на рівні перед Shopify, наприклад у CDN або на edge-проксі.
  2. Один формат рядка ламається: незакодована крапка з комою після знака рівності. Shopify приймає запис і зберігає його з крапкою з комою, закодованою як %3b, тож збій стається під час запиту, а не під час імпорту: сира крапка з комою у вхідній URL-адресі ніколи не збігається із закодованим записом і повертає 404. Запит на закодовану форму повертає 301. Кожен інший формат, який ми перевірили, було прийнято й виконано, включно з крапками з комою в інших місцях рядка.
  3. Стелі зафіксовані: 100 000 записів, 20 000 000 у Plus і 1 024 символи на рядок. Підрахунок символів включає початкову скісну риску, і підтримка не може підняти жоден з лімітів на кількість записів. Каталогу, достатньо великому, щоб наблизитися до них, потрібен файл переспрямувань, згенерований і імпортований партіями, а не зібраний вручну.
  4. Запобіжник від ланцюжків перевіряє один напрямок, тож порядок створення вирішує, чи утвориться ланцюжок. Shopify блокує переспрямування, призначення якого вже є джерелом іншого. Зворотний напрямок він не перевіряє, тож /a на /b, а пізніше /b на /c буде прийнято, і залишиться живий ланцюжок із двох переходів. Масові імпорти застосовують рядки в порядку файлу, і саме так це стається. Після імпорту візьміть вибірку своїх переспрямувань і порахуйте переходи.
  5. Shopify переписує те, що ви імпортуєте, перш ніж зберегти. Він переводить рядок у нижній регістр, прибирає протокол і домен, додає початкову скісну риску там, де її немає, і може переставити параметри запиту. Запис, який правильно виглядає в адмінці, все одно може не збігтися із запитом, який люди справді надсилають, тож перевіряйте через curl -sIL на живій URL-адресі: один перехід 301, що завершується на 200. Зачекайте хвилину перед повторним тестом, бо вузол edge може віддавати стару відповідь близько тридцяти секунд.

Кращий довідковий документ

Написано й підтримується для брендів та агенцій, які проводять міграцію сайту. Особливо якщо ви невелика команда, якій потрібно, щоб кожна година рахувалася. Цей посібник допоможе вам побудувати стратегію точного виконання 301 переспрямувань, якщо ви мігруєте на Shopify. Зокрема, цей документ стане в пригоді, якщо ви:

  • Мігруєте з Wordpress
  • Мігруєте з Magento
  • Мігруєте з Salesforce
  • Мігруєте з Sitecore
  • Мігруєте з BigCommerce
  • Мігруєте з Webflow
  • Мігруєте із саморобного сайту на PHP

Якщо ви беретеся за проєкт зі складними схемами 301 переспрямувань і вам потрібна команда, яка живе саме такою роботою, зв’яжіться з нами.


Логіка переспрямувань URL у Shopify: огляд

Офіційний довідковий документ Shopify про переспрямування URL можна знайти тут. Це стислий документ із загальними настановами, на які може спиратися менеджер магазину Shopify, щоб додати окремі та масові 301 переспрямування. У ньому бракує конкретики про типи URL-адрес, які магазин Shopify підтримує нативно, і цей звіт має заповнити прогалини.

Стисло про висновки щодо функціональності переспрямувань URL у Shopify

  • Логіка переспрямувань URL у Shopify дуже надійна.
  • У нашому тесті зі 100 різних форматів рядків URL Shopify функціонально підтримав 99 зі 100 типів.
  • Нативна система не підтримує символи підстановки для переспрямувань URL.
  • Оновлювати наявні шляхи переспрямувань було легко за допомогою інструмента імпорту, якщо дотримуватися недокументованих правил Shopify.
  • Існують ліміти на загальну кількість переспрямувань, якими керуватимуть магазини Shopify та ShopifyPlus.
  • Існують ліміти на загальну кількість символів у рядку переспрямування URL.
  • Ланцюжки 301 переспрямувань створити не можна, і це на щастя. (Виправлено в повторній перевірці 2026 року. Запобіжник перевіряє лише один напрямок.)
  • Для URL-адрес із параметрами існує багато винятків і правил.
  • Інтерфейс керування переспрямуваннями URL зручний, але йому не завадило б більше деталей.
  • Тести не розглядали варіанти переспрямувань, доступні для Hydrogen і Oxygen.
  • Ми даємо чинній системі переспрямувань URL у Shopify оцінку корисності 85 %.

Оцінку знижено на 5 % за відсутність підтримки символів підстановки, на 1 % за єдиний тип рядка URL, який вона не підтримала, на 2 % за ліміти довжини URL у символах, на 3 % за дивну поведінку з параметризованими URL-адресами і на 4 % за суттєві деталі керування інформацією, яких бракує в UX переспрямувань.

Тестування проведено 19 червня 2024 року.

Повторно перевірено 27 липня 2026 року

Кожне твердження тут перевірено заново на живому магазині Shopify зі стандартним тарифом, через Admin GraphQL API і на реальних запитах до вітрини. Більшість висновків 2024 року витримали. Дев'ять ні, і два з них скасовують те, що ми опублікували: запобіжник від ланцюжків перевіряє один-єдиний напрямок і порядок, у якому ви створюєте записи, вирішує, чи утвориться ланцюжок, а переспрямування на /services спрацьовує, тоді як усе, що під ним, повертає 404.

Висновки 2024 року залишаються на своїх місцях. Кожне виправлення позначене біля твердження, якого воно стосується, щоб кожен, хто діяв за оригіналом, побачив, що змінилося.

Наша методологія тестування переспрямувань

Ми хотіли відповісти своїми тестами на кілька питань, щоб допомогти уникнути пасток у правилах 301 переспрямувань Shopify:

  • Яких символів або комбінацій рядків система переспрямувань URL не підтримує?
  • Чи є ліміти на довжину рядка URL?
  • Чи є максимальна кількість записів для масових імпортів?
  • Чи підтримує система переспрямування із символами підстановки?
  • Чи є після імпорту автоматичне форматування або перетворення рядків, що змінює вихідні дані?

Для довідки, ось наш повний список URL-адрес, яким ми перевіряли ці різні умови. Тести проводилися на стандартному тарифі Shopify (не ShopifyPlus).


11 висновків на допомогу з переспрямуваннями в Shopify

Shopify не дружить з такими типами рядків URL

Список форматів рядків URL, які Shopify не зміг підтримати, короткий: є лише один тип рядка, який він не зміг прийняти. Рядки із символом крапки з комою після знака рівності, наприклад:

/page?param=;semicolon

Що примітно в цьому рядку: система Shopify перетворює спеціальний символ крапки з комою на URL-кодоване значення, і в таблиці переспрямувань це виглядає так:

/page?param=%3Bsemicolon

Коли ви вводите незакодований рядок URL в адресний рядок браузера, повертається помилка 404.

404 Цей синтаксис спричиняє помилку 404 на серверах Shopify. Незакодована крапка з комою після знака рівності:
  • /page?param=;semicolon
301 Тоді як цей варіант коректно переспрямовує на серверах Shopify. Закодована крапка з комою після знака рівності:
  • /page?param=%3Bsemicolon

Ця поведінка відрізняється від обробки інших спеціальних символів. Якщо в адресний рядок ввести рядок URL із незакодованими символами, наприклад із правою фігурною дужкою:

/page?param=}

Shopify автоматично закодує її, коли отримає запит, і помилки 404 не буде.

/page%7Drightbrace

Ще один примітний момент: інші варіації рядка URL із незакодованою крапкою з комою проходять валідацію в системі переспрямувань Shopify, наприклад:

301 Коректно переспрямовує на серверах Shopify. Незакодований символ крапки з комою в рядку, без знака рівності.
  • /page;semicolon

Дані свідчать, що помилка 404 виникає лише тоді, коли незакодована крапка з комою стоїть після знака рівності.

Повторно перевірено 27 липня 2026 року

404 підтверджено, але формулювання про те, що система не змогла прийняти запис, не відповідає дійсності. Shopify приймає запис і зберігає його з крапкою з комою у відсотковому кодуванні як %3b. Розбіжність виникає під час запиту, бо вхідна URL-адреса із сирою крапкою з комою ніколи не збігається із закодованим записом.

Запит на закодовану форму повертає 301 як звичайно. Там, де ви контролюєте вхідні посилання, відсоткове кодування крапки з комою розв'язує це. Там, де сира крапка з комою приходить із зовнішніх посилань, які ви не контролюєте, цей формат не можна переспрямувати надійно.

Shopify не підтримує переспрямування із символами підстановки

Переспрямування із символами підстановки досі в списку побажань багатьох користувачів Shopify. Форуми підтримки завалені запитами на цю функцію. Досі Shopify мовчить про те, де вона стояла б у дорожній карті продукту.

Наразі власникам сайтів, які планують перехід на Shopify, слід розуміти, що нативні Shopify та ShopifyPlus такої можливості не пропонують.

Що таке переспрямування із символами підстановки?

Переспрямування із символами підстановки це різновид переадресації URL, який дає змогу переспрямувати кілька URL-адрес, що відповідають певному шаблону, на одне призначення. Це особливо корисно під час міграції сайту, реорганізації контенту або керування великою кількістю схожих URL-адрес. Замість того щоб налаштовувати окреме переспрямування для кожної URL-адреси, ви використовуєте символ підстановки (зазвичай *), який позначає будь-яку послідовність символів.

Припустімо, ви перебудовуєте свій блог і переносите всі дописи з каталогу /blog/ у /articles/. Замість того щоб налаштовувати окреме переспрямування для кожного допису, можна використати переспрямування із символом підстановки:

From: /blog/*
To: /articles/*

This wildcard redirect will automatically map:

/blog/post1 to /articles/post1
/blog/post2 to /articles/post2
/blog/post3 to /articles/post3

Це спрощує процес переадресації й гарантує, що всі URL-адреси під /blog/ безшовно ведуть на нове місце під /articles/. Станом на дату цієї статті стандартні магазини Shopify та ShopifyPlus не мають такої можливості без підтримки застосунків.

Повторно перевірено 27 липня 2026 року

Підтримки символів підстановки досі немає, і повторна перевірка знайшла ту частину, яка коштує людям реального трафіку. Shopify приймає синтаксис із символом підстановки без жодних заперечень. Запис, створений як /old-blog/*, зберігається, з'являється в таблиці переспрямувань і не повідомляє про помилку. Зірочка зберігається як буквальний символ, тож єдина URL-адреса, з якою вона колись збігнеться, це та, що буквально містить зірочку.

Це гірше за пряму відмову, бо ніщо не сигналізує про збій, доки реальний трафік не почне отримувати 404. Розгорніть усі символи підстановки у своїй таблиці переспрямувань у явні шляхи, перш ніж імпортувати її.

Shopify робить усе можливе, щоб не створювати ланцюжки переспрямувань

У таблиці переспрямувань Shopify є непоганий запобіжник, який не дає створювати ланцюжки переспрямувань. Якщо ви спробуєте створити переспрямування на сторінку, яка вже є значенням у полі «Переспрямувати з», ви отримаєте помилку.

У цьому тесті записи URL, які ми намагалися створити, були такими, і це не було дозволено:

404
  • /BOTH redirects to /SHORT
  • /SHORT redirects to /homepage
Виправлено 27 липня 2026 року

Запобіжник існує, і він вужчий, ніж ми описали. Він перевіряє один напрямок, і під час повторної перевірки повз нього було створено живий ланцюжок із двох переходів.

Shopify відхиляє переспрямування, призначення якого вже є джерелом іншого переспрямування, з Target can't redirect to another redirect. Він відхиляє переспрямування, що вказує саме на себе, з Target can't be the same as path, і блокує прямі двосторонні петлі.

Зворотний напрямок він не перевіряє. Створіть /a на /b, поки за /b нічого немає, а потім створіть /b на /c, і обидва буде прийнято. Shopify ніколи не повертається до першого запису, і тепер у вас живий ланцюжок:

GET /a
  301 to /b
  301 to /
  final: 200, 2 hops

Самий лише порядок створення вирішує, чи утвориться ланцюжок. Масові імпорти застосовують рядки в порядку файлу, а таблиці міграції рідко відсортовані так, щоб цього уникнути, тож на запобіжник розраховувати не варто. Після будь-якого великого імпорту візьміть вибірку своїх переспрямувань і порахуйте переходи:

curl -sIL https://yourstore.com/old-path -o /dev/null -w "hops: %{num_redirects}\n"

Будь-що більше за 1 це ланцюжок.

Що таке ланцюжки переспрямувань?

Ланцюжки переспрямувань виникають, коли одна URL-адреса переспрямовує на іншу, яка своєю чергою переспрямовує ще на одну, утворюючи послідовність, або «ланцюжок», переспрямувань. Це може статися ненавмисно, коли з часом налаштовують кілька переспрямувань без належного контролю.

Ланцюжки переспрямувань проблемні, бо вони можуть уповільнювати завантаження сторінок, шкодити SEO і створювати поганий досвід для користувача. Кожне додаткове переспрямування додає затримку, бо браузер має пройти кожен крок ланцюжка, перш ніж дістатися кінцевого призначення.

Наприклад, якщо у вас налаштовані такі переспрямування:

/old-page redirects to /new-page
/new-page redirects to /latest-page

Коли користувач заходить на /old-page, його спершу переспрямовує на /new-page, а потім одразу знову на /latest-page, і в результаті утворюється ланцюжок переспрямувань.

Нові правила, яких варто дотримуватися, налаштовуючи переспрямування в Shopify

Наше найбільше відкриття в тестах: документація Shopify застаріла. Згідно з Shopify, якщо ви намагаєтеся переспрямувати щось, що починається з цих зарезервованих префіксів, ваші правила переспрямування не буде створено:

/apps
/application
/cart
/carts
/orders
/services
/products
/collections
/collections/all

Ми з’ясували, що це не так.

301 Ці значення «Переспрямувати з» БУДЕ дозволено, і вони працюватимуть коректно, хоча документація каже, що не мають:
  • /apps
  • /application
  • /carts
  • /orders
  • /services
  • /cart/people

Cart був винятком. Сам по собі він зарезервований, а працює, коли за ним іде підкаталог.

404 Ці значення «Переспрямувати з» буде створено в таблиці, але не виконано:
  • /cart
  • /products
  • /collections
  • /collections/all
301 Якщо за зарезервованими префіксами йдуть підкаталоги, Shopify дозволить їх і виконає, наприклад:
  • /cart/people
  • /carts/people
  • /products/people
  • /collections/people
404 Наші тестові дані показали, що повністю ігноруються лише ці префікси URL, якщо їх ввести самі по собі:
  • /cart
  • /products
  • /collections
  • /collections/all
Виправлено 27 липня 2026 року

Спостереження вище витримують. Пояснення ні, і справжнє правило охоплює значно більше, ніж список із чотирьох префіксів.

Реальний маршрут вітрини завжди перемагає переспрямування. Там, де за URL-адресою справді існує сторінка, Shopify віддає сторінку й ігнорує переспрямування. Запис прийнято, він лежить у вашій таблиці переспрямувань, і він нічого не робить. Ні помилки, ні попередження.

Змінна це не префікс. Змінна це існування маршруту. Переспрямування, поставлене на живу URL-адресу товару, було прийнято й мовчки проігноровано, тоді як ідентичний префікс із хендлом, якого не існує, повернув 301:

/products/ai-skillset-package-001  ->  200, the product page
/products/zz20260727               ->  301, the redirect fires

Тож сприймайте список вище як приклади, а не як правило. Воно охоплює також кожен живий товар, колекцію, сторінку та допис блогу у вашому магазині. Переспрямування на опублікованій URL-адресі товару інертне, доки цей товар не перестане розв'язуватися.

Для міграції це робить послідовність важливою. Спершу зніміть з публікації або видаліть старий ресурс, а потім підтвердіть, що переспрямування спрацьовує. Створіть його, поки сторінка ще жива, і виглядатиме так, ніби нічого не сталося.

/services це виняток, і тут усе працює навпаки. Переспрямування на сам /services повертає 301. Переспрямування на будь-що під ним, наприклад /services/consulting, повертає 404, хоча запис зберігається без жодних заперечень. Це перевіряли повторно чотири рази протягом приблизно 45 секунд, щоб виключити затримку поширення, і запис був присутній увесь час. Кожен інший префікс у цій групі працював із підкаталогами. Імовірна причина в тому, що Shopify маршрутизує /services/* усередині для проксі застосунків і системних ендпоінтів, тож ці запити ніколи не доходять до таблиці переспрямувань, хоча сам механізм ми безпосередньо не перевіряли.

Кожному, хто мігрує сайт із розділом /services/, слід знати, що жодне з тих переспрямувань не спрацює. Перенесіть їх на іншу структуру шляхів або обробіть на рівні DNS чи проксі.

Створювати й оновлювати переспрямування URL у Shopify легко

Створити нове переспрямування в Shopify просто. Користувачам дають два варіанти:

Додаючи URL-адреси в систему Shopify, користувачі можуть вводити відносні шляхи URL без домену верхнього рівня для джерела (звідки) і абсолютні або відносні шляхи URL для призначення (куди). Приклад:

/example_product.php
Створення окремих переспрямувань URL

Правила переспрямування, які має Shopify, не дозволять вам створити те саме переспрямування URL двічі, коли ви користуєтеся інтерфейсом окремого переспрямування.

Щойно URL-адреса потрапляє до списку в таблиці «Переспрямувати з», при спробі додати її знову ви отримаєте помилку.

Якщо ви хочете оновити окремий запис URL, вам потрібно знайти його в таблиці переспрямувань або скористатися методом масового імпорту. Якщо URL-адреса, яка вже існує, є у файлі масового імпорту, поле «Переспрямувати на» цього запису буде оновлено значенням із файлу CSV.

Наша порада: завжди імпортуйте переспрямування керованими, ефективними партіями. Наприклад, якщо у вас 10 000 переспрямувань URL, імпортуйте по 1 000 за раз і перевіряйте їх, якщо маєте час. Краще ловити помилки в менших наборах даних, ніж полювати на них у більших.

Будьте уважні з масовими переспрямуваннями URL у Shopify

Щоб створити масові переспрямування, заповніть файл CSV заголовками, яких вимагає Shopify, створіть відповідності 1:1 і переконайтеся, що всі URL-адреси відформатовані як відносні шляхи. Якщо ви створите файл з абсолютними шляхами в полі «Переспрямувати з» або «Переспрямувати на», Shopify візьме справу у власні руки. Ось кілька сценаріїв:

404 Shopify прибере те, що визначить як «http-протокол+домен-верхнього-рівня», і створить бажаний відносний шлях:
  • https://www.wislr.com/path/to/resource%20with
301
  • /path/to/resource%20with
404 Шлях URL не несе протоколу HTTP, але містить домен верхнього рівня або субдомен, тож Shopify додає префікс «/», щоб створити бажаний відносний шлях:
  • www.wislr.com/unicode/test?value=%E2%9C%93%20
  • co.wislr.com/mix/of%20encoded
301
  • /www.wislr.com/unicode/test?value=%E2%9C%93%20
  • /co.wislr.com/mix/of%20encoded
404 Шлях URL не несе ані протоколу HTTP, ані субдомену, але містить домен верхнього рівня, тож Shopify додає префікс «/», щоб створити бажаний відносний шлях:
  • wislr.com/nested/directory/structure?param1=value1
301
  • /wislr.com/nested/directory/structure?param1=value1

Висновок: двічі перевірте свій файл імпорту, перш ніж використовувати його. Інакше ви створите правила переспрямування URL, які працюватимуть не так, як вам потрібно.

Якщо запис переспрямування вже є в таблиці й ті самі значення включені у файл імпорту, Shopify оновить запис найсвіжішими даними з файлу імпорту. На нашу думку, це надзвичайно корисно, якщо ви хочете, щоб цей запис оновився. Тим більше причин двічі перевірити дані.

Наша порада: завжди імпортуйте переспрямування керованими, ефективними партіями. Наприклад, якщо у вас 10 000 переспрямувань URL, імпортуйте по 1 000 за раз і перевіряйте їх, якщо маєте час. Краще ловити помилки в менших наборах даних, ніж полювати на них у більших.

Повторно перевірено 27 липня 2026 року

Shopify не запроваджує стелі в 1 000 рядків на файл. Один імпорт на 1 051 рядок пройшов без жодної помилки за 48 секунд, що дає приблизно 1 300 рядків за хвилину.

Партії приблизно по 1 000 рядків усе одно розумні, але з іншої причини, ніж жорсткий ліміт. Менші файли ламаються зрозуміліше. Якщо імпорт на 20 000 рядків піде не так, ви матимете значно менше уявлення про те, які рядки це спричинили, ніж якби запустили двадцять файлів і стежили за лічильниками.

Читайте createdCount, updatedCount і failedCount після кожного імпорту. failedCount більший за нуль це єдиний сигнал, який ви отримаєте про те, що рядки було відкинуто.

Описану вище поведінку з дублікатами підтверджено точно так, як написано. Шлях, який уже є в таблиці переспрямувань, отримує перезаписане призначення і потрапляє в updatedCount, зберігаючи свій початковий ідентифікатор запису. Це робить імпорт CSV безпечним для повторного запуску, що справді корисно посеред міграції. Це також означає, що застаріла таблиця тихо перезапише виправлення, які ви зробили вручну після минулого імпорту.

Працюйте з WISLR

Доручіть нам побудувати карту переспрямувань.

Ми складали карти переспрямувань у понад 100 міграціях, зокрема в переїзді на 27 000 URL-адрес на Shopify Plus. Ми будуємо файл і перевіряємо його на відповідність кожному ліміту з цієї сторінки, перш ніж він піде в імпорт. Після перемикання ми самі читаємо живі відповіді, а не довіряємо тому, що каже таблиця переспрямувань.

Подивитися міграцію на 27 000 URL-адрес →

Ліміт Shopify на записи переспрямувань URL

Усе хороше має свою межу, і правила переспрямувань Shopify не виняток. Для переспрямувань URL є два пороги.

Тарифи Shopify (не Plus):

Максимум 100 000 переспрямувань URL

Тарифи ShopifyPlus:

Максимум 20 000 000 переспрямувань

Ми не тестували ці ліміти, це було б божевіллям! Це чинні задокументовані характеристики платформи. Тримайте їх на думці, плануючи свої переспрямування, і надавайте пріоритет URL-адресам, найважливішим за трафіком і доходом. Наскільки нам відомо, Shopify не підвищує ці ліміти, попри постійні благання з форумів підтримки.

Ліміт Shopify на кількість символів в URL-адресах

Ось тут із системою переспрямувань Shopify стає гостро. Офіційні настанови Shopify не називають суворих лімітів на символи.

Щоб перевірити ліміти символів URL для переспрямування, ми спершу побудували й спробували імпортувати дуже довгі рядки. Ми почали з URL-адреси завдовжки 2 000 символів, оскільки браузери можуть обробляти запити URI до 2 083 символів. Ось вона, красуня, у всій красі:

/2000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBcccccccccccccccccccccccccccccccccccccccccccccccccccDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

Нашим початковим методом було імпортувати URL-адресу на 2 000 символів через шаблон масових переспрямувань, і саме тоді спрацювала сигналізація Shopify. Поріг, який ми офіційно виявили, це ліміт у 1 024 символи для рядків переспрямування URL, включно з префіксом у вигляді скісної риски «/».

  • Passed URL-адреса на 300 символів
  • Passed URL-адреса на 600 символів
  • Passed URL-адреса на 1 000 символів
  • Failed URL-адреса на 2 000 символів

Кілька важливих і недокументованих правил переспрямування, які варто розуміти щодо Shopify

Shopify нормалізує літери у ваших рядках URL. Це означає, що незалежно від того, вводите ви велику чи малу літеру, він обслуговуватиме запити URL для цих різних варіантів однаково. Наведені нижче URL-адреси всі вестимуть на одну сторінку, навіть якщо існують окремі записи:

/CASE/TEST.html
/case/test.html
/Case/Test.html

Рядок у нижньому регістрі матиме пріоритет над іншими:

/case/test.html

У наших тестах, хоча існують два унікальні записи «Переспрямувати з» із різними значеннями «Переспрямувати на», для обох записів завжди обслуговуватиметься сторінка /about.html:

#1
/Case/Test.html [redirect to] /homepage

#2
/case/test.html [redirect to] /about.html

Цікаво й потенційно прикро, що Shopify дозволяє вам ввести всі ці унікальні значення в таблицю переспрямувань і обслуговує лише одне з них. Радимо уважно переглянути свої дані, якщо ви відчуваєте, що ваша таксономія URL може підпадати під ці шаблони, перш ніж імпортувати їх у Shopify.

Ви можете використовувати абсолютні шляхи URL для переспрямувань у Shopify

Абсолютні шляхи URL для ваших переспрямувань прийнятні, як показав наш тест, якщо вони стоять у полі «Переспрямувати на». Вони можуть вести на будь-яку URL-адресу, яку забажаєте. Ось приклад, де шлях URL при запиті переспрямовує на профіль LinkedIn:

[Redirect from]
/Case/Test.html

[Redirect to]
https://www.linkedin.com/wislr

Крім того, у полі «Переспрямувати на» Shopify не прибирає домени верхнього рівня, навіть якщо це ваш власний магазин Shopify.

Параметризовані URL-адреси

У наших тестах Shopify зберігав URL-адреси з параметрами, з деякими винятками. Якщо у вас є URL-адреси, проіндексовані з багатьма унікальними параметризованими рядками, то ці унікальні рядки можна додати в таблиці переспрямувань Shopify і спрямувати на унікальні призначення. Ми зробили цей тест із поширеною таксономією для таких URL-адрес, з параметрами UTM. Наприклад:

Цей рядок URL стоїть у полі «Переспрямувати з» таблиці переспрямувань і вів до передбаченого призначення:

/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google&utm_term=redirects

Ми змінили рядок URL і прибрали останній параметр «&utm_term=redirects», що дало 404:

/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google

Цю поведінку відтворено в інших тестах з іншими параметрами як значеннями, що підтвердило: Shopify трактує параметризовані URL-адреси як буквальні рядки. Він не скорочує URL-адресу до базової, якщо ви прибираєте параметр з URL-адреси переспрямування, доки ця URL-адреса не існує на сайті Shopify.

Щоб додатково це підтвердити, ми спрямували URL-адресу саму на себе, чого Shopify за замовчуванням не дозволяє. Ви отримали б таке повідомлення:

Цей запис дозволено, коли параметри стоять у полі «Переспрямувати з». Він не становить петлі переспрямування, але, судячи з поведінки в браузері, наш тест показав, що Shopify ігнорує цей запис. Коли запитують URL-адресу з поля «Переспрямувати з», Shopify обслуговує повний параметризований рядок URL, а не кореневу сторінку, як очікується за таблицею:

Цей запис дозволено, але Shopify не додасть параметри до сторінки, яка завантажується, як передбачає правило. Завантажиться лише коренева URL-адреса. Параметри ніколи не додаються до URL-адреси, яка завантажується:

Наше останнє спостереження про URL-адреси з параметрами: у деяких випадках Shopify переписує дані, які ви йому даєте. Так, Shopify переписує дані URL, які ви йому даєте, для деяких параметрів.

Ось приклади, де наші тести знайшли цю закономірність.

Початкові дані переспрямування, які прийняв Shopify:

/test?name=John&Doe

Shopify переписав рядок так, щоб «Doe» став першим атрибутом параметра в рядку:

/test?Doe&name=John

Початкові дані переспрямування, які прийняв Shopify:

/user?name=John&age=30&active=true

Shopify переписав рядок так, щоб параметри стояли в новому порядку:

/user?active=true&age=30&name=John

Тести, які ми провели, свідчать, що Shopify намагається розставити параметри в алфавітному порядку. Ми задумалися, чи це не помилка, адже ми встановили, що Shopify трактує параметризовані URL-адреси як буквальні рядки, тож навіщо підривати це правило переписуванням порядку параметрів. Наразі ви ніколи не отримаєте рядків URL із кількома значеннями параметрів, які збережуть свою структуру. Це може мати великі наслідки для деяких систем керування контентом.

Повторно перевірено 27 липня 2026 року

Три виправлення до цього розділу.

Параметри вхідного запиту переносяться до призначення. Початкове формулювання каже, що вони ніколи не додаються до URL-адреси, яка завантажується, і це правда лише для параметризованих шляхів джерела, описаних вище. Там, де шлях джерела переспрямування не несе власних параметрів, до нього дописується все, що приходить у запиті:

GET /old-page              ->  301 to /new-page
GET /old-page?utm_source=x ->  301 to /new-page?utm_source=x

Переспрямування не приберуть параметри за вас. Прибирання має відбуватися на рівні над Shopify.

Переписування не лише переставляє, а й переводить у нижній регістр. Розібраний вище приклад зберігає великі літери, а Shopify цього не робить. Шлях, надісланий як /test?name=John&Doe, зберігається як /test?doe&name=john. Значення переводяться в нижній регістр разом із ключами, тож таблиця переспрямувань у порівнянні з вихідною таблицею матиме вигляд, ніби імпорт зіпсував дані.

Зіставлення це не буквальне порівняння рядків. Shopify нормалізує і збережений запис, і вхідний запит, перш ніж порівняти їх, тож регістр і порядок параметрів значення не мають. Проти запису, збереженого як /page?doe&name=john, усі варіанти ?name=John&Doe, ?Doe&name=John і ?name=john&doe повертають 301.

Що справді має значення, так це те, які параметри присутні. Кожен параметр у збереженому шляху має бути в запиті. Приберіть один, і ви отримаєте 404, а не часткове зіставлення, тож початкова теза лишається в силі: параметризоване переспрямування спрацьовує лише для точно такої комбінації параметрів.

UX переспрямувань URL у Shopify потребує оновлення

Під час нашого інтенсивного використання інструмента переспрямувань Shopify ми виявили, що одні елементи цінуємо, а інших бракує.

Ми цінуємо ці функції:

  • Кнопки та функціональність масового імпорту переспрямувань
  • Фільтрування та швидкий пошук за таксономією URL
  • Експорт URL-адрес
  • Легкість створення однієї URL-адреси

Ми виявили, що інструменту бракує цих даних і функціональності:

  • Загальної кількості імпортованих URL-адрес
  • Простішого способу скопіювати й вставити в систему більш ніж одну URL-адресу. Якщо ви додаєте більш ніж одну URL-адресу за раз, вам доводиться користуватися документом імпорту. Один сценарій, де копіювання й вставляння було б корисним, це коли набір URL-адрес має вести на одне й те саме призначення.

Імпортувати швидко, скасувати імпорт ні

Додано з повторної перевірки 27 липня 2026 року.

Створювати переспрямування масово швидко. Видаляти їх масово ні, і розрив достатньо великий, щоб змінити те, як ви плануєте імпорт.

Операція Метод Виміряно
Створити 1 051 переспрямування Імпорт CSV, один файл 48 секунд
Видалити 1 051 переспрямування urlRedirectDelete, по одному 226 секунд

Швидкі мутації масового видалення закриті. urlRedirectBulkDeleteBySearch, urlRedirectBulkDeleteByIds і urlRedirectBulkDeleteAll усі вимагають області write_online_store_navigation та активної сесії користувача. Застосунок, який автентифікується через client credentials, а саме так працює більшість міграційних скриптів, не може їх викликати, і йому лишається видаляти по одному запису.

Плануйте свої імпорти так, ніби їх важко відкотити, бо так і є. Спершу перевірте файл на девелоперському магазині або імпортуйте траншами, які ви готові розібрати вручну. Не заливайте файл на 50 000 рядків, який ви не тестували, вважаючи, що зможете швидко його відкотити.

Імпорт CSV і Admin API по-різному поводяться з дублікатами

Додано з повторної перевірки 27 липня 2026 року.

Цей посібник написано навколо процесу з CSV, де дубльований шлях оновлює наявний запис. API робить навпаки:

create /existing-path -> /pages/about
(where /existing-path already redirects to /)

REJECTED: "Path has already been taken"

Кожен, хто переносить процес із CSV на Admin API, має запитати наявний запис і викликати urlRedirectUpdate або видалити й створити заново. Пряме перенесення логіки імпорту зазнає невдачі на кожному шляху, який уже існує.

Як перевірити ваші переспрямування Shopify після запуску

Усе вище описує те, що Shopify прийме. Ніщо з цього не каже вам, чи справді працюють імпортовані переспрямування на живому магазині, а це інше питання. Переспрямування може чисто імпортуватися, з’явитися в адмінці й усе одно не робити того, що ви очікували, щойно на шляху опиниться тема, застосунок або проксі.

Тестуйте ззовні магазину, а не клікаючи в браузері, бо браузер приховує саме те, що вам потрібно побачити: код статусу. Запитайте стару URL-адресу і прочитайте заголовки відповіді.

curl -sIL https://yourstore.example/old-product-url

Прочитайте у виводі три речі:

  • Код статусу на першому переході. Вам потрібен 301. 302 тимчасовий і передає вагу інакше, а це важливо, коли вся суть у постійному переїзді.
  • Кількість переходів. Кожен рядок HTTP/ у виводі це один перехід. Два або більше означає, що ви побудували ланцюжок, і виправлення полягає в тому, щоб перенаправити початкове джерело на кінцеве призначення, а не лишати проміжний крок на місці.
  • Кінцевий статус. Останній рядок має бути 200. Переспрямування, яке закінчується на 404, гірше за відсутність переспрямування взагалі, бо у вашій таблиці воно виглядає опрацьованим.

Далі перевірте форми, які легко забути. Проведіть ту саму перевірку на URL-адресі з параметром відстеження, щоб підтвердити, що рядок запиту доживає до призначення, на апекс-домені так само як на www, і через звичайний http, а не лише https. Ми перевірили саме це на живому магазині, і параметр дійшов до цілі неушкодженим, але суть у тому, щоб перевірити це на своєму магазині, а не довіряти загальній відповіді, бо тема або застосунок можуть змінити результат.

Одна поведінка, про яку варто знати, перш ніж панікувати: після того як ви зміните або видалите переспрямування, вузол edge Shopify може ще близько тридцяти секунд віддавати стару відповідь, тоді як варіант тієї самої URL-адреси з обходом кешу вже повертає нову. Дайте йому хвилину і перевірте ще раз із дописаним унікальним рядком запиту, перш ніж робити висновок, що переспрямування не спрацювало.

Щодо повної послідовності навколо міграції, а не одного переспрямування, пройдіться чеклістом міграції сайту, який охоплює складання карти, день запуску й спостереження після запуску, у які це вписується.


Підсумок

Система, яку Shopify має для керування 301 переспрямуваннями, добра для більшості бізнесів, але ще не корпоративного рівня. Ми сподіваємося, що з часом вона розвинеться й включить переспрямування із символами підстановки та більше записів переспрямувань для стандартних і Plus тарифів. Можливість користуватися їхньою системою переспрямувань і різноманіття форматів URL, які вона підтримує, змушують нас поставити їм високу оцінку корисності.

Якщо ви беретеся за проєкт зі складними схемами 301 переспрямувань і вам потрібна команда, яка живе саме такою роботою, зв’яжіться з нами.


Часті запитання

Кому має допомогти база знань WISLR про переспрямування URL у Shopify?

Наша база знань передусім допомагає брендам і агенціям, які проводять міграцію сайту на Shopify. Вона особливо цінна для невеликих команд, яким потрібно, щоб кожна година рахувалася, і допомагає клієнтам ефективно зіставити та виконати до 100 000 переспрямувань URL.

Чи є у Shopify офіційний документ підтримки щодо переспрямувань URL?

Так, Shopify підтримує офіційний довідковий документ про переспрямування URL на help.shopify.com. Він дає загальні настанови щодо додавання окремих і масових 301 переспрямувань, а наш посібник доповнює його докладними характеристиками типів URL і обмежень платформи.

Які рядки URL Shopify не підтримує?

У Shopify є лише один непідтримуваний формат рядка URL: рядки з незакодованим символом крапки з комою після знака рівності (наприклад, /page?param=;semicolon). Усі інші формати URL підтримуються, включно із закодованими крапками з комою та крапками з комою в інших позиціях.

Чи підтримує Shopify переспрямування із символами підстановки або регулярними виразами?

Ні, Shopify наразі не підтримує ані переспрямувань із символами підстановки, ані шаблонів регулярних виразів у своїй нативній системі переспрямувань. Це обмеження діє і для стандартних магазинів Shopify, і для магазинів Shopify Plus.

Що таке переспрямування із символами підстановки?

Переспрямування із символами підстановки дають змогу переспрямувати кілька URL-адрес, які відповідають певному шаблону, на одне призначення. Наприклад, переспрямувати всі URL-адреси під /blog/* на /articles/*. Цю функцію часто просять, але в нативній функціональності Shopify її наразі немає.

Чи може Shopify уникати створення ланцюжків переспрямувань?

Так, Shopify має вбудовані запобіжники, які не дають утворитися ланцюжкам переспрямувань. Система не дозволить створити переспрямування на URL-адресу, яку вже переспрямовано кудись інде.

Що таке ланцюжки переспрямувань?

Ланцюжки переспрямувань виникають, коли URL-адреси переспрямовують через кілька кроків, перш ніж дістатися кінцевого призначення (наприклад, A→B→C). Такі ланцюжки можуть уповільнювати завантаження сторінок і шкодити результатам SEO. Система Shopify за своєю будовою допомагає їм запобігати.

Чи легко створювати та оновлювати переспрямування URL у Shopify?

Так, Shopify дає два прості способи: створення окремого переспрямування URL через інтерфейс і масовий імпорт через файл CSV. Обидва способи підтримують відносні та абсолютні шляхи URL.

Як створити масові переспрямування URL у Shopify?

Масові переспрямування можна створити через інструмент імпорту CSV у Shopify. Ми радимо імпортувати партіями по 1 000 рядків, бо так легше перевіряти помилки й керувати процесом. Шаблон для імпорту доступний тут.

Чи є у Shopify максимальний ліміт на записи переспрямувань URL?

Так. Стандартні тарифи Shopify обмежені 100 000 переспрямувань URL, тоді як магазини Shopify Plus можуть тримати до 20 000 000 переспрямувань. Ці ліміти зафіксовані й не підлягають підвищенню.

Чи має Shopify ліміти на кількість символів у переспрямуванні?

Так, Shopify встановлює ліміт у 1 024 символи для рядків переспрямування URL, включно з префіксом у вигляді скісної риски («/»). Довші URL-адреси система не прийме.

Чи існує інструмент для перевірки URL-адрес на сумісність із Shopify?

Офіційного інструмента перевірки Shopify не надає, але наше ґрунтовне тестування показало, що 99 % стандартних форматів URL підтримуються. Головне, про що варто пам’ятати, це ліміт у 1 024 символи та уникання незакодованих крапок з комою після знака рівності.