YOURLS has been a reliable answer to a specific question for over fifteen years: "I want a URL shortener I control, I don't want to pay a monthly fee, and I'm happy to run PHP." If that describes you, YOURLS still holds up. The GitHub repo is active, the plugin ecosystem is extensive, and the codebase is straightforward enough that a PHP developer can fork it on a Friday afternoon and have it running before dinner.
The comparison gets interesting once that description stops fitting. Teams that outgrow a single MySQL table, organizations with EU data residency requirements they can't satisfy with a self-managed VPS, and developers who want an SDK and a webhook pipeline rather than a plugin hook — for those teams, YOURLS is the right starting point and the wrong finishing point.
This post maps where each tool actually sits, what you trade by choosing one over the other, and the honest answer to the "should I self-host?" question in 2026.
All YOURLS details are drawn from the YOURLS GitHub repository and the public documentation at yourls.org. The yourls.org page blocked automated fact-checking in May 2026 — verify any YOURLS-specific claims against the live site before use. Elido pricing is from /en/pricing.
TL;DR#
- YOURLS is free, PHP-based, plugin-extensible, and runs anywhere with a web server and MySQL. It has no managed offering, no built-in team model, and analytics limited to what its basic click log and community plugins provide.
- Elido ships a Go-based stack with ClickHouse-backed analytics, Caddy on-demand TLS, Redis hot cache, Kafka event streaming, SSO, SDKs, and an MCP server — as a managed EU-hosted service or as a self-hosted Helm chart deployment.
- The "self-host" argument is not YOURLS vs Elido managed: it's YOURLS (PHP/MySQL, one service) vs Elido self-hosted (14 services on k3s, one Helm chart). Pick the complexity budget that matches your infrastructure team.
- Both export CSV. Migration is straightforward if you're moving in either direction.
What YOURLS actually is#
YOURLS — Your Own URL Shortener — first appeared around 2009. It is a PHP application that stores short links in a MySQL database, provides an admin panel for managing links, and serves redirects through an Apache or nginx configuration. The project is maintained on GitHub and has a healthy plugin registry covering use cases from API authentication to click geolocation to custom redirect types.
Three things make YOURLS genuinely good at what it does:
It is free. Not free-tier-with-caps, not free-during-trial. Free. You pay for the server it runs on, which for a lightly-used installation can mean $5/month on a shared host. For individuals, nonprofits, and small organizations with a PHP-competent administrator and no team collaboration requirements, YOURLS is hard to beat on cost.
It runs anywhere PHP runs. Shared hosting, a $6 VPS, a Raspberry Pi on a home network, a corporate on-premise server behind a firewall — if PHP 7.4+ and MySQL are available, YOURLS installs in under 30 minutes. No container runtime required, no orchestration layer, no cloud provider lock-in. This is a real advantage for organizations with constrained or non-standard infrastructure.
The plugin ecosystem is real. The YOURLS plugin directory and GitHub ecosystem cover a meaningful range of extensions: IP geolocation for click data, API key management, OAuth integration, custom redirect types, click fraud filtering, and more. Because YOURLS exposes clean plugin hooks, a developer with PHP experience can write a custom plugin in an afternoon. For organizations with specific requirements that don't fit a general-purpose shortener, this extensibility has genuine value.
Where YOURLS reaches its limits#
YOURLS is one PHP application backed by one database. That architecture is appropriate for its scope. It becomes a constraint when requirements grow.
Analytics depth. YOURLS stores clicks in the MySQL database alongside the links themselves. Basic click counts, timestamps, and IP data are available. Real-time query performance across millions of click rows in MySQL is not the same as querying a columnar store designed for that workload. Building country breakdown, device breakdown, UTM attribution, time-series aggregation, and retention analysis on top of a MySQL click log is possible with the right plugins — but it is plugin work, not built-in platform capability. For teams that need ClickHouse-grade analytics without building it themselves, YOURLS is not the answer.
No team model. YOURLS has no native concept of workspaces, roles, or per-user permissions beyond a simple multi-user mode that separates link ownership. There is no audit log, no SCIM provisioning, no SSO integration in the core product. The plugin ecosystem partially addresses this, but assembling and maintaining a multi-user access control setup from plugins is operational overhead.
TLS for custom domains is your problem. YOURLS handles the redirect logic; TLS is whatever your web server and certificate setup provide. Provisioning HTTPS for a custom short domain means configuring Let's Encrypt through Certbot, managing renewal, and handling the web server layer. For a single domain this is manageable. For organizations bringing multiple client domains online on an ongoing basis, manual TLS management scales poorly. Elido's on-demand Caddy TLS provisions a certificate for a new domain on first request, with no manual step required.
No webhooks, SDKs, or event pipeline. YOURLS has an API, but the surrounding developer experience is minimal by modern standards. There are no official SDKs, no webhook delivery system, no event streaming into Kafka or any other bus. Integrating YOURLS programmatically means writing against the raw API yourself. For teams whose link management is embedded in a broader engineering workflow — CI-triggered link creation, LLM tooling that queries click stats, server-side conversion forwarding — the integration story requires custom glue code.
Elido's stack and what it actually delivers#
Understanding the Elido vs YOURLS comparison requires understanding that Elido is architecturally different in kind, not just in polish.
The hot path — link resolution — runs on Go with fasthttp, with a two-tier cache: an in-process LRU for the hottest links, then Redis, then a gRPC call to the origin service as a last resort. p50 redirect latency at cache hit is under 5ms. YOURLS redirects go through PHP on each request; the performance profile is different by design.
Click events go fire-and-forget into Redpanda (Kafka-compatible), processed asynchronously by click-ingester into ClickHouse. This separation means the redirect path is never blocked by analytics writes. ClickHouse is a columnar store built for exactly this workload — country, device, OS, referrer, UTM attribution, and time-series breakdown queries return in milliseconds even at high click volumes.
Custom domain TLS runs through Caddy on-demand TLS. The domain-manager service maintains the allowlist of verified hostnames; when a request arrives for a new verified domain, Caddy provisions the certificate in under 60 seconds. No manual certificate request, no renewal cron job.
For teams that want to run this themselves rather than use the managed service: Elido ships a Helm chart that deploys all 14 services — edge-redirect, api-core, api-bff, analytics-api, billing, click-ingester, webhook-dispatcher, url-scanner, domain-manager, qr-generator, metadata-fetcher, notification, plus the data plane (Postgres, Redis, ClickHouse, Redpanda, MinIO, Meilisearch) — onto a k3s cluster. One helm install and the full platform is running on your own infrastructure. See /en/pricing for the self-hosted Enterprise tier.
The developer integration surface is TypeScript, Python, Ruby, and Go SDKs, a CLI, and an MCP server (open source, MIT-licensed at @elido/mcp-server) that exposes link management to Claude, Cursor, and any MCP-aware client. Webhooks fire on click, link creation, domain verification, and conversion events with automatic retry and delivery receipts. None of this requires plugin hunting.
Feature comparison#
| Capability | YOURLS | Elido (managed) | Elido (self-hosted) |
|---|---|---|---|
| Cost to run | Server cost only | Subscription | Server + Enterprise license |
| Language / stack | PHP + MySQL | Go + ClickHouse + Redis + Kafka | Same |
| Custom domains | Yes (manual TLS) | Yes (on-demand Caddy TLS) | Yes (on-demand Caddy TLS) |
| Analytics depth | Basic click log (plugins extend) | ClickHouse: full breakdown | Same |
| Real-time analytics | Limited | Yes | Yes |
| Geo / device / OS breakdown | Plugin-dependent | Yes | Yes |
| A/B testing | No | Yes | Yes |
| Link expiration | Plugin | Yes | Yes |
| Password protection | Plugin | Yes | Yes |
| Geo targeting (routing) | No | Yes | Yes |
| Dynamic QR codes | No | Yes | Yes |
| Team workspaces | No (limited multi-user) | Yes | Yes |
| Roles / permissions | No | Yes | Yes |
| Audit log | No | Yes | Yes |
| SSO / SAML | No (plugin options exist) | Yes (Business) | Yes |
| 2FA | Plugin | Yes | Yes |
| Webhooks | No | Yes | Yes |
| Official SDKs (TS / Python / Ruby / Go) | No | Yes | Yes |
| MCP server | No | Yes | Yes |
| CLI | No | Yes | Yes |
| EU data residency | Wherever you host | Frankfurt default | Wherever you deploy |
| Operational burden | Web server + PHP + MySQL | None (managed) | k3s + Helm |
| Plugin ecosystem | Extensive | Not applicable | Not applicable |
| Runs on shared hosting | Yes | No | No |
| Helm chart / k3s deploy | No | No | Yes |
Note on YOURLS plugin claims: Plugin availability varies by maintenance status and YOURLS version compatibility. Features marked as "plugin-dependent" exist in the ecosystem but require independent evaluation of the specific plugin's activity and security posture before deploying to production.
Operational burden: the honest accounting#
The biggest difference between YOURLS and Elido is not features — it is who does the operations work.
YOURLS is one PHP app and one database. Setting it up takes an afternoon. Keeping it running means patching PHP, updating MySQL, managing Let's Encrypt renewal, and applying YOURLS updates when they ship. For a technically capable individual or a small team with a sysadmin, this is a small and well-understood maintenance surface. The risk is low because the system is simple.
Elido managed is zero operational burden on your side. Hetzner FRA infrastructure, certificate provisioning, database HA, Redis cluster management, Kafka lag monitoring, ClickHouse vacuuming — none of that is your problem. The tradeoff is that you are trusting Elido's infrastructure and accepting that data lives in Elido's control plane (EU-hosted, with a DPA covering Article 28 obligations — but still not on your servers).
Elido self-hosted on k3s is the third option, and it is genuinely complex. Fourteen services, a data plane with five components, Helm configuration to match your storage class and ingress setup. This is not a weekend project; it is an infrastructure project that requires a team comfortable with Kubernetes operations. The benefit is full data sovereignty combined with the full Elido feature set — EU data residency because it is your cluster in your jurisdiction, not because a vendor promises it. For organizations in regulated industries or with hard data sovereignty requirements, this combination is the point of the offering. See /en/pricing for the Enterprise tier that includes the Helm chart and support SLA.
When YOURLS is the right answer#
YOURLS is the correct choice when all of the following are true:
- You have one person or a small team who controls all link creation, and multi-user access control is not a requirement.
- Your analytics requirements are "how many times was this link clicked" rather than "which device type, which country, and which UTM source drove conversions this week."
- You have a PHP-competent administrator available to handle updates, certificate renewal, and plugin maintenance.
- Budget is a hard constraint and the server cost is already accounted for (hosting another service on an existing server, for example).
- You are comfortable assembling features through plugins and accept the dependency and maintenance risk that comes with community plugins.
Developers who run a personal short domain for their own links, small nonprofits with an IT volunteer who knows PHP, internal tools teams at organizations where all traffic is internal and analytics depth is low — these are legitimate YOURLS use cases. Choosing YOURLS for these scenarios is not a compromise; it is the appropriate tool.
When YOURLS stops being enough#
The decision to move typically comes from one of four places.
Analytics requirements grow. The moment you need UTM attribution, device breakdown, time-series analysis, or conversion tracking, YOURLS's click log becomes a liability. Assembling this from plugins is possible but requires ongoing maintenance of those plugins, and the query performance on MySQL at scale is not what ClickHouse delivers. Elido's analytics are built on the stack that was designed for this workload from the start.
The team grows. Two people sharing a YOURLS admin panel is manageable. Five people from different departments, each needing access to their own links but not each other's, with an InfoSec requirement for audit logging and a procurement checklist that asks about SSO — YOURLS has no answer for this. Elido's workspace model, RBAC, audit log, and SCIM provisioning exist because this is a real requirement at scale.
Custom domain TLS at volume. One domain with Certbot works. Ten domains across multiple clients, each needing HTTPS provisioned and renewed, with new domains being added regularly — manual certificate management becomes the bottleneck. Elido's on-demand TLS removes this entirely. The features page covers how the Caddy integration and domain verification pipeline work.
Developer integration requirements. YOURLS's API is functional but the surrounding ecosystem is minimal. When link management needs to be embedded in CI pipelines, triggered by CRM events, queried by LLM tooling, or integrated with server-side conversion forwarding, the absence of official SDKs, webhooks, and an MCP server means writing and maintaining that integration layer yourself. Elido ships this.
Migration note#
Both YOURLS and Elido support CSV export. A YOURLS export contains the short URL, destination, title, and creation date. Elido's bulk import endpoint at /v1/links/bulk accepts slug, destination, and tags. A minimal migration is a script that reads the YOURLS export, maps short URLs to slugs, and POSTs to the bulk import endpoint.
One thing that does not migrate: click history. Analytics in Elido start from the migration date. If your YOURLS click data needs to be preserved for reporting, export and archive it separately before switching.
If you are moving a custom short domain from YOURLS to Elido, the order matters: register the domain in your Elido workspace, let TLS provision, then update the DNS CNAME to point at Elido's edge. From the moment DNS propagates, redirects serve from Elido. Update the DNS first and you get a certificate error during the propagation window.
The self-host question#
The framing of "self-host vs managed" obscures what is actually a three-way choice in this comparison:
- YOURLS self-hosted — one PHP app, one database, runs anywhere, low operational complexity, limited feature set.
- Elido managed — full feature set, zero operational burden, data on Elido's EU infrastructure.
- Elido self-hosted on k3s — full feature set, full data sovereignty, high operational complexity, requires a Kubernetes-capable team.
YOURLS is not competing with Elido's managed tier on the self-host axis. It is competing with Elido's self-hosted option on the operational simplicity axis — and it wins that comparison for organizations without a Kubernetes team. YOURLS is competing with Elido's managed tier on the feature axis — and it loses most of those comparisons once analytics depth, team features, or developer integration become requirements.
The honest summary: if you are evaluating shorteners and the primary driver is "I want to run this myself and I do not need ClickHouse-grade analytics or a developer SDK," YOURLS remains a defensible choice in 2026. If any one of analytics depth, team access control, EU data residency contractually guaranteed, or developer integration tooling is a requirement, the gap between YOURLS and a managed or k3s-hosted Elido deployment is real and grows over time.
For a broader comparison across shorteners, the free URL shorteners ranked post covers the managed field with a consistent methodology. Current Elido tier pricing — including the Enterprise self-hosted tier — is at /en/pricing.