PrettyLinks · Version history
PrettyLinks changelog and version history
- Latest version
- 4.0.18
- Oct 21, 2026 (19 days ago)
- Releases
- 238
- since 2010
- In the last year
- 23
- about one every 15 days
- Tested up to
- WordPress 7.1.4
- PHP 7.4 or later
Releases each year
- 2010120 releases
- 20118 releases
- 20128 releases
- 20132 releases
- 20141 release
- 20152 releases
- 20165 releases
- 201713 releases
- 20184 releases
- 201914 releases
- 20203 releases
- 20211 release
- 20225 releases
- 202314 releases
- 202411 releases
- 20255 releases
- 202622 releases
202622 releases
PrettyLinks 4.0.18Latest
- The Broken links view now always shows while Link Health is on, with a count of broken links.
- Link Health columns are now included in the CSV export.
PrettyLinks 4.0.17
- Fixed a crash on activation caused by an error in the automatic update system.
- Link Health now flags links whose domain no longer exists.
- Fixed table creation failing on sites with an invalid database collation setting, and install errors now show the actual database error.
- License and add-on error messages now display cleanly instead of showing raw HTML.
- Fixed the admin menu losing its position when the page height changes.
- Updated bundled libraries.
PrettyLinks 4.0.16
- Licensing, plugin updates, and add-on installs now run through our new licensing service. Your existing license key keeps working — no action needed.
- Country lookups for clicks now only happen in Extended tracking mode. Normal mode no longer sends visitor IP addresses to a geolocation service.
- Faster redirects: reverse DNS lookups for Extended tracking now run in the background instead of during the click.
- Fixed links whose target points back to their own pretty URL redirecting forever. The link editor now warns you, and the link stops redirecting instead of looping.
- Fixed 301 and 307 redirects being sent as 302s when Turbo Mode is on, and Turbo Mode now picks up fixes automatically after updates.
- Fixed query parameters with special characters (like %20) being changed on their way to the target URL.
- Fixed links with non-Latin slugs (for example Cyrillic or Chinese) not resolving.
- Fixed language-prefixed links (for example /nl/go/example with WPML) all going to the same target.
- Fixed saving a link with a slug that’s already in use. It’s now rejected instead of creating a duplicate.
- Fixed duplicated links missing some of the original link’s settings.
- Fixed click-based link expiration never triggering in Simple tracking mode.
- Fixed admin screens not loading correctly when the WordPress admin is in a language other than English.
- Fixed downloading QR codes on some sites.
- Fixed the onboarding wizard creating duplicate links, and add-ons picked during onboarding not installing or activating. The Finish step now lists the add-ons that were installed.
- Fixed a Lite install with a Pro license losing the option to install Pro a day after activating the key.
- Improved the Links list: columns size to their content, long notes no longer break the layout, and the list switches to cards on small screens.
- The link editor now has a Save button in the header and more room for the Target URL.
- Charts now label month and year periods correctly, and Click History filters by link and sorts by country.
- Extended tracking now filters out browsers it can’t identify as bots, like 3.x did.
- Confirmation pop-ups now use the plugin’s own dialogs instead of the browser’s.
- Requires WordPress 6.5 or newer.
- Pro: Custom Reports stay visible in Simple tracking mode, with a note explaining they need Normal or Extended tracking.
- Pro: Fixed keyword and URL replacement corrupting & in post content or linking text inside HTML attributes.
- Pro: Fixed the broken-links digest email linking to the wrong edit page.
PrettyLinks 4.0.15
- Added an option to record clicks immediately rather than after the page finishes loading. Turn this on if your click counts are stuck at zero — some security and optimization plugins end PHP early and the click was silently discarded. Off by default, because the standard method keeps redirects fast…
- Fixed the Pretty Links menu appearing for users who can’t actually open it. Editors and other roles without permission saw a menu with an empty flyout that led to the pricing page; it’s now hidden from them entirely.
- Fixed click times and report date ranges being worked out in UTC instead of your site’s timezone (Settings → General → Timezone). The Clicks list, CSV exports, report totals, and chart days now agree with each other and with your own calendar day.
- Fixed the slug box being left blank when you create a Pretty Link from the post editor. It now suggests one automatically, the same as Add New does, and honors your configured prefix.
- Fixed redirects being held up on links that use country targeting — the country is no longer looked up twice for the same click, and a lookup that fails or times out no longer delays the visitor.
- Pro: Fixed a link’s categories and tags showing as empty in the link editor, and being wiped when you saved the link.
- Pro: Fixed keyword replacement never linking a keyword on posts that were already published. The record of which keywords appear in which post could fall permanently out of date, and re-saving each post was the only way to recover.
- Pro: Fixed keywords not linking when the word only appears once the page is built — text coming from a shortcode, a block, or a page builder. Re-saving didn’t help in that case, because the word isn’t in the saved post content.
- Pro: Fixed your disclosure text showing up in post excerpts and archive listings, where the keyword link itself is stripped out anyway.
PrettyLinks 4.0.14
- Fixed the redesigned admin interface still displaying in English even when a translation was installed — translations created with Loco Translate (or provided by WordPress.org) now load correctly on the new React-based screens, not just the classic menus.
PrettyLinks 4.0.12
- Fixed translations not applying to the redesigned admin interface — the new screens now display in your site’s language whenever a translation is available (for example one created with Loco Translate or a WordPress.org language pack), matching what already worked for the older menus.
- Fixed add-on notices that kept showing after the problem they warned about had already been resolved.
- Pro: Fixed automatic link creation firing for your Alternate Domain — auto-created links now correctly skip the alternate shortlink domain.
- Pro: Fixed Link Health reporting working links as broken. Destinations that block automated checks (returning 403, 405, 429, and similar) are no longer flagged — only genuine “not found” responses (404 and 410) count as broken, and a link must fail two checks in a row before it’s reported. Added a…
- Pro: Fixed link categories and tags still appearing blank after upgrading from 3.x on some sites. The upgrade now detects a failed migration and retries it instead of silently giving up, re-runs once to heal affected sites, and — if it still can’t finish — shows the exact error, with a Retry button…
PrettyLinks 4.0.11
- Added an “Export CSV” button to the Links list that downloads the links you are currently viewing — any search, category, tag, or status filters (including Broken links) carry over to the export. Large lists download in the background so the page stays responsive.
- The edit button on the Links list is now a real link, so you can Ctrl/Cmd-click or middle-click it to open a link’s edit screen in a new browser tab.
- Fixed the Cancel button shown during a CSV export so it now actually stops an in-progress export instead of letting it run to completion.
- Fixed the “Manage License” link on the WordPress Plugins page so it takes you to the Pretty Links license screen.
- Fixed a load-order issue that could cause errors on some sites by running the database upgrade slightly later in WordPress’s startup, after theme and pluggable functions are available.
- Pro: Restored time-of-day support for date-range redirect rules — “between” date targeting rules again keep their start and end times, evaluated in your site’s timezone.
- Pro: Added a new prli_targeting_countries filter for developers, bringing back the ability to add custom aggregate regions (for example an “EU” option) to the geo-targeting country picker, matching 3.x’s plp_search_countries_list.
PrettyLinks 4.0.10
- Fixed a fatal error (“Class PrettyLinks\Bootstrap not found”) when WordPress is loaded outside the site root — for example MemberPress protected downloads (lock.php) or membership PayPal IPN callbacks — by anchoring the plugin entry-file includes to the plugin directory again, matching 3.x.
- Fixed pretty links whose slug contains a space returning a 404 after upgrading from 3.x — those links resolve again. New slugs still convert spaces to dashes; sites that already used spaces get an option under Pretty Links → Options → Links to keep them.
- Pro: Fixed link categories, tags, and groups still showing blank after upgrading from 3.x on sites whose database used a different text collation — a collation mismatch was silently stopping the 4.0.9 repair from writing the assignments. The repair is now collation-safe and re-runs automatically on…
- Pro: Fixed pretty links returning a 404 when your Alternate Domain includes a path (for example https://example.com/klik/) — links served under that path now resolve again, matching 3.x. Nothing stored is changed.
PrettyLinks 4.0.9
- Pro: Fixed link categories and tags appearing blank in the admin after upgrading from 3.x, even though the assignments still existed — an automatic one-time repair restores them (and their link counts) on the next admin load, with no manual re-tagging needed.
- Pro: New — you can now export Custom Reports and Split Test results to CSV.
- Pro: Fixed cloaked links falling back to a visible redirect for destinations that actually allow framing, so more links stay cloaked. The framing check is now also cached per destination (24 hours by default), so repeat cloak and Pretty Bar visits skip the extra lookup and load faster.
- Pro: Link Health — “Force check now” now re-checks every link, and checks fall back to a GET request when a destination rejects the lighter HEAD request, reducing false “broken link” results.
- Pro: Link Health — fixed a scheduled recheck occasionally overwriting a more recent “Force check now” result.
PrettyLinks 4.0.8
- Pro: Fixed licensed Pro installs being silently replaced by the free build during an update when the license couldn’t be verified at that moment (a brief connection hiccup, or right after a major update) — which locked every Pro feature even though the license still showed Active. Updates now stay…
PrettyLinks 4.0.7
- Fixed every Pretty Link returning a 404 on WordPress installs located in a subdirectory (for example, a site at example.com/blog) — the redirect engine now correctly accounts for the site’s base path.
- Fixed Pretty Links whose slug contains characters such as “.”, “=”, “~” or “+” returning a 404 — the full range of slug characters supported in 3.x works again, and those characters are no longer stripped when you save a link.
- New: added a per-link “Reset clicks” action to the Links list, available in every tracking mode.
- Pro: you can now paste a whole list of countries into a geo targeting rule (comma-, space-, or bracket-separated country codes or names) instead of adding them one at a time.
- Pro: expiring links can now be set to move to the Trash on their first expired visit, in addition to the existing “redirect to another URL” option.
- Pro: clarified the compound targeting rule label to “All conditions match (AND)” so it’s clear every condition must be met.
PrettyLinks 4.0.6
- Pro: Fixed geo targeting never matching on hosts without CDN country headers — country resolution now falls back to IP geolocation like v3, so country rules work everywhere.
- Pro: When the visitor’s country can’t be determined, country rules no longer match and the link’s normal target URL is used.
- Geo lookups are now cached per network block (up to a month when the geolocation database confirms the whole block shares one country), greatly reducing lookup calls on busy links.
- The IP anonymization setting is now honored by all geolocation caching; nothing derived from the full IP is stored when it’s enabled.
- Fixed IPv4-mapped IPv6 addresses (dual-stack servers) being anonymized down to an unusable value in click records.
- Cloudflare’s “XX” unknown-country pseudo-code is no longer treated as a real country by geo rules.
PrettyLinks 4.0.5
- Pro: Restored QR code downloads (PNG and SVG) from the Links list and link editor, added logo support to SVG QR codes, and improved scannability for codes that include a logo.
- Pro: The per-link QR code preview now encodes the link’s own pretty URL.
PrettyLinks 4.0.4
- Fixed a fatal error (TypeError) in the admin footer text when another plugin or host sets it to a non-string value.
PrettyLinks 4.0.3
- Fixed a fatal error on hosts that run OPcache with doc-comments disabled (opcache.save_comments=0), such as Kinsta.
PrettyLinks 4.0.2
- Refreshed the “What’s New in 4.0” page copy.
PrettyLinks 4.0.1
- Maintenance: distribution packaging cleanup; no functional changes.
PrettyLinks 4.0.0
- Complete rewrite — brand-new React-based admin UI, REST-first API, and custom-table data model
- PHP 7.4+ required; full PHP 8.x compatibility
- Drop-in upgrade — no migration required, all 3.x data continues to work
- Performance: faster click tracking, lighter admin pages, and leaner database queries
- New: IP-anonymization toggle that truncates IPv4 / IPv6 addresses before they’re stored
- New: configurable click-retention window — 30 days up to 2 years (was hardcoded to 90 days, on/off only)
- New: automatic safety wipe of click counters when switching between Simple and Normal/Extended tracking modes
- New: modern bot detection — catches AI crawlers (GPTBot, ClaudeBot, PerplexityBot…), honors Cloudflare Bot Management headers, and adds behavioral signals, plus your own custom user-agent patterns
- New: PrettyPay™ master on/off toggle (no longer always-on once Stripe is connected)
- New: Reserved Slug Patterns moved from Pro into Lite, with a new admin-bypass toggle and distinct slug prefixes for admin-, user-, and frontend-created links
- New: CSV link import is now free (was Pro-only in v3), with a downloadable starter template
- New: chunked CSV export that handles large link libraries without timing out
- New: click-history CSV export across all links, with date-range and link-ID filters
- New: one-click “Duplicate” on any link
- New: bulk “turn nofollow on/off” and “turn sponsored on/off” actions across selected links
- New: one-click slug regenerate button on the Add/Edit Link form
- New: per-user “items per page” picker and column show/hide on the Links list, saved to your account
- New: Options page auto-saves — change any field and it saves on its own
- New: Connect-Stripe step inside the setup wizard
- New: CookieYes integration — auto-tags pretty-link redirects so they’re consent-gated by your cookie banner
- PRO: Redirect Turbo Mode — opt-in must-use plugin that answers pretty-link requests before the rest of WordPress loads
- PRO: no_enforce_url_scheme option — disable the automatic http:// prepend so you can target custom protocols (app://, tel:, etc.)
- PRO: Link Health — choose how often destinations are checked and how often you get the broken-link digest, separately, plus a multi-status filter on the Links list
- PRO: Keyword & URL Replacements — case-sensitive matching toggle, a new per-post total-links cap (defaults to unlimited), and distinct nofollow / sponsored / open-in-new-window and custom-CSS settings for URL-replaced anchors
- PRO: Rotations — pick Weighted Random or Sequential round-robin (v3 was random-only with weights ignored)
- PRO: Smart targeting — new operators: exclude-country, hour-of-day range, day-of-week, plus compound AND-rules
- PRO: Pretty Bar — multiple branded templates instead of one global look, plus a Media-library logo picker
- PRO: Custom Reports — new [pretty_link_pixel] shortcode and Gutenberg block to drop a tracked-conversion pixel onto any thank-you page
- PRO: Link list filter segments — “Expired” and “Split tests” segments, and the search box now matches category and tag names
- PRO: Click History extras — KPI cards, an over-time line chart, a top-links list, and breakdown tabs by country / referrer / device / browser, each with a donut chart
PrettyLinks 3.6.22
PrettyLinks 3.2.2
PrettyLinks 3.6.21
PrettyLinks 3.6.20
20255 releases
PrettyLinks 3.6.19
PrettyLinks 3.6.18
PrettyLinks 3.6.17
PrettyLinks 3.6.16
PrettyLinks 3.6.15
202411 releases
PrettyLinks 3.6.14
PrettyLinks 3.6.12
PrettyLinks 3.6.11
PrettyLinks 3.6.10
PrettyLinks 3.6.9
PrettyLinks 3.6.8
PrettyLinks 3.6.7
PrettyLinks 3.6.6
PrettyLinks 3.6.5
PrettyLinks 3.6.4
PrettyLinks 3.6.3
202314 releases
PrettyLinks 3.6.2
PrettyLinks 3.6.1
PrettyLinks 3.6.0
PrettyLinks 3.5.3
PrettyLinks 3.5.2
PrettyLinks 3.5.1
PrettyLinks 3.5.0
PrettyLinks 3.4.2
PrettyLinks 3.4.1
PrettyLinks 3.4.0
PrettyLinks 3.3.3
PrettyLinks 3.3.2
PrettyLinks 3.3.1
PrettyLinks 3.3.0
20225 releases
PrettyLinks 3.2.8
PrettyLinks 3.2.7
PrettyLinks 3.2.6
PrettyLinks 3.2.4
PrettyLinks 3.2.5
20211 release
PrettyLinks 3.2.3
20203 releases
PrettyLinks 3.2.1
PrettyLinks 3.1.1
PrettyLinks 3.1.0
201914 releases
PrettyLinks 3.0.10
PrettyLinks 3.0.9
PrettyLinks 3.0.8
PrettyLinks 3.0.7
PrettyLinks 3.0.6
PrettyLinks 3.0.5
PrettyLinks 3.0.3
PrettyLinks 3.0.2
PrettyLinks 3.0.1
PrettyLinks 3.0.0
PrettyLinks 2.1.10
PrettyLinks 2.1.9
PrettyLinks 2.1.8
PrettyLinks 2.1.7
20184 releases
PrettyLinks 2.1.6
PrettyLinks 2.1.5
PrettyLinks 2.1.4
PrettyLinks 2.1.3
201713 releases
PrettyLinks 2.1.2
PrettyLinks 2.1.1
PrettyLinks 2.1.0
PrettyLinks 2.0.9
PrettyLinks 2.0.8
PrettyLinks 2.0.7
PrettyLinks 2.0.6
PrettyLinks 2.0.5
PrettyLinks 2.0.4
PrettyLinks 2.0.3
PrettyLinks 2.0.2
PrettyLinks 2.0.1
PrettyLinks 2.0.0
20165 releases
PrettyLinks 1.7.2
PrettyLinks 1.7.1
PrettyLinks 1.7.0
PrettyLinks 1.6.9
PrettyLinks 1.6.8
20152 releases
PrettyLinks 1.6.7
PrettyLinks 1.6.6
20141 release
PrettyLinks 1.6.5
20132 releases
PrettyLinks 1.6.4
PrettyLinks 1.6.3
20128 releases
PrettyLinks 1.6.2
PrettyLinks 1.6.1
PrettyLinks 1.6.0
PrettyLinks 1.5.9
PrettyLinks 1.5.8
PrettyLinks 1.5.7
PrettyLinks 1.5.6
PrettyLinks 1.5.5
20118 releases
PrettyLinks 1.5.4
PrettyLinks 1.5.2
PrettyLinks 1.5.1
PrettyLinks 1.5.0
PrettyLinks 1.4.6
PrettyLinks 1.4.56
PrettyLinks 1.4.55
PrettyLinks 1.4.54
2010120 releases
PrettyLinks 1.4.53
PrettyLinks 1.4.52
PrettyLinks 1.4.51
PrettyLinks 1.4.50
PrettyLinks 1.4.49
PrettyLinks 1.4.48
PrettyLinks 1.4.47
PrettyLinks 1.4.46
PrettyLinks 1.4.45
PrettyLinks 1.4.44
PrettyLinks 1.4.43
PrettyLinks 1.4.42
PrettyLinks 1.4.41
PrettyLinks 1.4.40
PrettyLinks 1.4.39
PrettyLinks 1.4.38
PrettyLinks 1.4.37
PrettyLinks 1.4.36
PrettyLinks 1.4.35
PrettyLinks 1.4.34
PrettyLinks 1.4.33
PrettyLinks 1.4.32
PrettyLinks 1.4.31
PrettyLinks 1.4.30
PrettyLinks 1.4.29
PrettyLinks 1.4.28
PrettyLinks 1.4.27
PrettyLinks 1.4.26
PrettyLinks 1.4.25
PrettyLinks 1.4.24
PrettyLinks 1.4.23
PrettyLinks 1.4.22
PrettyLinks 1.4.21
PrettyLinks 1.4.20
PrettyLinks 1.4.19
PrettyLinks 1.4.18
PrettyLinks 1.4.17
PrettyLinks 1.4.16
PrettyLinks 1.4.15
PrettyLinks 1.4.14
PrettyLinks 1.4.13
PrettyLinks 1.4.12
PrettyLinks 1.4.11
PrettyLinks 1.4.10
PrettyLinks 1.4.8
PrettyLinks 1.4.7
PrettyLinks 1.4.5
PrettyLinks 1.4.4
PrettyLinks 1.4.3
PrettyLinks 1.4.2
PrettyLinks 1.4.1
PrettyLinks 1.4.0
PrettyLinks 1.3.42
PrettyLinks 1.3.41
PrettyLinks 1.3.40
PrettyLinks 1.3.39
PrettyLinks 1.3.38
PrettyLinks 1.3.37
PrettyLinks 1.3.36
PrettyLinks 1.3.35
PrettyLinks 1.3.34
PrettyLinks 1.3.33
PrettyLinks 1.3.32
PrettyLinks 1.3.31
PrettyLinks 1.3.30
PrettyLinks 1.3.29
PrettyLinks 1.3.28
PrettyLinks 1.3.27
PrettyLinks 1.3.26
PrettyLinks 1.3.25
PrettyLinks 1.3.24
PrettyLinks 1.3.23
PrettyLinks 1.3.22
PrettyLinks 1.3.21
PrettyLinks 1.3.20
PrettyLinks 1.3.19
PrettyLinks 1.3.18
PrettyLinks 1.3.17
PrettyLinks 1.3.16
PrettyLinks 1.3.15
PrettyLinks 1.3.14
PrettyLinks 1.3.13
PrettyLinks 1.3.12
PrettyLinks 1.3.11
PrettyLinks 1.3.10
PrettyLinks 1.3.9
PrettyLinks 1.3.8
PrettyLinks 1.3.7
PrettyLinks 1.3.6
PrettyLinks 1.3.5
PrettyLinks 1.3.4
PrettyLinks 1.3.3
PrettyLinks 1.3.2
PrettyLinks 1.3.1
PrettyLinks 1.3.0
PrettyLinks 1.2.9
PrettyLinks 1.2.8
PrettyLinks 1.2.7
PrettyLinks 1.2.6
PrettyLinks 1.2.5
PrettyLinks 1.2.4
PrettyLinks 1.2.3
PrettyLinks 1.2.2
PrettyLinks 1.2.1
PrettyLinks 1.1.9
PrettyLinks 1.1.8
PrettyLinks 1.1.7
PrettyLinks 1.1.6
PrettyLinks 1.1.5
PrettyLinks 1.1.4
PrettyLinks 1.1.3
PrettyLinks 1.1.2
PrettyLinks 1.1.1
PrettyLinks 1.1.0
PrettyLinks 1.0.0
PrettyLinks 0.0.5
PrettyLinks 0.0.4
PrettyLinks 0.0.3
PrettyLinks 0.0.2
PrettyLinks 0.0.1
Questions about PrettyLinks’s releases
What is the latest version of PrettyLinks?
4.0.18, released on Oct 21, 2026 (2 weeks ago). It’s tested up to WordPress 7.1.4 and needs PHP 7.4 or later.
How often is PrettyLinks updated?
23 releases in the last year, about one every 15 days. Its first release on WordPress.org dates from August 2010.
Know when your rivals ship
Track your plugin and its rivals: TrackWP sees each new release in the nightly snapshot and alerts you, with what it did to their rank.
Start freeRelease dates come from the day each version’s folder was made in PrettyLinks’s WordPress.org SVN repository; the notes from its readme’s changelog, as its authors wrote it.