How to Move from Pretty Links or ThirstyAffiliates
Switching link plugins sounds risky for a simple reason. Hundreds of posts already link to /recommends/product/ or /product/, and if those addresses stop redirecting, every one of those clicks earns nothing.
To move from Pretty Links or ThirstyAffiliates without breaking anything, you do 2 jobs. You import the links from a CSV export, and you set GT Link Manager up so the old addresses still resolve. Your posts keep their links exactly as they are.
GT Link Manager is my free link manager for WordPress. Its importer has a Pretty Links preset and maps any other CSV by hand. It can also answer on paths with or without a prefix, which is what keeps old addresses alive.
I’ll cover both plugins below, because they use different address styles. The importer itself is documented in Import & Export in GT Link Manager.
Before You Start
- A full backup of your site, or at least the database. You’ll switch the old plugin off near the end.
- GT Link Manager installed and active, next to the old plugin for now.
- An administrator account, because the address settings live under GT Links → Settings.
- A CSV export from the old plugin. The next section covers where to find it.
Export Your Old Links
Each plugin keeps its export in a different place.
Pretty Links: go to Pretty Links → Options → Tools and click Export Links to CSV. The file has columns such as id, slug, url, name, description, redirect_type, nofollow and sponsored.
ThirstyAffiliates: go to ThirstyAffiliates → Export CSV, choose all categories and click Export affiliate links. ThirstyAffiliates documents this export under its Pro add-on, so a free install may not show the screen. Its CSV uses headers such as Link Name, Destination URL, Slug and Categories.
Open the file in a spreadsheet before you import it. Two quick fixes save cleanup later:
- Add a
relcolumn withnofollow sponsoredin every row. You’ll map it in step 2 of the import, so every link gets both values. - Keep one category per row. ThirstyAffiliates separates several categories with semicolons, and GT Link Manager would create one category named
Gear;Deals. Keep the first one.
Save the file as CSV again. The importer takes files up to 5 MB, which holds thousands of links.
Import the Links
- Go to GT Links → Import / Export.
- Under Import (Step 1: Upload & Preview), choose your file in CSV File.
- Pick a Preset: Pretty Links for a Pretty Links file, Generic for a ThirstyAffiliates file.
- Click Preview CSV. The screen shows the first 5 rows as they sit in your file.
- Under Import (Step 2: Map Columns & Run), check each dropdown points at the right column:
- Name to
nameorLink Name - URL to
urlorDestination URL - Slug to
slugorSlug - Rel to the
relcolumn you added - Category to
Categoriesfor ThirstyAffiliates, if you use them - Notes to
descriptionfor Pretty Links
- Name to
- Set Duplicate Slug Handling to Skip existing for a first run.
- Click Run Import.

The notice reports what happened, such as “Import complete. Imported: 412, Updated: 0, Skipped: 3.” Rows without a name or a destination are skipped. Categories that don’t exist yet are created for you.
Redirect types carry over when they’re 301, 302 or 307. Pretty Links types such as cloaked, pixel or meta refresh become your default redirect type from Settings, because GT Link Manager only sends real HTTP redirects.
Keep the Old Addresses Working
The import doesn’t touch your posts. They still link to the old addresses, so GT Link Manager has to answer on those addresses once the old plugin is gone.
From ThirstyAffiliates
ThirstyAffiliates uses a prefix, recommends by default. You have two ways to keep /recommends/product/ working:
- Use the same prefix. Under GT Links → Settings, set Link prefix to
recommendsand save. Imported slugs then answer at the same addresses. This is the simplest route when all your links come from ThirstyAffiliates. - Keep
gofor new links and catch the old ones. Turn on Advanced redirects, then add one link with Link Mode set to Regex (pattern match), the pattern^recommends/(.+)$in Pattern,/go/$1in Regex Replacement and your homepage address in Destination URL. A visitor on/recommends/standing-desk/goes to/go/standing-desk/, which then redirects to the store.
The second route adds one extra hop per click, which costs a few milliseconds and keeps your new links tidy. Either way, change the prefix in the pattern if you had changed it in ThirstyAffiliates.
From Pretty Links
Pretty Links puts links at the root of your site, such as /standing-desk/, with no prefix. GT Link Manager calls these direct links.
- Under GT Links → Settings, tick Advanced redirects: “Allow prefix-free paths and regular expressions” and save.
- Before importing, add a
link_modecolumn to your CSV withdirectin every row. - In step 2 of the import, map Link Mode to that column.
Each link then answers at /standing-desk/ just as it did before. Direct links can’t use paths that WordPress reserves, such as wp-admin, wp-json or feed.
Switch Off the Old Plugin
- Deactivate Pretty Links or ThirstyAffiliates. Don’t delete it yet.
- Go to Settings → Permalinks and click Save Changes once, so WordPress drops the old plugin’s rewrite rules.
- Test 5 old addresses from different posts, using the checks below.
- Once everything works for a week, delete the old plugin.
Check It Works
- Count the links. GT Links → All Links shows a total. It should match your export, minus the skipped rows.
- Test old addresses. Run
curl -I https://yoursite.com/recommends/standing-desk/and look forX-Redirect-By: GT Link Managerin the answer. - Test a post. Open an older post in a private window and click a few links.
- Run Diagnostics. Under GT Links → Settings → Tools and diagnostics, Run Diagnostics checks the prefix, the tables and a live redirect of your newest link.
Common Messages
| Message | What it means | Fix |
|---|---|---|
| Choose a non-empty CSV file no larger than 5 MB. | The file is empty or too big | Split it into 2 files and import each |
| Choose a CSV file to import. | The file isn’t a .csv | Save it from the spreadsheet as CSV |
| CSV columns are invalid. Required: name and url | Name or URL isn’t mapped | Map Name and URL in step 2 |
| Imported: 0, Skipped: 412 | Every slug already exists | Use Overwrite existing or Auto-suffix slug |
| This path is reserved by WordPress and cannot be used for direct links. | A direct link starts with a reserved path | Rename that link and update its posts |
What It Won’t Do
- It doesn’t import click history. Old click counts stay in the old plugin. GT Link Manager starts counting from zero, if you turn counting on.
- It doesn’t rewrite your posts. Keeping the old prefix or direct paths is what keeps them working.
- It doesn’t copy plugin-specific features, such as Pretty Links parameter forwarding or ThirstyAffiliates autolinker keywords and image attachments.
- It imports one category per link. Extra categories need a second pass with Set category.
With everything in one place, How to Change an Affiliate Link Everywhere with One Edit shows how to keep those links current.