Was benötige ich um mir einen eigenen URL-Shortener Service mit einem WordPress Backend zu bauen?
Ich würde gerne so schnell wie möglich in das Eingemachte springen. Wer mehr über das Warum hinter dem Projekt erfahren möchte, springt am besten direkt in den letzten Abschnitt des Artikels.
#1 Eine Domain
Die Domain, die verkürzt auf verschiedenen Social Kanälen dargestellt werden soll ist thebigc-agency.de. Die Domain ist 14 Zeichen ohne TLD (.de) und 17 Zeichen mit TLD lang. Das sollte kürzer gehen. Ich entscheide mich die Domain tbc-a.de als Abkürzung zu registrieren. Die Domain ist glücklicherweise in meinem Hosting-Paket enthalten verursacht keine zusätzlichen Kosten. Sie ist lediglich 5 Zeichen ohne TLD und 8 Zeichen mit TLD lang. D.h. ich spare 9 Zeichen! Das nenne ich eine URL-Verkürzung!
#2 Eine WordPress Installation
Im zweiten Schritt benötige ich eine handelsübliche WordPress Installation. Mit dem PLESK WP Toolkit kann ich mit ca. drei Klicks eine leere WordPress Installation in meinem Hosting initiieren. Diese sicher ich noch ordentlich ab und es kann losgehen.
Da der Prozess relativ unspektakulär im Kontext des Projektes ist, werde ich nicht weiter darauf eingehen. Wen das Setup einer WordPress interessant, dem kann ich nur die Website Setup Series ans Herz legen.
#3 Ein minimalistsches WordPress Theme bzw. Design
Die Seite soll – zugebenen – nicht nur Links weiterleiten, sondern auch die Linktree-Äquivalente für die jeweiligen sozialen Netzwerke hosten. D.h. jedes Netzwerk erhält eine kleine Profilseite mit den zuletzt geposteten Inhalten von THE BIG C Agency. Und aufgrund des Anwendungsfalls ist es vor allem wichtig, dass das Theme mobil funktioniert und keine allzu große Last auf den Server legt.
Zum Glück muss ich nicht bei null starten. Ich kann einfach die Customizer Settings von thebigc-agency.de exportieren und wieder importieren, um Dinge wie Farben, Schrift und Layouts auf tbc-a.de zu konfigurieren.
Da ich erwarte, dass tbc-a.de ohnehin ein 90%iges Mobil-Angebot ist, setze ich das Standard-Layout auf „Narrow“ und versuche auch sonst nicht zu breite oder raumgreifende Elemente zu verwenden.
#4 Das Redirection Plugin
Für die technische URL-Shortening Mechanik, verwende ich das WordPress Plugin Redirection. Genau genommen missbrauche ich das Plugin für meine Zwecke. Denn eigentlich ist das Plugin dazu gedacht, 301-Weiterleitungen für umgezogene Beiträge oder permanente Migrationen innerhalb einer Domain zu generieren. Aber es kann theoretisch auch imaginäre URLs auf externe Domains weiterleiten. Das reicht für meine Zwecke.
Auf einem noch abstrakteren Level stellt Redirection eigentlich nur ein grafisches User Interface zur Verwaltung der Server .htaccess bereit. Das erleichtert mir das Leben jedoch ungemein und erfüllt den gesuchten Zweck.
Die konfigurierten URLs können auch gruppiert werden. Über die Gruppen wird vorrangig definiert, welche Server-Technologie den 301-Redirect ausführt:
- nginx
- Apache
- WordPress
Die schnellste Weiterleitungsmethode ist nginx, dicht gefolgt von Apache. Allerdings sind beide Techniken abhängig von der individuellen Infrastruktur innerhalb des Webhostings. Um auf ganz sicher zu gehen, kann ich einfach „WordPress“ als Weiterleitungstechnologie verwenden. Weil ich mir ziemlich sicher bin dass meinem Apache Server ein nginx Server vorgeschaltet ist, wähle ich nginx aus.
#5 Ein System
Was mich an bit.ly und anderen Short-URL-Services stört ist, dass ich ein Premium Abo benötige, um die URLs sprechend zu gestalten. So nicht bei meinem eigenen URL-Shortener! Für die URLs, die zu meinen Inhalten führen, möchte ich drei Dinge erreichen:
- Die URLs müssen signifikant kürzer sein als die URLs der Original-Domain!
- Die URLs müssen einfach im Browser abzutippen zu sein.
- Die Short-URLs müssen – auch ohne Eingabe – einprägsam und logisch sein.
So stelle ich mir vor, dass ich z.B. die Short-URLs für instagram wie folgt benenne:
tbc-a.de/[Netzwerk-Kürzel][Link ID]
So könnte ich z.B. Links in instagram Posts verwenden, die wie folgt lauten:
- tbc-a.de/insta20
- tbc-a.de/insta21
- tbc-a.de/insta22
Diese Links erfüllen alle drei Kriterien von oben. Links, die ich unter Umständen auf facebook verwende, könnte ich dann z.B. nach dem gleiche Schema wie folgt benennen:
- tbc-a.de/fb20
- tbc-a.de/fb21
- tbc-a.de/fb22
In Redirection kann ich entsprechend mit jedem neuen Beitrag, den ich verlinken will, eine ID pro Netzwerk hochzählen. Im Plugin sieht das dann wie folgt aus:
Etwas lästig, aber sicherlich spannend für Tracking-Nerds. Durch das Postfixing der Ziel-URLs mit utm-Parametern:
?utm_source=instagram&utm_medium=social
kann ich die Traffic Herkunft auf thebigc-agency.de trotz des Umweges über die tbc-a.de Domain trotzdem nachverfolgen.
#6 Eine Frontend Applikation?
An dieser Stelle, wird deutlich: Der Prozess ist zwar nicht sonderlich technisch, aber stellenweise schon etwas holprig. So hätte ich eigentlich gerne eine Frontend-Applikation, die folgende Aktionen der Link-Erstellung für mich erledigt.
- Verfügbarkeit auf einer Unterseite der Shortener Domain
- Die Seite ist nur für eingeloggte Nutzer aufrufbar
- Ich paste einfach den thebigc-agency.de Beitrag in ein Eingabefeld
- Die Frontend-Applikation generiert den Link in Redirection auf auf Basis der ausgewählten Weiterleitungsgruppe (z.B. instagram = /insta)
- Und zählt die Link-IDs automatisch auf Basis höchsten vorhandenen Netzwerk-ID aus. (z.B. /insta22 +1 = /insta23)
- Dann werden noch Standard utm_Parameter angehängt und mir wird die fertige Short URL zum kopieren wieder ausgespuckt.
Ich könnte mir vorstellen, dass dies innerhalb von WordPress umsetzbar wäre, allerdings werde ich zum Zwecke meines ersten URLs Shorteners nicht so weit gehen. Interessanter Weise hat das Redirection Plugin aber einigermaßen gut dokumentierte API, die dafür benutzen können: Redirection REST API Documentation.
#7 Eine Linktree Alternative?
Mit meinem improvisierten eigenen Short-URL Service am Start, wäre es jetzt natürlich cool, wenn ich für geschlossene Netzwerke wie instagram noch eine Art Profilseite für die zuletzt geposteteten Links hätte. So etwas wie Linktree, quasi ein Link-In-Bio-Service. Dies kann ich tatsächlich relativ simpel aufgrund des WordPress Frontend umsetzen.
Dies werden ich aber – auch aufgrund von SEO Gründen – in einem eigenen Blogbeitrag abhandeln.
Mein Dilemma mit Self-Hosted URL Shortenern
Wie mein BETA-NET Experiment gezeigt hat, bin ich ein großer Fan von Self-Hosting-Projekten und -Software. Es gibt da draußen ein paar wenige Open Source URL-Services, aber keiner brachte wirklich erfolgsversprechende Ergebnisse. Shlink, YOURLs und Polr fallen mir noch ein.
- Eine Installationen hatten Probleme mit der Stabilität.
- Andere hatten zu hohe Server-Anforderungen (oder wollten einfach nicht auf einem simplen Apache-Server) laufen.
- Und eigentlich hatten alle eine erschreckende Anwender-Experience.
Entsprechend habe ich nach einer stabileren Variante – bevorzugt im WordPress Ökosystem gesucht und keine gefunden. Somit wurde dieser Versuch hier geboren. Ein wenig umständlich, aber funktional. Wenn ich es jetzt noch schaffe, den Link-To-Bio-Service an den Start zu bekommen, sollte das für mich und meine Agentur-Bedürfnisse ausreichen!