Bitly からの移行には確立されたプレイブックがあります:API エクスポート、CSV、バルクインポート、DNS カットオーバー。Bitly 移行ガイドはすべてのステップを説明しています。TinyURL は異なります - より難しいのではなく、計画方法を変える形で異なります。最も重要な区別は、TinyURL Pro アカウントを持っているかどうかです。その単一の変数が、移行をほぼ無関係な2つの手続きに分岐させます。
この投稿では両方のパスを説明し、移行で残らないものについて正直に話します。
TL;DR#
- TinyURL Pro アカウントを持っている場合、TinyURL API でリンクを列挙してエクスポートできます。CSV にはスラッグ、宛先、30日間のクリック数が含まれます。Elido にきれいにインポートできます。
- アカウントを持っていない場合 - 何年もかけて
tinyurl.com/<slug>リンクを公開してきただけ - エクスポートはありません。自分の公開サーフェスをスクレイピングしてマップを再構築します。 - どちらの場合も、Elido ワークスペースで元の
tinyurl.comスラッグを保存することはできません。TinyURL がそのドメインを所有しています。自分のブランドショートドメインで新しいスラッグを生成します。 - 現実的な注記:ほとんどの TinyURL ユーザーは無料プランを利用しています。彼らの場合、移行はデータポータビリティよりも、TinyURL リンクが登場するすべての場所を更新することです。
TinyURL の移行が Bitly と異なる点#
主要な構造的な違いはドメインです。有料プランの Bitly ユーザーはしばしばカスタムブランドドメイン - links.yourbrand.com - を使用しており、それを所有しています。移行するとき、そのドメインの DNS レコードが Elido のエッジを指すように移動し、すべての既存スラッグは引き続き機能します。スラッグ空間は彼らのものです。
TinyURL 無料プランのユーザーは tinyurl.com を使用しています。そのドメインを所有しておらず、301 リダイレクトをインストールすることもできません。TinyURL を離れると、古いリンクはついてきません。TinyURL が稼働している限り tinyurl.com で生き続けますが、移行するチームはそれらをコントロールできず、クリックをインターセプトする能力も、設置できる 301 チェーンもありません。
TinyURL Pro では$9.99/月(2026-05-12参照)でカスタムブランドドメインを提供しています。Pro を使用して独自ドメインを使っていた場合、移行パスは Bitly のシナリオにかなり近くなります:Elido でドメインを確認し、スラッグを事前プロビジョニングし、DNS CNAME を切り替えます。カスタムドメインドキュメントでそのカットオーバーの Elido 側を説明しています。
もう一つの構造的な違いは監査ログです。TinyURL は Pro でさえ過去データの可視性が限られています。elido-vs-tinyurl 比較では完全な機能ギャップを説明しています。移行計画の実際的な含意は、完全なクリック履歴を再構築できないということです。それに対して予算を組まないでください。
パス A:TinyURL Pro アカウントを持っている#
TinyURL Pro は https://tinyurl.com/app/dev(2026-05-12参照)で API を公開しています。API はエイリアスの作成と取得をサポートしています。列挙は、バッチでリンクを返すページネーションされた GET 呼び出しで機能します。
手順:
- TinyURL アプリの設定から API トークンを生成します。
- すべてのエイリアスを列挙し、完全にページネーションします。TinyURL はレート制限を適用します。API ドキュメントでは1分あたりのリクエスト上限が指定されています。開始前にバックオフハンドラーを組み込んでください - エクスポートの途中での 429 は、結果をディスクに増分書き込みしていればデータ破壊ではなく単に煩わしいだけです。
- 各エイリアスについて、スラッグ、宛先 URL、30日間のクリック数を収集します。TinyURL の API は生のクリックイベントや過去のタイムシリーズを公開していません。集計値のみです。
- フラットな CSV を作成します:1行1リンク、列は
slug,target_url,clicks_30d。 clicks_30dの降順で並べ替えます。クリックボリュームによるリンクの上位1%が、継続中のキャンペーンや公開コンテンツで実際に重要な割合です。それらを検証とサーフェス更新の優先順位として扱ってください。ゼロクリックリンクの長いテールはインポートできますが、人間の注目が必要なことはほとんどありません。
CSV ができたら、Elido へのインポートは他のバルク移行と同じ形をとります。詳細なバルクインポートの仕組みはBitly 移行プレイブックにあります - API の形と TypeScript SDK の呼び出しは同一です。異なるのはソースデータのみです。
Pro のブランドドメインへの 301 チェーン#
TinyURL Pro アカウントでカスタムブランドドメインを使用していた場合、そのドメインを Elido に移行できます。カスタムドメインフローで Elido ワークスペースにドメインを登録し、すべてのスラッグを事前プロビジョニングし、CNAME を変更します:
short.yourbrand.com. 300 IN CNAME edge.elido.me.
HTTP 301 のセマンティクスがここで適用されます:CNAME が Elido のエッジに解決されると、古いリンクをたどるブラウザとボットは、宛先 URL を指す Elido からの 301 Moved Permanently レスポンスを受け取ります。スラッグ空間が tinyurl.com ではなくあなたのドメインにあるため、TinyURL を通じたリダイレクトホップは必要ありません。それがクリーンなパスです。
関連する標準はRFC 7231 §6.4.2で、301 Moved Permanently のセマンティクスを定義しています。301 を受け取ったクライアントは、保存されている URL を新しい場所に更新すべきです。実際には、メールクライアントとソーシャルプラットフォームはこれをどれだけ積極的にたどるかが異なりますが、リダイレクト自体は HTTP 仕様を尊重するウェブブラウザとボットには信頼性があります。
パス B:アカウントなし、公開リンクだけ#
これはより一般的なシナリオです。無料の TinyURL アカウントまたはアカウントなしで、ニュースレターアーカイブ、ソーシャル投稿、印刷物、またはドキュメント全体に tinyurl.com/<slug> リンクが公開されています。API アクセスもエクスポートメカニズムもありません。リンクは存在しますが、リストがありません。
インベントリを構築する唯一の方法は、自分の公開サーフェスを検索することです。
リンクを見つける#
各サーフェスを体系的に調べてください:
- メール/ニュースレターアーカイブ:メールプラットフォームのアーカイブで
tinyurl.comを検索します。ほとんどのプラットフォームでは送信したキャンペーン全体を検索できます。マッチしたものをエクスポートしてください。 - ソーシャルメディア:Twitter/X、LinkedIn、Facebook の投稿で
tinyurl.comリンクを検索します。ほとんどのプラットフォームにはアカウントレベルのコンテンツエクスポートがあります。ダウンロードして grep してください。 - ウェブサイトとドキュメント:サイト検索またはクロールを実行します。静的サイトリポジトリで
grep -r "tinyurl.com" ./contentは数秒で完了します。 - 広告プラットフォームのトラッキングリンク:Google Ads、Meta Ads Manager、または有料キャンペーンを実行した場所で UTM タグ付きリンクを確認します。
tinyurl.com/<slug> の値のリストができたら、宛先 URL が必要です。自分でリンクを作成して宛先を覚えていれば問題ありません。そうでなければ:各リンクを手動でたどるか、HEAD リクエストを発行して Location ヘッダーを読み取るスクリプトで確認します。TinyURL のリダイレクト自体は公開アクセス可能です - tinyurl.com リンクがどこに向かうかを解決するのにアカウントは不要です。
# スラッグのファイル(1行1スラッグ)から TinyURL の宛先をバルク解決する
while IFS= read -r slug; do
dest=$(curl -s -o /dev/null -w "%{redirect_url}" \
-L --max-redirs 0 "https://tinyurl.com/${slug}" 2>/dev/null || echo "FAILED")
echo "${slug},${dest}"
done < tinyurl-slugs.txt > slug-target-map.csv
これによりインポートに必要な slug,target_url CSV が得られます。独自ドメインで新しいスラッグを使ってインポートすることに注意してください - 詳細は以下で説明します。
回復できないものを受け入れる#
アクセス権を持っていないコンテキストで公開されたリンク - 退職した職場のソーシャルアカウント、削除したプラットフォームのコミュニティ投稿 - には回復パスがありません。それらの古い tinyurl.com リンクは TinyURL が稼働している限り機能し続けますが、それらを更新したり、Elido 経由でリダイレクトしたり、アカウントの使用を停止した後でクリックした人の analytics を確認する能力がありません。これを受け入れて先に進んでください。見つけられるものを移行することが正しい判断です。ここで完璧は達成できません。
Elido へのインポート#
CSV を生成したパスに関わらず、インポート呼び出しは同じです。重要な区別は slug フィールドに何を入れるかです。
カスタムブランドドメインを持っている場合:パス A のスラッグを保存しようとすることができます。まず Elido でドメインを登録し、バルクインポートボディで slug を明示的に渡してください。呼び出しの形:
curl -X POST "https://api.elido.app/v1/links/bulk" \
-H "Authorization: Bearer $ELIDO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tinyurl-migration-batch-001" \
-d '{
"workspace_id": "ws_xxxxxxxxxxxx",
"domain_id": "dom_xxxxxxxxxxxx",
"links": [
{
"slug": "original-slug",
"destination_url": "https://your-long-destination.com/path",
"tags": ["tinyurl-migrated"]
}
]
}'
domain_id はワークスペースにすでに登録および確認されているドメインを参照しなければなりません。エンドポイントは1回の呼び出しで最大100リンクを受け入れ、アイテムごとの成功/失敗ステータスを返します - 1行のスラッグ競合でバッチ全体が中断されません。
カスタムドメインなしで tinyurl.com/ を使っていた場合:slug フィールドを省略するか null を渡してください。Elido は各リンクのスラッグを生成します。スラッグの変更を受け入れてください。古い tinyurl.com リンクは新しい Elido リンクにリダイレクトしません - tinyurl.com を所有していないため、インストールできる 301 チェーンがありません。トラフィックを再接続する唯一の方法は、古いリンクを含むすべての公開サーフェスを更新することです。それが必要な作業です。
ブランドなしリンクの 301 チェーンの制限#
これは直接述べる価値があります。migrate-from-bitly-without-breaking-linksガイドでは、Bitly 移行の 301 ブリッジパターンを詳しく説明しています。そのパターンは元のドメインをコントロールしていることを前提とします。tinyurl.com リンクについては、コントロールしていません。
既存の tinyurl.com/<slug> から新しい宛先へのリダイレクトをインストールするために TinyURL が公開するメカニズムはありません。リンクは作成時に指定された場所に解決し続けます。tinyurl.com/abc123 に向かっていたトラフィックを代わりに新しい Elido リンクに到達させたい場合、2つのオプションがあります:
- すべての公開サーフェスを新しい Elido リンクを使用するように更新する。これが正しいアプローチです。
- TinyURL リンクを宛先に向けたままにして、Elido には今後のリンクのみを処理させる。古いリンクの使用頻度が低くビジネスクリティカルでない場合に許容できます。
オプション2は真の「移行」ではありません - 共存です。ほとんどのチームにとって、両方の組み合わせが理にかなっています:新しいリンク作成を Elido に完全に移行し、最高トラフィックの古いサーフェスを更新し、ゼロクリックの古い TinyURL リンクの長いテールは努力なしで自然消滅させます。
検証#
インポート後、重要なものが実際に機能していることを確認してください。
並べ替えられた CSV を取得し、クリックボリューム(パス A)または公開日とオーディエンスサイズ(重要度を推定しているパス B)で上位50行を抽出してください。それぞれのリンクについて:
- カスタムブランドドメインでスラッグを保存した場合:
https://short.yourbrand.com/<slug>が正しい宛先に解決することをテストしてください。Elido のダッシュボードには 200 対エラーステータスが表示されます。または curl チェックを実行してください:
curl -s -o /dev/null -w "%{http_code} %{redirect_url}" \
"https://short.yourbrand.com/your-slug"
-
新しいスラッグを生成した場合:Elido ダッシュボードの宛先 URL がソース CSV と一致することを確認してください。インポートレスポンスにはアイテムごとの成功/失敗が含まれています。移行を閉じる前に失敗ログを確認してください。
-
最新の高開封率ニュースレターの送信と最近のソーシャル投稿を確認してください。それらに TinyURL リンクが含まれていて Elido リンクに更新した場合、更新されたリンクが機能していることを確認してください。更新していない場合 - 明示的にメモしてください。それらは、analytics の外に残しているアクティブなクリックトラフィックが最も可能性が高いリンクです。
更新したサーフェスについては、更新が実際に公開されたバージョンに届いたことを確認してください。古いリンクで再スケジュールされたニュースレター、編集されたツイート、CDN にキャッシュされたヘルプ記事 - これらは更新がすぐに反映されない場所です。
保持できないスラッグに関する現実的な注記#
率直なバージョン:TinyURL の無料プランを使って tinyurl.com/<slug> リンクを公開していた場合、スラッグ空間を移行しているのではありません。宛先 URL のリストを移行して、独自ドメインの新しいスラッグで Elido で新たに始めているのです。古い tinyurl.com リンクは TinyURL のインフラ上に永続的に存在します。アカウントの使用を停止した後、それらを更新したり、リダイレクトしたり、analytics を引き出したりすることはできません。
これは移行プロセスの失敗ではありません。正しい期待値です。TinyURL の無料プランはリンク管理プラットフォームではありませんでした - 短縮ユーティリティでした。TinyURL を離れることは、スラッグのポータビリティの観点から、そこに費やした作業の大部分が回収不能であることを受け入れることを意味します。
得られるのはその後に来るものです:自分が所有するドメインのブランデッドショートリンク、30日間のウィンドウで止まらないクリック analytics、そして驚かせることなくスケールする料金モデル。移行作業は一度限りのコストです。改善されたツールは継続的なものです。
移行作業にコミットする前に Elido が正しい目的地かどうかを評価している場合、elido-vs-tinyurl 比較では機能とコンプライアンスのギャップを詳しく説明しています。
引用:TinyURL 開発者 API ドキュメント 2026-05-12参照。TinyURL 料金ページ 2026-05-12参照。RFC 7231 §6.4.2 - HTTP 301 Moved Permanently。
Elidoを試す
URLを貼り付けて短縮リンクを取得
登録不要。リンクは30日間有効。永久に保存するには登録してください。
Free、登録不要 · 1日あたり2件