Skip to content
PLUGIN · AFFILIATELINKMANAGER v1.0.0 May 2026
// Marketing

Affiliate Link Manager

Cloak, track, and analyze every outbound affiliate link.

Cloak, track, and analyze every outbound affiliate link from a clean WordPress dashboard. Pretty URLs on your own domain, per-link click counts, 30-day history charts, and CSV export. No third-party SaaS. No subscription. No tracking pixels.

Version 1.0.0
Requires WP 6.0+
Tested up to 6.9.4
License GPL-2.0+
// LIVE DEMO · FULLY FUNCTIONAL

A working version, running here.

This is the actual plugin functionality, embedded in this page. Paste any URL on the left. Get a real cloaked URL on the right that resolves through this domain. Click Test the redirect and the link works exactly as it would on your own site.

Any http or https URL. URL shorteners and IP addresses are blocked. Generated links are valid for one hour.

How this demo works

  1. You paste a URL. Validation rejects javascript:, data:, file: schemes, IP addresses, and URL shorteners.
  2. The server generates a random eight-character slug and stores the destination in a transient (short-lived cache) keyed to that slug.
  3. Visiting the cloaked URL on this domain pulls the destination from the transient and redirects.
  4. Because this is a public demo, every cloaked URL shows a confirmation page first that displays the destination domain. The real plugin redirects without an interstitial.
  5. Generated links live for one hour, then the transient expires and the link goes dead.

If you publish anything on the internet, you probably have affiliate links somewhere. Amazon links in a review post. SaaS referral codes on a resources page. A sponsorship URL in your sidebar. Most of those URLs are long, ugly, easy to break, and impossible to update without editing every post that uses them.

Affiliate Link Manager turns each of those URLs into a clean redirect on your own domain. Instead of pasting the long affiliate URL into a post, you create a short slug like /go/asus-laptop. The plugin handles the redirect, counts every click, and lets you swap the destination at any time without touching a single post that uses the link.

The free version on WordPress.org gives you cloaking, click counting, and the right rel attributes. Pro adds a 30-day click history chart per link, CSV export, link names, and a configurable URL prefix.

// What it looks like

A look at the admin.

A representative view of the admin interface. Real screenshots coming soon.
// What's included

What you get, free or Pro.

Feature Free Pro
Clean cloaked URLs on your own domain
Per-link total click counter
301 / 302 redirect choice per link
rel="nofollow sponsored" toggle per link
Auto-slug generation
Copy-to-clipboard with HTTP fallback
Destination URL validation (blocks javascript:, data:)
Developer hooks (filters)
Link names — internal labels separate from the slug
30-day click history chart per link
Daily click log table for trend analysis
CSV export (UTF-8 BOM, opens cleanly in Excel)
Configurable URL prefix (/go/, /out/, /recommend/...)
Per-link Stats view with summary cards
License-managed updates and site transfer
// Documentation

Everything you need, written by hand.

Read top to bottom, or jump to the section you're after.

Quick start

Install the plugin from the WordPress directory and activate it. A new Affiliate Links menu item appears in your admin sidebar. Click it, fill in a slug and a destination URL, and save. Your first cloaked link is live immediately at yourdomain.com/go/your-slug.

That's the entire setup. No onboarding wizard, no account creation, no API key.

Each link has a few fields:

Link Name (Pro only) — an internal label. Useful when you have several links pointing at variations of the same product or campaign. Free users skip this and just use the slug as the identifier.

Slug — the URL segment after your prefix. Letters, numbers, and hyphens only. Auto-generated from the name in Pro if you leave it blank. Required.

Destination URL — the long affiliate URL the slug should redirect to. Must start with http:// or https://. Anything else is rejected at save time to prevent javascript: and data: URL attacks.

Redirect Type — 301 (permanent, default) or 302 (temporary). Use 301 for permanent placements like a review post you don't intend to change. Use 302 for testing or rotating links where you might swap the destination later, since 301s get cached aggressively by browsers.

Nofollow — when checked, the redirect carries rel="nofollow sponsored" attribute compliance for FTC and Google's sponsored-content guidelines. Recommended for most affiliate links. On by default.

After saving, the new link appears in the table on the same page with a Copy button next to its short URL. Click Copy to put the cloaked URL on your clipboard and paste it into any post or page.

Settings reference

The settings page differs between Free and Pro.

Free version: all controls are on the single Affiliate Links page. The form for adding/editing links is at the top; the link list is below it. The URL prefix is fixed at /go/.

Pro version: the page has two tabs.

Links tab (Pro)

The default view. Shows summary cards (total links, total clicks), the link list with a Stats button per row, and an Export CSV action in the page header.

Settings tab (Pro)

Cloak prefix — the URL segment used for cloaked links. Default go, producing URLs like yoursite.com/go/your-slug. Change to out, recommend, r, or any other token. Letters, numbers, and hyphens only, max 32 characters. Saving immediately re-registers the rewrite rules — you don't need to manually flush permalinks.

License section — paste the key from your Lemon Squeezy purchase receipt and click Activate. The plugin contacts the Lemon Squeezy API once to register the site, then unlocks Pro features. To move the license to a different site, click Deactivate License on the current site first, which frees the seat.

The 30-day stats view (Pro)

Click Stats on any link in the Pro list to open its analytics view. The page shows:

  • The total click count for the link
  • A 30-day line chart of daily clicks, rendered with Chart.js
  • Days with no clicks are zero-filled, so the chart is continuous and trend lines are visible

The Chart.js library is only loaded on this page — the rest of the admin runs without any JavaScript dependencies.

The data behind the chart comes from a separate wp_alm_click_log table in your database. Every click writes one row with a date stamp. The chart aggregates by date for the requested window.

CSV export (Pro)

On the Pro Links tab, click Export CSV in the page header. You'll get a download named affiliate-links-YYYY-MM-DD.csv with one row per link. Columns:

  • Name
  • Short URL (the full cloaked URL with your domain and prefix)
  • Destination (the original affiliate URL)
  • Redirect type (301 or 302)
  • Nofollow (Yes/No)
  • Total clicks
  • Created date

The export is sorted by total clicks descending, so your top performers are at the top. Files are written with a UTF-8 BOM, which means Excel opens accented characters and currency symbols correctly without any import gymnastics.

The export does not include the daily click log — only the link list with totals. If you need raw daily click data, query the wp_alm_click_log table directly.

A live demo

The hero section above this page has a working version of the cloaker. Paste any URL into the field and the plugin will generate a real cloaked URL on this domain. Click it. The redirect works exactly the way it would on your own site. The demo is rate-limited and the cloaked URLs expire after an hour, but it's the actual plugin running with real settings.

Upgrading from free to Pro

Pro is a complete replacement for the free plugin, not an add-on. When you upload and activate Pro:

  1. The free version is automatically deactivated
  2. Pro reads the existing wp_alm_links table — your links and click totals are preserved
  3. The schema is upgraded: a name column is added, and existing links have their slug copied into the name field as a starting label so they're not blank
  4. The new wp_alm_click_log table is created (clicks recorded going forward will appear in charts)
  5. Rewrite rules are flushed so cloaked URLs continue to work without interruption

There's no manual migration step. The transition is seamless on activation.

Note that the daily click log only tracks clicks recorded after Pro is installed — the chart for the first 30 days post-upgrade will start empty for older links and fill in as new clicks come in.

Common workflows

Add a link to a blog post

Create the link in the admin (slug + destination URL). Copy the cloaked URL from the Copy button. Paste it as a regular link in your post. WordPress doesn't need to know it's a redirect — the post just contains a URL on your own domain.

Update a destination URL without editing posts

Edit the link in the admin and change just the Destination URL field. Save. Every post or page that links to the cloaked URL now redirects to the new destination. No post edits required.

Test a new affiliate before committing

Use a 302 redirect when you first set up the link. Browsers won't cache the redirect, so if you swap the destination, visitors get the new one immediately. Once you're sure the affiliate is working and converting, switch to 301 for the SEO benefit.

Use a custom prefix to match your site's voice (Pro)

In Settings → Cloak prefix, change go to recommend, partners, buy, or whatever fits. Cloaked URLs become yoursite.com/recommend/your-slug. Existing links keep working — only the prefix changes.

Skip tracking on internal monitoring (developers)

If you use uptime monitors that hit your cloaked URLs to verify they redirect, those clicks inflate your stats. Use the alm_should_track_click filter to skip tracking based on user agent. See the developer hooks section.

Troubleshooting

Cloaked URLs return 404

The rewrite rule isn't registered. Visit Settings → Permalinks in your WordPress admin and click Save (without changing anything). This re-flushes the rewrite rules. If that doesn't work, deactivate and reactivate the plugin — activation flushes rewrite rules automatically.

I changed the prefix but old URLs still work

Old URLs return 404 immediately after a prefix change. Saving the prefix automatically flushes rewrite rules. If you want both old and new prefixes to work during a transition, you'll need a redirect rule at the server level (an .htaccess rule on Apache, or an Nginx rewrite).

Click counts aren't incrementing

Check that the cloaked URL actually redirects when you click it — if it 404s instead, the rewrite isn't matching. If the redirect works but the count stays at zero, you may have a caching plugin or CDN that's serving the cloaked URL without hitting WordPress. Add an exclusion in the cache plugin for the prefix path (e.g. /go/*).

Pro 30-day chart is empty even though I have clicks

The daily click log only records clicks after Pro is installed. If you upgraded from free recently, the chart will start filling in as new clicks come through. The total click count carries over from the free version — that's why the totals don't match the chart for older links.

CSV opens with garbled accents in Excel

The export includes a UTF-8 BOM, which Excel needs to detect the encoding. If you're seeing garbled text, you might be opening it in a tool that strips the BOM, or you're on a much older Excel version. Try Excel 2016+ or open in Google Sheets, which handles UTF-8 natively.

Frequently asked questions

Does this slow down my site?

No. The plugin uses the WordPress rewrite system, so the redirect logic only runs when a cloaked URL is actually requested. Normal page loads are completely unaffected. Even on the cloaked URL itself, the work is one database read, one update, and a redirect — no template rendering, no plugin chain.

Is this compatible with caching plugins?

Yes. Redirects bypass page caches automatically because they happen at the WordPress rewrite layer, before page rendering. If a CDN is caching at the edge, you may need to exclude your prefix path (e.g. /go/*) from CDN caching, otherwise the CDN can serve the redirect without WordPress getting a chance to count the click.

What happens if I redirect to a javascript: or data: URL by mistake?

The plugin blocks any destination URL that doesn't start with http:// or https://. The save handler rejects it, and the redirect handler refuses to follow it.

Can I customize the cloak prefix?

In Pro, yes. The Settings tab has a Cloak prefix field. The default is go; you can change it to out, recommend, r, or any other URL-safe token. The free version is fixed at /go/.

Where is my data stored?

In one or two custom database tables on your own site. Free uses wp_alm_links. Pro adds wp_alm_click_log for daily click tracking. Nothing is sent externally. The Pro license check is the only outbound HTTP call — once on activation, once on deactivation, with the Lemon Squeezy API.

How do I uninstall completely?

Deactivate the plugin and delete it from the Plugins screen. The plugin's database tables and options are removed automatically by the uninstaller.

Developer hooks

Affiliate Link Manager exposes filters for integrations.

Filter: alm_should_track_click

Return false to skip click tracking for a specific request. Useful for excluding internal monitoring, bots, or specific user agents from inflating your click counts.

add_filter( 'alm_should_track_click', function( $should, $link ) {
    $ua = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
    if ( strpos( $ua, 'UptimeRobot' ) !== false ) {
        return false;
    }
    return $should;
}, 10, 2 );

Filter: alm_redirect_url

Modify the destination URL just before the redirect happens. Useful for appending UTM parameters, applying region-specific affiliate IDs, or rotating between several destinations.

add_filter( 'alm_redirect_url', function( $url, $link ) {
    return add_query_arg( array(
        'utm_source'   => 'mysite',
        'utm_campaign' => $link->slug,
    ), $url );
}, 10, 2 );

The filtered URL must still pass the http:// or https:// validation; if your filter returns something else, the request is rejected at wp_die.

Support

Questions, bug reports, and feature suggestions go to info@aurumane.com. Pro license holders get a faster reply. Free users get the same answer, just sometimes a day later. Either way, the reply comes from the developer who wrote the plugin.

// Coming soon

Affiliate Link Manager is on the way.

Drop a note and I'll let you know the day it ships.

Aurumane
A WordPress Plugin Studio
Manila, Philippines · UTC+8
Mail
info@aurumane.com
Web
aurumane.com
Reply
Within 24 hours, written by hand