Link Shorteners Shouldn't Charge Extra for QR Codes — Here's Why

← Back to Blog

A QR Code Is Just a URL in a Fancy Outfit

Let’s get something out of the way: a QR code is a visual encoding of a URL. That’s it. There’s no magic server, no proprietary algorithm, no rare mineral being mined. It’s a string of text — your URL — rendered as a grid of squares that a camera can read.

The spec is open. The libraries are free. Generating one takes less computing power than loading this web page.

So why are link shorteners charging you $29/month — or more — to generate them?

The Great QR Upsell

If you’ve used Bitly’s free tier recently, you already know: QR codes are locked behind a paywall. You get two QR codes per month on the free plan. Two. As in, one more than one.

Need a third? That’ll be $10/month on Bitly Core. Need custom colors or a logo on your QR code? Time to upgrade to Growth at $29/month. Want dynamic QR codes that you can edit later? Premium at $199/month.

Rebrandly? QR codes aren’t available on the free plan at all. Zero. You need their paid tier to generate even a basic one.

Here’s a quick comparison:

PlatformFree QR Codes/MonthCustom QR StylingDynamic QR Codes
Bitly2Paid onlyPremium ($199/mo)
Rebrandly0Paid onlyPaid only
TinyURL0N/AN/A
Short.ioUnlimitedPaid onlyPaid only
301.Pro*UnlimitedIncludedIncluded

*301.Pro’s paid plans (starting at $149/mo) include unlimited QR codes, custom styling, and dynamic QR codes as standard features — not gated add-ons. A free Demo account is available for evaluation.

What It Actually Costs to Generate a QR Code

Let’s do some napkin math, because this is where it gets fun.

A QR code is generated client-side or server-side using open-source libraries. The most popular ones — qrcode.js, python-qrcode, qr_code in Rust — are all MIT or BSD licensed. Free to use, free to distribute.

The computational cost? Generating a QR code from a URL takes approximately 0.5 milliseconds on modern hardware. That’s not a typo. Half a millisecond.

Let’s be generous and assume a platform uses server-side generation with a high-res PNG output, plus some custom styling:

  • CPU time: ~2ms per QR code
  • Storage: ~15KB per image
  • CDN delivery: Fractions of a cent

If you generated 10,000 QR codes per month, the total infrastructure cost would be roughly $0.15. Fifteen cents. That’s not per QR code — that’s total.

For context, Bitly charges $199/month for their Premium plan to give you unlimited QR codes. That’s a markup of approximately 132,000%.

I’ll let that sink in.

”But Dynamic QR Codes Are Different!”

This is the argument you’ll hear from platforms that charge for QR codes, and it sounds reasonable until you think about it for more than three seconds.

A “dynamic” QR code is a QR code that points to a short URL. That’s it. Instead of encoding https://yoursite.com/long-page-name directly, it encodes something like https://301.pro/cde/abc123, which redirects to your destination.

The “dynamic” part isn’t the QR code — it’s the redirect. The QR code itself is still just a static image encoding a URL. The magic is in the link shortener, which you’re already paying for (or should be getting for free).

So when a platform charges extra for “dynamic QR codes,” they’re charging you for… the thing they already do. It’s like a restaurant charging extra for “fork access” with your meal.

Why This Matters for Your Business

“It’s just QR codes, who cares?” Fair question. Here’s who cares:

If you’re putting QR codes on physical materials — business cards, flyers, posters, packaging — you need every code to work reliably and be trackable. When your QR code budget is limited to 2 per month, you’re choosing between campaigns instead of running them all.

Retail and Events

Event badges, product packaging, table tents, window displays — these all need QR codes. A coffee shop with a loyalty program might need QR codes on every table, at the register, and on to-go cups. That’s not an enterprise use case. That’s a Tuesday.

Multi-Location Businesses

Each location needs its own QR codes pointing to location-specific pages. A chain with 20 locations needs at minimum 20 QR codes — and that’s before you count multiple campaigns, seasonal promotions, and menu updates.

At Bitly’s pricing, that one coffee shop chain would burn through the Core plan’s limits in a day.

The Real Reason They Charge

It’s not about cost. We’ve established that QR generation costs effectively nothing.

It’s about perceived value. QR codes feel like a “feature.” They have a visual output you can hold in your hand (well, on your screen). That makes them feel like something worth paying for, unlike an invisible redirect that happens in milliseconds.

The pricing playbook is simple:

  1. Take something that costs nothing
  2. Package it as a premium feature
  3. Gate it behind a paywall
  4. Watch customers upgrade because they need it for a print deadline

It’s the bottled water of the SaaS world. The water is basically free. The bottle, the label, and the marketing? That’s what you’re paying for.

What to Look For Instead

When evaluating a link management platform’s QR offering, here’s your checklist:

Non-negotiable:

  • Unlimited QR code generation — there is no technical reason to limit this
  • Dynamic QR codes — every QR code should point to a manageable short link
  • Download in multiple formats — SVG, PNG at minimum

Worth paying for:

  • Custom colors and branding on the QR code itself
  • Logo embedding (center overlay)
  • Analytics tied to QR vs. direct link clicks
  • Batch generation for multi-location campaigns

Red flags:

  • Per-QR-code pricing
  • QR codes as a separate add-on or tier
  • “Dynamic” vs. “static” QR codes as different products (they’re not)

The Bottom Line

A QR code is a 30-year-old encoding format built on an open spec that costs fractions of a penny to generate. There is no universe where charging $29/month for them makes economic sense — for you, the customer.

The platforms that gate QR codes behind paywalls aren’t doing it because QR codes are expensive. They’re doing it because you’ll pay for them. The feature is the lock, not the key.

Your link shortener should generate QR codes the same way it generates short links: instantly, unlimitedly, and as a standard part of the plan you’re already paying for — not as an upsell.

Because a URL is a URL is a URL — whether it’s rendered as text or as a grid of squares.