Title: URL Shortener – Nano URLs: Branded Short Links, Click Tracking &amp; Redirects
Author: fahdchouki
Published: <strong>August 18, 2026</strong>
Last modified: August 18, 2026

---

Search plugins

![](https://ps.w.org/nano-urls/assets/banner-772x250.png?rev=3652590)

![](https://ps.w.org/nano-urls/assets/icon-256x256.png?rev=3652590)

# URL Shortener – Nano URLs: Branded Short Links, Click Tracking & Redirects

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

[Download](https://downloads.wordpress.org/plugin/nano-urls.1.0.2.zip)

 * [Details](https://wordpress.org/plugins/nano-urls/#description)
 * [Reviews](https://wordpress.org/plugins/nano-urls/#reviews)
 *  [Installation](https://wordpress.org/plugins/nano-urls/#installation)
 * [Development](https://wordpress.org/plugins/nano-urls/#developers)

 [Support](https://wordpress.org/support/plugin/nano-urls/)

## Description

Nano URLs turns any post, page, product or external address into a short link served
from your own domain. Nothing is sent anywhere else: the codes, the redirects, the
statistics and the API all live inside your WordPress install.

#### The shortest links possible

Codes are handed out from a counter rendered in base 62, starting at a single character.
The first links on a new site look like `example.com/0`, `example.com/a`, `example.
com/Z`. A code only grows to two characters once every one character code is taken,
and to three once every two character code is taken. That is 62 links at one character,
3,844 at two, 238,328 at three, and 14.7 million at four.

Codes that would clash with something real are skipped automatically, so a link 
is never handed out that WordPress cannot serve. That covers existing posts, pages
and categories, the WordPress paths such as `wp-admin` and `wp-json`, feeds, common
shop URLs, and any word you add yourself. Once a code is in use, WordPress is stopped
from giving that slug to a post created later, so a link you have already shared
cannot be taken away from you.

#### Built to be fast

A short link is answered on `plugins_loaded`, before the theme is loaded, before
the main query runs and before a single block is registered. The whole request is
one cached lookup and a redirect header. On sites with a persistent object cache
such as Redis or Memcached, a repeat click does not touch the database at all.

Click statistics are written after the response has been handed back to the visitor,
using `fastcgi_finish_request()` where the host supports it, so counting a click
costs the visitor nothing.

#### One click in the editor

 * A **Short URL** panel in the block editor, and a meta box in the classic editor,
   with a single button that creates the link and a second that copies it.
 * A **Short URL** column on the posts, pages and products list screens, with the
   same generate and copy buttons on every row.
 * An admin bar entry on the front end.
 * A quick shorten form on the plugin’s own screen for any other address.

Works with any public post type, so WooCommerce products, custom post types and 
anything else are covered without configuration.

#### A real API

A REST namespace at `nano-urls/v1` with endpoints to create, list, read, update,
delete and expand links, plus daily click counts. Authenticate with an API key issued
on the plugin’s API screen, an application password, or a logged in cookie with 
a nonce. Keys are stored as hashes and act with the permissions of the user they
belong to.

There are template tags too, for use in themes and other plugins:

    ```
    $short = nanourls_shorten( 'https://example.com/page' );
    $short = nanourls_get_short_url( $post_id, true );
    $target = nanourls_expand( 'a7' );
    ```

#### Privacy

This plugin makes no external connections of any kind. Click statistics are a running
total and a count per day per link. No IP addresses, user agents, referrers or any
other personal data are stored.

## Screenshots

[⌊The links screen, with the quick shorten form and every link at a glance.⌉⌊The
links screen, with the quick shorten form and every link at a glance.⌉[

The links screen, with the quick shorten form and every link at a glance.

[⌊Settings: link structure, redirects, performance and access.⌉⌊Settings: link structure,
redirects, performance and access.⌉[

Settings: link structure, redirects, performance and access.

[⌊The API screen, with key management and endpoint documentation.⌉⌊The API screen,
with key management and endpoint documentation.⌉[

The API screen, with key management and endpoint documentation.

[⌊The Short URL column on the posts list, with generate and copy on each row.⌉⌊The
Short URL column on the posts list, with generate and copy on each row.⌉[

The Short URL column on the posts list, with generate and copy on each row.

## Installation

 1. Upload the `nano-urls` folder to `/wp-content/plugins/`, or install the plugin 
    through the Plugins screen in WordPress.
 2. Activate the plugin through the Plugins screen.
 3. Make sure Settings  Permalinks is set to anything other than Plain. Short links
    are served from your site root and need pretty permalinks.
 4. Open Nano URLs  Settings to choose your link style, or keep the defaults and start
    shortening.

## FAQ

### Will a short link ever clash with a real page?

No. Before a code is handed out it is checked against existing post slugs, category
and tag slugs, files and folders in your web root, WordPress reserved paths and 
your own reserved word list. On top of that, when WordPress later tries to give 
a post a slug that matches a code already in use, the plugin nudges the post to 
a different slug so the shared link keeps working.

### Can I keep short links in their own folder?

Yes. Set a path prefix such as `s` or `go` under Nano URLs  Settings and links become`
example.com/s/a7`. Leaving it empty gives the shortest possible link, straight from
the site root.

### Can I use a separate short domain?

Yes, if you own a domain that points at this same WordPress install. Add it as the
short domain in the settings and generated links use it. The plugin does not register
or configure domains for you.

### Do short links work with WooCommerce products?

Yes. Every public post type is supported, products included. The Short URL column
appears on the Products screen and the panel appears in the product editor.

### What happens when I change a post’s permalink?

Nothing breaks. Links attached to a post follow that post, and the stored destination
is refreshed whenever the post is saved or republished.

### What happens if I delete a post?

Its short link is removed with it. Use the `nanourls_delete_links_with_post` filter
if you would rather keep it.

### Are the codes guessable?

Short codes are sequential by design, because that is what makes them short. Anyone
who tries `example.com/1`, `example.com/2` and so on will find your links. Do not
use a short link as a secret. If you want codes that are harder to walk through,
raise the minimum code length in the settings.

### Does it work with plain permalinks?

Path based short links need pretty permalinks. With plain permalinks the plugin 
still resolves `example.com/?nu=a7`, and the settings screen will tell you.

### Does it slow my site down?

No. On ordinary page loads the plugin does one cached check on the request path 
and then gets out of the way. Admin assets load only on the screens that use them,
and the REST controller is only loaded on REST requests.

### Is my data deleted when I remove the plugin?

Only if you ask for it. Tick “delete all data on uninstall” in the settings first.
Otherwise your links and statistics survive a deactivate or delete.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“URL Shortener – Nano URLs: Branded Short Links, Click Tracking & Redirects” is 
open source software. The following people have contributed to this plugin.

Contributors

 *   [ fahdchouki ](https://profiles.wordpress.org/fahdchouki/)

[Translate “URL Shortener – Nano URLs: Branded Short Links, Click Tracking & Redirects” into your language.](https://translate.wordpress.org/projects/wp-plugins/nano-urls)

### Interested in development?

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

## Changelog

#### 1.0.2

 * Clearer plugin name. No functional changes.

#### 1.0.1

 * Renamed the plugin to Nano URLs – URL Shortener. No functional changes.

#### 1.0.0

 * First release.
 * Shortest available code allocation in base 62, base 36 or a no lookalikes character
   set.
 * Collision safe codes, with post slug protection for codes already in use.
 * Redirects answered before the theme loads, with deferred click counting.
 * Block editor panel, classic meta box, list table column and admin bar entry.
 * REST API with hashed API keys, plus template tags.
 * Per link statistics, custom codes, expiry dates, per link redirect status.
 * CSV export, multisite support, full uninstall control.

## Meta

 *  Version **1.0.2**
 *  Last updated **22 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 7.0 or higher **
 * Tags
 * [link management](https://wordpress.org/plugins/tags/link-management/)[redirect](https://wordpress.org/plugins/tags/redirect/)
   [short links](https://wordpress.org/plugins/tags/short-links/)[shortlink](https://wordpress.org/plugins/tags/shortlink/)
   [url shortener](https://wordpress.org/plugins/tags/url-shortener/)
 *  [Advanced View](https://wordpress.org/plugins/nano-urls/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/nano-urls/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/nano-urls/reviews/)

## Contributors

 *   [ fahdchouki ](https://profiles.wordpress.org/fahdchouki/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/nano-urls/)