Title: Plugnova Link Shortener &amp; QR
Author: plugnova
Published: <strong>21 สิงหาคม 2026</strong>
Last modified: 13 กันยายน 2026

---

Search plugins

![](https://ps.w.org/plugnova-link-shortener-qr/assets/banner-772x250.png?rev=3658683)

![](https://ps.w.org/plugnova-link-shortener-qr/assets/icon-256x256.png?rev=3658683)

# Plugnova Link Shortener & QR

 By [plugnova](https://profiles.wordpress.org/plugnova/)

[Download](https://downloads.wordpress.org/plugin/plugnova-link-shortener-qr.1.0.0.zip)

 * [Details](https://th.wordpress.org/plugins/plugnova-link-shortener-qr/#description)
 * [Reviews](https://th.wordpress.org/plugins/plugnova-link-shortener-qr/#reviews)
 *  [Installation](https://th.wordpress.org/plugins/plugnova-link-shortener-qr/#installation)
 * [Development](https://th.wordpress.org/plugins/plugnova-link-shortener-qr/#developers)

 [Support](https://wordpress.org/support/plugin/plugnova-link-shortener-qr/)

## Description

**Plugnova Link Shortener & QR is a complete link shortener for WordPress.** Instead
of paying a monthly fee to a hosted URL shortener service, you shorten links on 
your own domain, keep every click in your own database, and hand nothing to a third
party.

Create short, branded links such as `yoursite.com/go/offer` in seconds. Every short
link can automatically generate a customizable QR code, and every click is recorded
with the detail you would expect from a paid link shortener: device, browser, operating
system, referrer and UTM parameters — all stored locally, with no external visitor
tracking.

#### Why use a self-hosted link shortener?

 * **Your brand, not theirs** — links read `yoursite.com/go/offer` instead of a 
   generic shortener domain.
 * **No monthly fee and no link limits** — create as many short links as you need.
 * **You own the data** — link and analytics data live in your own WordPress database.
 * **Nothing disappears** — hosted shorteners expire links and lock analytics behind
   upgrades; your links last as long as your site does.
 * **Privacy by default** — visitor IP addresses are never stored, and no per-visitor
   request leaves your server.
 * **Affiliate-friendly** — manage affiliate links, track campaigns and monitor 
   destination health.
 * **Bio Link pages included** — build link-in-bio pages on your own site, no extra
   service needed.

#### Link shortening & QR codes

 * Unlimited short links with random or custom slugs
 * Automatic QR code generation (PNG or SVG) with square/rounded/circle styles, 
   custom colors, and an optional brand-logo band
 * Optional caption text baked directly into the QR image (e.g. “Check Price on 
   Amazon”) — ideal for videos and thumbnails
 * Multi-destination URL rotation (Round Robin, Random, or Weighted Random) with
   per-destination analytics and an optional fallback URL
 * 301 / 302 / 307 redirect types
 * Password-protected links, expiration dates, and click limits
 * Geo (country) and device targeting rules — send visitors to different URLs based
   on where they are or what they’re using
 * Quick Add: paste a URL and press Enter to create a link instantly
 * Bulk actions: enable/disable, trash/restore/delete, regenerate QR, set category,
   add tag, export selected
 * Filters by status, category, tag, color label, favorite, link health, and creation
   date
 * Broken-link checker with a Smart Link Score — on-demand always, and on an optional,
   off-by-default daily schedule (see “External services” below)

#### Smart Bio Link pages

 * Link-in-bio landing pages at your own domain (`/bio/your-name`)
 * Drag-and-drop buttons, product-card buttons (image + text), link groups (accordions),
   and a social-icon row
 * Announcement bar, countdown timer, floating contact buttons, campaign scheduling,
   and per-button country/device visibility
 * Optional email-capture gate and password protection
 * Ready-made templates, one-click import/export, and a live preview while editing
 * Per-page and per-button analytics

#### Analytics & tracking

 * Real-time click/view analytics: device, browser, OS, referrer (categorized), 
   and UTM breakdowns, with a date-range picker and optional bot inclusion
 * QR-scan vs. direct-traffic split
 * Offline GeoIP country detection — visitor IPs never leave your server
 * Bot/crawler filtering — link-preview and search-engine bots are excluded from
   counts
 * Unique and bot-filtered click counts
 * CSV export of links and of analytics

#### Affiliate & content tools

Plugnova Link Shortener & QR is built for affiliate marketers, content creators,
bloggers and publishers.

 * Keyword auto-linking — automatically link chosen keywords in your post content
 * Short, branded affiliate URLs with click and campaign analytics
 * QR codes for affiliate campaigns, print material and video thumbnails
 * UTM parameter tracking and broken-destination checking
 * Bulk CSV import and migration from Pretty Links / ThirstyAffiliates

#### Developer tools

 * Full REST API (`/wp-json/qlqr/v1/`) secured with capability checks and rate limiting
 * Shortcodes: `[qlqr]`, `[qlqr_qr]`, `[qlqr_button]`, `[qlqr_stats]`, `[qlqr_bio]`,`[
   qlqr_bio_qr]`
 * Activity Log audit trail, Database Repair Tool, and a System Health checker

#### Privacy

 * IP addresses are never stored — only a salted, one-way SHA-256 hash
 * No per-visitor external requests; all redirects, QR generation, and geolocation
   happen on your own server
 * Clean uninstall routine with opt-in data removal

### External services

This plugin relies on three external services, detailed below.

**Freemius (licensing and update SDK)**

This plugin uses the Freemius SDK to manage plugin updates, licensing for the premium
version,
 and (only if you opt in) anonymous usage data used to improve the plugin
and offer support.

On activation, an administrator is shown a one-time opt-in screen asking permission
to connect the
 site to Freemius. Connecting sends non-sensitive data such as this
site’s URL, admin email, WordPress and PHP versions, and this plugin’s version —
never post content, visitor data, or link/analytics data stored by this plugin. 
An administrator may skip connecting; the plugin remains fully usable, and Freemius
still performs basic update checks for the plugin itself.

 * Service: Freemius, https://freemius.com/
 * Terms of use: https://freemius.com/terms/
 * Privacy policy: https://freemius.com/privacy/

**GeoIP country dataset (npm registry)**

This service is used to power the optional, offline “Top Countries” analytics report.
The plugin
 downloads a public IP-to-country dataset once and looks up visitor countries
locally afterwards — no per-visitor lookup is ever sent anywhere.

This service is called only when a site administrator clicks “Download / Update 
Database” on the
 Settings screen. It is never called automatically, on a schedule,
or in response to a visitor. If that button is never clicked, this plugin makes 
no request to this service at all, and the Top Countries report simply stays empty.

What is sent: a plain package-download request for the `@ip-location-db/asn-country`
package —
 no visitor data, IP address, or site data of any kind.

The dataset itself is released into the public domain (CC0) by the ip-location-db
project:
 https://github.com/sapics/ip-location-db

 * Service: npm registry, https://registry.npmjs.org/
 * Terms of use: https://docs.npmjs.com/policies/terms
 * Privacy policy: https://docs.npmjs.com/policies/privacy

**Link destination check (broken-link checker)**

This service check is used to tell you whether a short link’s own destination is
still online. The
 “destination” is whichever URL you yourself configured as a link’s
target when creating it — this plugin does not call any single fixed third-party
service for this feature, but rather whatever destination URLs you have added.

This is off by default. It is called only when a site administrator either clicks“
Check All Links”
 on the Links screen (a one-time, on-demand check), or turns on“
Automatically check for broken links” on the Settings screen (a daily scheduled 
check, which can be turned off again at any time). It is never called automatically
before that setting is turned on, and never in response to a visitor.

What is sent: a standard HTTP GET request to the destination URL, with a generic
User-Agent string
 identifying the plugin (no site-identifying information, such
as this site’s own URL, is included). No visitor data is ever sent.

If the setting is never turned on and “Check All Links” is never clicked, this plugin
makes no such
 request at all.

If you never click that button and never turn the setting on, the plugin makes no
such requests at all.

### Support

For bug reports, questions and feature requests, please use the
 support forum for
this plugin on WordPress.org.

## Screenshots

[⌊The Links dashboard with per-link QR codes, click trends, and Smart Link Score.⌉⌊
The Links dashboard with per-link QR codes, click trends, and Smart Link Score.⌉[

The Links dashboard with per-link QR codes, click trends, and Smart Link Score.

[⌊The create/edit link modal with QR styling, targeting rules, and scheduling.⌉⌊
The create/edit link modal with QR styling, targeting rules, and scheduling.⌉[

The create/edit link modal with QR styling, targeting rules, and scheduling.

[⌊Per-link analytics with device/browser/country/referrer/UTM breakdowns.⌉⌊Per-link
analytics with device/browser/country/referrer/UTM breakdowns.⌉[

Per-link analytics with device/browser/country/referrer/UTM breakdowns.

[⌊The Smart Bio Link page builder with live preview.⌉⌊The Smart Bio Link page builder
with live preview.⌉[

The Smart Bio Link page builder with live preview.

[⌊A published Smart Bio Link page.⌉⌊A published Smart Bio Link page.⌉[

A published Smart Bio Link page.

[⌊Settings, including System Health and the Database Repair Tool.⌉⌊Settings, including
System Health and the Database Repair Tool.⌉[

Settings, including System Health and the Database Repair Tool.

## Installation

 1. Install **Plugnova Link Shortener & QR** from the WordPress Plugins screen, or 
    upload the `plugnova-link-shortener-qr` folder to `/wp-content/plugins/`.
 2. Activate the plugin through the **Plugins** menu in WordPress.
 3. Go to **Plugnova Link Shortener & QR > Settings** to configure your URL prefix 
    and QR code defaults.
 4. Go to **Plugnova Link Shortener & QR > Links** to create your first short link.

Short links and Bio Link pages rely on WordPress pretty permalinks. If your Permalinks
setting is “Plain”, change it to any other option.

## FAQ

### Is Plugnova Link Shortener & QR self-hosted?

Yes. Short links, QR codes and analytics are created and stored on your own WordPress
site, in your own database.

### Can I create unlimited short links?

Yes. There is no limit on the number of short links.

### Can I use my own domain?

Yes. Short links use your WordPress site’s own domain, so they are branded to you
rather than to a shortener service.

### Does every short link get a QR code?

Yes. A QR code can be generated automatically for every short link, and customized
with different styles, colors and optional branding.

### Can I use custom slugs?

Yes. Slugs can be random or custom.

### Can I protect a short link with a password?

Yes. Password protection is available for both short links and Bio Link pages.

### Can links expire?

Yes. You can set expiration dates and click limits per link.

### Can I redirect visitors based on country or device?

Yes. Geo (country) and device targeting rules can send visitors to different destinations
from the same short link.

### Can one short link use multiple destinations?

Yes. Multi-destination rotation supports Round Robin, Random and Weighted Random
routing, with per-destination analytics and an optional fallback URL.

### Can I create a Bio Link page?

Yes. Smart Bio Link pages are built in, and live at your own domain (for example`
yoursite.com/bio/your-name`).

### Can I migrate from Pretty Links or ThirstyAffiliates?

Yes. Migration from both Pretty Links and ThirstyAffiliates is supported, alongside
bulk CSV import.

### Are visitor IP addresses stored?

No. Only a one-way SHA-256 hash (salted with your site’s AUTH_SALT) is stored, so
individual visitors cannot be identified or tracked across sites.

### Does this require any external services?

No per-visitor external calls are ever made. The only external requests are optional
and administrator-triggered — see the “External services” section above.

### Where are QR codes stored?

Generated QR images are saved to `wp-content/uploads/plugnova-link-shortener-qr/`.

### How does password protection remember a visitor?

When a visitor enters the correct password for a link or bio page, the plugin sets
a signed, HTTP-only cookie (keyed with your site’s secret salt) so they aren’t re-
prompted on the next view. It does not use PHP sessions. Changing a link’s password
automatically invalidates existing unlock cookies.

### Why does this need PHP 8.1?

The plugin’s data objects are built on readonly properties, which PHP added in 8.1.
They are what guarantee a link, click or bio page cannot be altered after it has
been loaded from the database — the safety that lets the rest of the code stay simple.
Supporting 8.0 would mean giving that up throughout.

PHP 8.0 and everything before it reached end of life some time ago and no longer
receive security fixes, so 8.1 is a floor rather than a stretch. Most managed WordPress
hosts default to 8.1 or newer; if yours is older, your host can usually switch the
version from your control panel in a click.

### Will short links work on my host?

Short links and bio pages rely on WordPress pretty permalinks. If your Permalinks
setting is “Plain”, set it to any other option. The built-in System Health checker(
Settings tab) flags this and other common hosting issues for you.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Plugnova Link Shortener & QR” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ plugnova ](https://profiles.wordpress.org/plugnova/)
 *   [ Freemius ](https://profiles.wordpress.org/freemius/)

[Translate “Plugnova Link Shortener & QR” into your language.](https://translate.wordpress.org/projects/wp-plugins/plugnova-link-shortener-qr)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/plugnova-link-shortener-qr/),
check out the [SVN repository](https://plugins.svn.wordpress.org/plugnova-link-shortener-qr/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/plugnova-link-shortener-qr/)
by [RSS](https://plugins.trac.wordpress.org/log/plugnova-link-shortener-qr/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.
 * Link shortening with random or custom slugs, 301/302/307 redirects, password 
   protection, expiry dates and click limits.
 * Automatic QR codes (PNG or SVG) with square/rounded/circle styles, custom colours,
   an optional brand-logo band and baked-in caption text.
 * Multi-destination rotation (round robin, random, weighted random) with per-destination
   analytics and a fallback URL.
 * Geo and device targeting rules, backed by an offline IP-to-country database you
   install with one click.
 * Smart Bio Link pages: drag-and-drop buttons, product cards, link groups, social
   row, announcement bar, countdown timer, floating contact buttons, campaign scheduling,
   email capture, password protection, themes and live preview.
 * Click and view analytics: charts over time, device/browser/OS/country/referrer/
   UTM breakdowns, unique and bot-filtered counts, QR-scan vs. direct split, and
   CSV export.
 * Keyword auto-linking, broken-link checker with a Smart Link Score, and a live
   destination preview.
 * Bulk CSV import plus migration from Pretty Links and ThirstyAffiliates.
 * Activity Log audit trail, Database Repair Tool and System Health checker.
 * REST API under /wp-json/qlqr/v1/ and the [qlqr], [qlqr_qr], [qlqr_button], [qlqr_stats],[
   qlqr_bio] and [qlqr_bio_qr] shortcodes.

## Meta

 *  Version **1.0.0**
 *  Last updated **5 วัน ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.8 or higher **
 *  Tested up to **7.0.5**
 *  PHP version ** 8.1 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/plugnova-link-shortener-qr/)
 * Tags
 * [affiliate links](https://th.wordpress.org/plugins/tags/affiliate-links/)[bio link](https://th.wordpress.org/plugins/tags/bio-link/)
   [link shortener](https://th.wordpress.org/plugins/tags/link-shortener/)[qr code](https://th.wordpress.org/plugins/tags/qr-code/)
   [url shortener](https://th.wordpress.org/plugins/tags/url-shortener/)
 *  [Advanced View](https://th.wordpress.org/plugins/plugnova-link-shortener-qr/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/plugnova-link-shortener-qr/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/plugnova-link-shortener-qr/reviews/)

## Contributors

 *   [ plugnova ](https://profiles.wordpress.org/plugnova/)
 *   [ Freemius ](https://profiles.wordpress.org/freemius/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/plugnova-link-shortener-qr/)