Affiliate Link Management in WordPress: Organize, Track, Optimize

Affiliate Link Management in WordPress: Organize, Track, Optimize

By KaizenCoders

By the end of this post you'll have a four-step loop for affiliate link management on WordPress: organize, track, optimize, maintain — each tied to a specific menu path inside URL Shortify so you can run it on a real site, not just nod along to a concept.

Most posts on this topic stop at step one. They tell you affiliate links should be cloaked and tagged, then list four plugins and let you figure the rest out. We'll do all four steps with the settings that actually matter, then close with the maintenance loop that keeps a site with 500 links from quietly bleeding commissions.

Three failure modes show up on almost every site that's been running affiliate content for more than a year:

  • Scattered raw URLs. Naked Amazon, ShareASale, and CJ links pasted into 200 posts. When a program changes its URL format — or you change networks — you're editing posts one at a time for a week.
  • No idea which links convert. Total clicks across the site is a vanity metric. Without per-link UTMs and per-program click reports, you can't answer "which three links pay rent?" — and that's the only question that matters when you're deciding what to double down on.
  • No system for catching dead programs. Affiliate programs shut down, get acquired, change URL structures, and stop paying without warning. Sites that don't scan for broken links discover the breakage in their next monthly statement, after the lost commissions are already gone.

A working management system fixes all three. Each of the steps below maps to one of these failure modes.

Step 1 — Organize

The goal here is a structure that survives 500 links. Two pieces: tags and cloaked slugs.

Tags as a category schema

Go to URL Shortify → Tags → Add New and create one tag per affiliate program or category. A schema that scales:

  • amazon — Amazon Associates links
  • software — SaaS affiliate programs
  • hosting — hosting affiliates
  • courses — course / info-product programs
  • archived — programs you've stopped promoting (don't delete, just demote)

Each tag has a colour you set on creation. On the links table, tags appear as colour-coded badges — clicking a badge instantly filters the table to just that program's links. That's the daily-use payoff: when Amazon changes its associate ID format, you click the amazon badge and you're looking at exactly the rows you need.

Assign tags when creating a link, or in bulk: tick the rows on the links table, open Bulk Actions → Add Tag, pick the tag, Apply. See the Link Tags guide for the full UI walkthrough.

Cloaked slugs with a naming convention

Raw affiliate URLs look like https://www.amazon.com/dp/B08XYZ?tag=yoursite-20 — ugly, untrustworthy, and impossible to remember. Cloaking turns them into yoursite.com/go/wireless-mouse.

Pick a slug convention before you have 50 links, not after. A pattern that holds up:

/go/<vendor>-<product-keyword>
/recommend/<vendor>-<product-keyword>

So amazon Amazon links live under /go/amazon-..., software under /go/software-.... Future-you will thank present-you when you're scanning a list of 500 short links and the slug tells you what the link is without clicking.

Set up cloaking when creating a link: URL Shortify → Links → Add New, set Redirection to Cloak, and the destination stays hidden behind your own domain. Full setup in the Link Cloaking docs.

Step 2 — Track

Organizing without tracking is filing without reading. The job in step 2 is making your data answer one question: which three links pay rent?

UTM presets, not hand-typed UTMs

Hand-typing ?utm_source=blog&utm_medium=affiliate&utm_campaign=spring-2026 for every link is how typos get into your reports. UTM Presets let you save the parameter set once and apply it from a dropdown.

Create one at URL Shortify → UTM Presets → Add New. Name it after the campaign (spring-2026-affiliate), fill the source/medium/campaign/term/content fields, save. When you create a new short link, the UTM Preset dropdown lets you apply the whole set with one click. The full setup is in UTM Presets.

A working schema for affiliate posts:

Field Value
utm_source the post slug or section (headphones-review)
utm_medium always affiliate
utm_campaign program name (amazon, bluehost)
utm_content position on the page (button, inline-1, comparison-table)

The utm_content field is the one most people skip. It's the one that tells you whether your "Buy on Amazon" button outperforms the inline link three paragraphs up.

Enable tracking on each link (Tracking toggle on the link form) and the link's stats page records clicks, geographic data, referrers, and devices. Per-link reports surface the obvious losers (links with 0 clicks after a month) and the obvious winners (one link doing 40% of total volume). Both lists are useful — the long tail is what you cut, the head is what you optimize. The full feature reference is in Link Tracking.

Step 3 — Optimize

You've organized, you've tracked. Now you have data. Step 3 is what to do with it.

A/B test two offers in the same slot

If your "best wireless mouse" post has one Amazon link, you have one offer. You don't know if a B&H link, a manufacturer link, or a Walmart link would pay better at the same volume.

A/B testing on a single short link splits traffic between two destinations and tracks which converts better. Setup:

  1. URL Shortify → Links — open the link to edit.
  2. Scroll to Advanced and set Dynamic Redirect to Link Rotation.
  3. Add a second target URL (a different program, same product).
  4. Set the weight (start with 50/50).
  5. If you have a conversion event, configure a Goal Link so the stats page tracks conversions, not just clicks.

Two weeks of even moderate traffic is usually enough to call a winner. Update the link to use the winning destination at 100% and move on. Full walkthrough in A/B Testing.

Slightly different from A/B testing: link rotation distributes traffic across multiple destinations permanently, weighted however you want. The use case for affiliate sites is a category page with 100 hits a day where you want to test which program pays best on raw clicks.

Set 33/33/33 across three programs for two weeks, look at the click → commission rate per program, then re-weight toward the winner. Same setup as A/B but with the weights tuned for ongoing distribution rather than a clean test. See Link Rotations for the weight model.

Step 4 — Maintain

This is the step every other post on this topic skips, and it's the one that pays back the most over time.

Affiliate programs die. URL formats change. Products go out of stock and the vendor returns a 404 instead of a redirect. A site that doesn't scan for these finds out months later, after Google has already started downranking the page.

Configure scanning at URL Shortify → Settings → Links → Broken Links:

  • Scan frequency: Weekly is the right default for any site with under 500 links. Daily is overkill; monthly is too slow.
  • The scanner runs in the background using Action Scheduler — it doesn't slow your site down for visitors.
  • Results show on URL Shortify → Broken Links with summary statistics and per-link detail.

When you see broken links, fix them at the URL Shortify level — change the Target URL on the short link, and every post on your site that uses that short link now redirects to the new destination. One edit, site-wide fix. Full setup in Broken Link Checker.

The email digest so you don't have to log in

Set up the email digest at URL Shortify → Settings → Reports → Email Digest. Toggle it on, pick weekly, pick a day. You get a summary of clicks, top links, top locations, and top devices in your inbox without opening WordPress. The point isn't the data — you've already got the data — the point is the trigger. If a Monday morning email shows clicks dropped 60% week-over-week, you investigate. If it shows everything's fine, you move on with your week.

Full options in Email Digest.

If you're reading this because you've outgrown another plugin, the migration question is the one nobody answers cleanly: how do you move 300 existing short links without rewriting every post?

Export the existing links from the old plugin as CSV (Pretty Links: Tools → Export; ThirstyAffiliates: Manage Links → Export). Re-import via URL Shortify → Links → Import Links. The two CSVs need column mapping — check the CSV import guide for the expected format.

Match the existing slug structure on import (/go/... stays /go/...) and your old links keep working without touching the posts. The redirect targets are now under URL Shortify, so future destination changes happen in one place.

What to do next

You don't need to do all four steps today. A 30-minute first pass that gets you started:

  1. Tag your top 20 links. Open URL Shortify → Links, sort by clicks, create three or four tags, assign them. That alone makes the next steps much faster.
  2. Add a UTM preset and apply it to the top 5. One preset, five edits. You'll have data flowing into Google Analytics within a day.
  3. Schedule the broken-link scan. Weekly, Mondays, URL Shortify → Settings → Links. Set it once and forget.

That's the foundation. The optimization layer (A/B tests, rotations) is worth doing only after you've watched click data for a week or two — premature A/B tests on no data are how you make confident decisions on noise.

If you're starting from zero, install URL Shortify and run through the four steps in order. Each one takes 15-30 minutes; the whole loop runs unattended after the first pass.