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 faster.
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.
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.
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 per-link “Exclude from link health checks” option for affiliate or cloaked links whose destinations block bots.
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, in the admin and under Tools → Site Health.
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 the next load, restoring categories, tags, and groups (and their link counts) with no manual re-tagging.
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.
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 on your licensed Pro build, and the free build can no longer overwrite it; a wrong-edition install still shows the reinstall prompt on the Plugins screen.
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.
=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.