Mastering Your Connection is Not Private Error – How to Fix it & Secure Your Activities
The “Your connection is not private” error is a common issue encountered while browsing…
WordPress The Link You Followed Has Expired
If you’ve ever tried to upload a plugin, theme, or large media file in WordPress and landed on “The link you followed has expired,” you’re not alone. Despite the confusing wording, this error has almost nothing to do with an actual link going stale. What it really means is that your server rejected the operation before WordPress could finish it — usually because a file exceeded a PHP size limit.
WordPress generates this screen as a fallback when an upload or admin action fails silently at the server level. PHP cuts off the request mid-stream, WordPress loses the response it was expecting, and the generic “link expired” message is the only thing left to display.
The good news: this is a configuration problem, not a bug or a security issue. A few targeted changes to your PHP settings will clear it up without touching any plugin or theme code.
You should see: A table of server values. These are your baseline — compare them again after your edits to confirm the changes took effect.
wp-config.php in your site’s root directory and add these lines just above the /* That's all, stop editing! */ comment:
@ini_set('upload_max_size', '128M');
@ini_set('post_max_size', '128M');
@ini_set('memory_limit', '256M');
You should see: No errors on your site after saving. Refresh Site Health to verify the new values appear.
.htaccess file in your root directory and add:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 256M
php_value max_execution_time 300
You should see: Updated values in Site Health. If your site throws a 500 error instead, your server runs Nginx — remove these lines immediately and proceed to the next step.
php.ini, update these four directives:
upload_max_filesize = 128M
post_max_size = 128M
memory_limit = 256M
max_execution_time = 300
You should see: New values confirmed in Site Health after saving. On cPanel hosts, look for the MultiPHP INI Editor to make these changes through the panel UI instead of a raw file.
/wp-content/plugins/ or /wp-content/themes/ using an FTP client. Then activate it from your WordPress dashboard.
You should see: The plugin or theme appear in its respective admin list, ready to activate — no browser upload needed at all.
Get free WordPress & AI tips
Join 500+ readers. No spam, unsubscribe anytime.
No. This error is a server configuration issue triggered by PHP limits — it has nothing to do with a security breach. Your site data is intact; a setting just needs adjusting.
When PHP cuts off an upload at the server level, it doesn’t pass a meaningful error back to WordPress — it simply drops the request. WordPress interprets the missing response as an expired action and shows the closest generic message it has for a failed POST operation.
Verify the values are actually live by checking Tools → Site Health → Info → Server. If the PHP limits still show the old numbers, your host is overriding your settings. Contact your hosting provider and ask them to raise upload_max_filesize, post_max_size, and memory_limit directly — many managed and cloud hosts require this to be done through their support team or a dedicated control panel option.
Yes. Plugin update packages can be just as large as fresh installs, and they go through the exact same upload pipeline. The same PHP limit increases resolve update failures too.