WordPress URL shortener перетворює довгі permalinks, які генерує ваша CMS, на короткі, брендовані, відстежувані посилання для поширення за межами сайту. WordPress чудово справляється з публікацією. Але він не створений для того, щоб розповісти вам, скільки людей клікнули на посилання, яке ви вставили в розсилку, твіт або друкований флаєр. Саме ця прогалина і спонукає шукати сервіс скорочення.
Коротка версія перед деталями. Ви скорочуєте та відстежуєте посилання з WordPress з чотирьох причин: брендовані публікації в соцмережах, що відповідають вашому сайту замість загального домену; відстежувані вихідні та партнерські посилання, щоб знати, що справді клікають; QR-коди для друку та пакування, що вказують на посилання, яке можна змінити пізніше; і аналітика кліків, якої CMS просто не дає. WordPress знає, що пост опубліковано. Він не знає, що посилання в ньому отримало 4000 кліків з Німеччини у вівторок.
Є чотири способи підключення, і вони обмінюються зусиллями на контроль. Плагін - найменше роботи, якщо є сумісний. REST API Elido - найгнучкіший і той, на який більшість команд переходить. Zapier знаходиться посередині як no-code міст. І завжди можна вставляти посилання вручну. Решта цього поста описує кожен варіант, а потім охоплює типові помилки: красиві permalinks проти коротких посилань, заміна ненадійних плагінів перенаправлення та де перенаправлення має відбуватися, щоб ніколи не сповільнювати сайт.
Що насправді робить WordPress URL shortener#
Відкинемо маркетинг: сервіс скорочення виконує дві роботи. Він зіставляє короткий слаг з довгим призначенням і рахує кожен раз, коли хтось переходить за цим слагом. WordPress не робить ні те, ні інше для посилань, якими ви ділитесь за межами сайту.
Ваші пости вже мають URL. WordPress будує permalink для кожного - зазвичай читабельний слаг на вашому власному домені. Цей permalink призначений для людей, що читають ваш сайт. Він не короткий, не брендований для поширення на платформі з лімітом символів, і WordPress не веде записів про те, хто клікнув його після того, як він покинув вашу сторінку. Коротке посилання - це окремий об'єкт: компактний URL на домені перенаправлення, опціонально вашому власному брендованому домені, що перенаправляє до призначення та фіксує клік.
Ця відмінність важлива, бо їх легко переплутати. Красивий permalink і коротке посилання схожі на вигляд і обидва кудись ведуть. Але лише одне з них призначене для поширення та вимірювання. Ми повернемося до цього.
Шлях перший: плагін WordPress#
Шлях через плагін - той, який більшість людей шукає першим, і не дарма. Плагін встановлюється з каталогу плагінів WordPress, ви підключаєте його за допомогою API-токена, і короткі посилання починають з'являтися без жодного рядка PHP.
Хочу бути чесним щодо стану справ, бо наявність плагінів змінюється, і краще знати форму шляху, ніж довіряти застарілому скріншоту налаштувань. Загальний патерн, якому слідує будь-який плагін для скорочення, однаковий: ви встановлюєте його, вставляєте API-токен вашого інструменту посилань та плагін викликає API сервісу скорочення від вашого імені під час публікації або коли ви натискаєте кнопку в редакторі. Деякі плагіни автоматично створюють коротке посилання при публікації та записують його в кастомне поле. Інші додають метабокс, де ви генеруєте посилання за запитом. Хороші дають змогу вибрати брендований домен та додати теги, щоб посилання потрапило в правильне місце в аналітиці.
Якщо підтримуваний плагін Elido для WordPress є в списку - встановлюйте з дашборду та підключайте за допомогою токена з /settings/api. Якщо ви не можете підтвердити наявність актуального підтримуваного плагіна для вашого сервісу скорочення - не форсуйте це. Напів-покинутий плагін, який ламається при наступному оновленні WordPress, гірший за шлях через API, який ви контролюєте. Коли плагін підходить - це найменш трудомісткий варіант. Коли не підходить - переходьте до API.
Одне, що варто перевірити перед довірою будь-якому плагіну: де відбувається перенаправлення. Плагін, що лише реєструє посилання у зовнішньому сервісі скорочення, - нормально. Плагін, що ще й встановлює локальний обробник перенаправлення, щоб посилання резолвлялись через ваш власний сервер WordPress, - це повільний патерн, який ми розглянемо пізніше. Ви хочете, щоб посилання було створено у WordPress, але резолвлялося на edge, а не через PHP.
Шлях другий: REST API Elido#
Це шлях з найбільшою кількістю рухомих частин і найповнішим контролем - і до нього переходять команди, яким потрібне надійне автоматичне створення коротких посилань при кожній публікації.
WordPress запускає дію при зміні статусу поста. Відповідна - transition_post_status, що виконується при кожному переміщенні поста між станами, включно з переходом до publish. Ви вішаєте на неї обробник, викликаєте API Elido для створення посилання для permalink поста та зберігаєте повернутий короткий URL у метаполях поста, щоб відобразити його в шаблоні, редакторі або віджеті поширення. Довідник плагінів WordPress документує систему хуків, а довідник REST API WordPress охоплює мета-ендпоінти, якщо ви хочете відобразити коротке посилання в блочному редакторі.
Бік Elido - три рядки. Ось обробник публікації на PHP, що створює брендоване коротке посилання при першій публікації поста та пропускає кроки при подальших редагуваннях:
add_action( 'transition_post_status', 'elido_shorten_on_publish', 10, 3 );
function elido_shorten_on_publish( $new_status, $old_status, $post ) {
if ( $new_status !== 'publish' || $old_status === 'publish' ) {
return; // only on the first publish, not on every edit
}
if ( get_post_meta( $post->ID, '_elido_short_url', true ) ) {
return; // already has one
}
$res = wp_remote_post( 'https://api.elido.app/v1/links', array(
'headers' => array(
'Authorization' => 'Bearer ' . ELIDO_TOKEN,
'Content-Type' => 'application/json',
'Idempotency-Key' => 'wp-post-' . $post->ID,
),
'body' => wp_json_encode( array(
'destination_url' => get_permalink( $post ),
'tags' => array( 'wordpress', 'auto-publish' ),
) ),
) );
if ( is_wp_error( $res ) ) {
return; // log and move on; publish should never fail on this
}
$link = json_decode( wp_remote_retrieve_body( $res ), true );
if ( ! empty( $link['short_url'] ) ) {
update_post_meta( $post->ID, '_elido_short_url', $link['short_url'] );
}
}
Два деталі тут заслуговують уваги. Idempotency-Key виведено з ID поста, тому якщо хук публікації спрацьовує двічі - що трапляється, - ви отримуєте те саме посилання назад, а не дублікат. А обробник поглинає власні помилки. Створення короткого посилання ніколи не повинне блокувати публікацію; якщо виклик API не вдається, пост все одно виходить, і ви створюєте посилання пізніше. Швидкий старт у API та SDK детально описує модель ідемпотентності та обробку помилок на п'яти мовах, а сторінка функцій API та SDK перераховує всю поверхню ендпоінтів.
Якщо ви хочете, щоб посилання знаходилося на вашому власному домені, а не на загальному домені сервісу скорочення, - передайте domain_id і спочатку налаштуйте домен. Посібник з кастомних доменів охоплює DNS-запис та автоматичний TLS, а функція кастомних доменів пояснює, чому брендоване посилання на вашому власному домені краще для довіри та клікабельності.
Шлях третій: Zapier - no-code міст#
Між плагіном та обробником коду знаходиться Zapier. Це правильна відповідь, коли ви хочете автоматизацію, не хочете писати PHP і не можете знайти плагін, якому довіряєте.
Підключення - двокроковий Zap. Тригер: «Новий пост опубліковано в WordPress». Дія: «Створити посилання в Elido». Ви зіставляєте permalink поста з полем призначення, опціонально передаєте назву поста як тег та вмикаєте. Відтоді кожен опублікований пост автоматично створює коротке посилання без того, щоб хтось торкався редактора. Ви можете додати третій крок для запису короткого URL в Google Sheet, публікації в Slack або відправки до планувальника соціальних мереж.
Zapier коштує вам плату за завдання та кілька секунд затримки, і ви не отримуєте детального контролю над ідемпотентністю та обробкою помилок, як через API. Натомість ви отримуєте робочу інтеграцію за десять хвилин без деплою. Для більшості видавничих команд це правильний обмін, поки обсяг або точність не штовхнуть їх до API. Детальний посібник з автоматизації Zapier охоплює багатокрокові Zap.
Шлях четвертий: вручну#
Не відкидайте ручний шлях. Якщо ви публікуєте кілька постів на тиждень і ділитесь кожним навмисно - створення короткого посилання вручну в дашборді Elido та його вставлення в пост або соціальний інструмент є цілком розумним. Ви отримуєте брендовані посилання та повне відстеження кліків без жодної інтеграції для підтримки.
Ручний шлях перестає масштабуватися, коли ви публікуєте часто, коли кілька людей поширюють ті самі посилання і потрібна послідовність, або коли ви хочете мати посилання в тексті поста до натискання «Опублікувати». Саме в цей момент варто автоматизувати. До тих пір дашборд плюс копіювання - це повноцінне налаштування, а не тимчасове рішення.
Красиві permalinks - це не короткі посилання#
Це постійно плутає людей, тому скажемо прямо. Permalinks WordPress та короткі посилання вирішують різні проблеми, і зазвичай вам потрібні обидва.
Красивий permalink - це людинозрозумілий URL поста на вашому власному домені. Він допомагає читачам і пошуковим системам розуміти сторінку. Він не компактний, не призначений для поширення на платформі, де рахуються символи, і WordPress не відстежує кліки на нього після того, як посилання покидає ваш сайт. У WordPress також є стара форма ?p=123 та хук wp_shortlink, але це просто псевдонім на вашому власному домені. Він не брендований і не відстежується.
Коротке посилання - це навмисний, призначений для поширення, вимірюваний об'єкт. Воно знаходиться на домені перенаправлення, може нести ваш бренд, може додавати UTM-параметри під час перенаправлення, може закінчуватися та фіксує кожен клік в аналітиці, яку ви можете запитувати. Коли ви ділитесь постом у розсилці або в соцмережах - вам потрібне коротке посилання, а не сирий permalink, бо лише коротке посилання розповідає, що сталося після кліку. Пост про брендовані короткі посилання охоплює налаштування домену бренду, а сервіси скорочення URL для видавців детально розглядає видавничий процес зокрема.
Заміна ненадійних плагінів перенаправлення WordPress#
Багато WordPress-сайтів накопичують плагіни перенаправлення. Деякі - для законної SEO-гігієни, виправлення 301 після зміни permalink. Інші розтягуються до завдання, з яким вони погано справляються: управління вихідними та партнерськими посиланнями, якими ви ділитесь і хочете відстежувати.
Цей другий варіант використання - де вони провалюються. Плагін перенаправлення, що резолвить «красиве» вихідне посилання, виконує перенаправлення через PHP та вашу базу даних при кожному кліку. При будь-якому реальному трафіку це додає навантаження на хост, що обслуговує ваш реальний контент, а дані кліків, якщо й є, - мізерні. Патерн виглядає акуратно в дашборді та погано поводиться під навантаженням.
Чисте розмежування: залишіть плагіни перенаправлення для внутрішніх 301-х на ваших власних URL, де вони й мають бути, і перенесіть вихідні та партнерські посилання, якими ділитесь, до сервісу скорочення, що резолвить поза сайтом і відстежує належним чином. Ви перестаєте платити PHP-податок за перенаправлення посилань, які ніколи не були завданням вашого сайту обслуговувати, і отримуєте реальну аналітику для тих, що мають значення.
Виконуйте перенаправлення на edge, а не через PHP#
Це ключовий момент з продуктивності, що вирішує, чи допоможе сервіс скорочення, чи завадить - і саме тому архітектура важливіша за плагін.
Коли коротке посилання резолвується через WordPress, клік потрапляє до вашого PHP-стеку та бази даних до того, як хтось досягне призначення. При малому трафіку це нормально, при великому - болісно, і це пов'язує швидкість ваших спільних посилань із навантаженням на ваш контентний сайт. Коли коротке посилання резолвується на edge, клік взагалі не торкається WordPress. Він потрапляє на точку присутності перенаправлення поблизу користувача, отримує відповідь з кешу та перенаправляється далі.
Elido резолвить перенаправлення на багаторегіональних точках присутності з p95 менш ніж 15ms при попаданні в кеш. Ваш хост WordPress не знаходиться в цьому шляху. Незалежно від того, чи ви використали плагін, API, Zapier або власні руки для створення посилання, сам клік обслуговується поза сайтом, тому вірусний пост не потягне вашу CMS за собою. Пост про p95 перенаправлення менш ніж 15ms пояснює, як утримується цей бюджет затримки, а сторінка функцій аналітики охоплює, що фіксується при кожному такому кліку.
Весь аргумент на користь резолвування поза сайтом в одному реченні: посилання, на яке клікають ваші читачі, ніколи не повинне ділити сервер зі сторінкою, яку ви хочете, щоб вони прочитали.
Вибір шляху#
Якщо ви хочете мінімум роботи і є підтримуваний плагін для вашого сервісу скорочення - використовуйте його. Якщо хочете автоматизацію без коду - Zapier. Якщо хочете повний контроль і надійне створення посилань при кожній публікації - використовуйте API та хук transition_post_status. Якщо публікуєте рідко і ділитесь навмисно - робіть вручну. Більшість команд починають вручну або через Zapier і переходять до API, коли короткі посилання стають частиною процесу кожної публікації.
Який би шлях ви не обрали, отримайте дві речі правильно: створіть посилання на власному брендованому домені, щоб воно відповідало сайту, з якого прийшло, і переконайтеся, що перенаправлення відбувається на edge, а не через PHP WordPress. Брендовані посилання потрібні маркетинговому відділу, edge-резолвінг - інженерному, і вони не суперечать одне одному. Ви можете мати обидва. Дивіться сторінку рішень для маркетологів для боку відстеження кампаній і сторінку цін для того, що включає кожен тариф.