Hi, tmarsh1.
When you visit a link that does not exist, WordPress first attempts to find a correct similar-looking URL before it returns a 404.
That’s why visiting any of these links will 301 redirect to https://www.velonomad.com/go/wiggle-2xu-calf/, even though you have not defined them as short links in the Simple URLs settings:
WordPress sees that those links are nearly the same as wiggle-2xu-calf
, and – provided you don’t also have a post with one of the shorter names – it assumes you mean the longer version instead.
e.g.
? curl -I https://www.velonomad.com/go/wiggle-2xu
HTTP/1.1 301 Moved Permanently
...
Location: https://www.velonomad.com/go/wiggle-2xu-calf/
You can see the WordPress core code responsible for this here: https://github.com/WordPress/WordPress/blob/c8325e1ab5167aaae8d1a11cefa3a627710ecb7c/wp-includes/canonical.php#L580 (it uses a post_name LIKE
query to find similar post names).
There’s a request for an option to remove the URL guessing feature here that may make it into a future version of WordPress: https://core.trac.www.ads-software.com/ticket/16557
For now, you can use this plugin if you’d like to disable URL guessing to prevent those redirects: https://www.ads-software.com/plugins/disable-url-autocorrect-guessing/
With that plugin active, partial URLs will then 404 instead of 301 redirecting.