Dépannage WordPress

Le lien que vous avez suivi a expiré : WordPress, le fix

Le message « lien expiré » de WordPress vient des limites PHP d'envoi. Relevez upload_max_filesize, post_max_size et max_execution_time, ou passez par FTP.

Le lien que vous avez suivi a expiré : WordPress, le fix

Photo : Lukas Blazek / Pexels

« Le lien que vous avez suivi a expiré » : ce que ça veut dire

Le message « The link you followed has expired », affiché en français « Le lien suivi est expiré » (on le cherche souvent sous la forme « Le lien que vous avez suivi a expiré »), apparaît le plus souvent quand un envoi depuis l’admin WordPress, souvent un thème ou une extension, dépasse une limite PHP : upload_max_filesize (2 Mo par défaut), post_max_size (8 Mo par défaut) ou une limite de durée.

Ces valeurs par défaut sont documentées dans le manuel PHP [source : PHP Manual, 2026]. Beaucoup d’hébergeurs les relèvent, parfois pas assez pour un thème volumineux.

Cas typique : vous envoyez le zip d’un thème depuis Apparence → Thèmes, et ce message s’affiche sans autre explication. Rien n’est cassé : la limite d’envoi du serveur est simplement trop basse. C’est un réglage à modifier, pas une panne grave, et vous avez trois voies pour vous en sortir : relever les limites, passer par FTP, ou utiliser WP‑CLI.

Pourquoi ce message apparaît

WordPress affiche ce texte quand sa vérification de sécurité (le nonce) échoue. Quand la requête dépasse post_max_size, PHP vide $_POST et $_FILES source : PHP Manual, 2026 : le jeton du formulaire manque alors, d’où ce message. Il ne dit donc pas « fichier trop volumineux », ce qui rend le diagnostic déroutant. Si vous cherchez plutôt un code HTTP renvoyé par le serveur web, c’est un autre cas : voyez l’erreur 413 sur WordPress.

Les causes habituelles :

  • Un fichier plus gros que upload_max_filesize : le thème ou l’extension dépasse la taille maximale par fichier.
  • Une requête plus grosse que post_max_size : le corps entier de la requête dépasse le plafond, et PHP vide les données reçues.
  • Un temps de réception ou d’exécution trop court : max_input_time ou max_execution_time expire sur un gros fichier ou une connexion lente.
  • Une mémoire insuffisante : memory_limit est trop basse pour traiter la requête.
  • Un réglage modifié au mauvais endroit : la valeur change dans un fichier que le serveur ignore.

Les directives PHP concernées

Une directive PHP est un réglage de configuration du langage qui fixe une limite de taille, de durée ou de mémoire. Cinq d’entre elles comptent ici.

DirectiveRôleSymptôme si trop basseValeur de départ
upload_max_filesizeTaille maximale d’un fichier envoyéEnvoi refusé pour un fichier trop gros64M
post_max_sizeTaille maximale de la requête entièreMessage « lien expiré » : PHP vide les données reçues128M
max_input_timeTemps alloué à la réception des donnéesEnvoi coupé sur connexion lente300
max_execution_timeDurée d’exécution du scriptTraitement interrompu après l’envoi300
memory_limitMémoire allouée à un scriptErreur de mémoire épuisée256M

Quelques précisions, toutes issues de la documentation PHP :

  • post_max_size doit être supérieur à upload_max_filesize pour que de gros fichiers passent.
  • memory_limit devrait en général être plus grand que post_max_size.
  • max_input_time vaut -1 en valeur interne, mais 60 secondes dans les fichiers php.ini fournis par PHP, une valeur facile à dépasser avec un gros fichier ou une connexion lente.
  • max_execution_time ne compte que l’exécution du script, pas le transfert du fichier source : PHP Manual, 2026.

Les valeurs de départ sont des ordres de grandeur courants (64M à 128M pour l’envoi, 300 secondes pour la durée), pas des obligations. Kinsta conseille de rester sous 100 Mo sauf besoin de vidéos ou d’images très lourdes. Pour le détail de chaque limite, consultez le guide des directives PHP de WordPress. Si la mémoire est en cause, lisez aussi mémoire PHP épuisée sur WordPress.

1. Lire la limite actuelle

Avant de modifier quoi que ce soit, vérifiez la valeur réelle du serveur :

  1. Dans l’admin, ouvrez Médias → Ajouter un fichier média : la « Taille de fichier maximale pour le téléversement » est écrite sous la zone de dépôt.
  2. Ou allez dans Outils → Santé du site → Info → Serveur et lisez « Taille maximale de téléversement de fichier ».

Comparez avec le poids de votre fichier. Si le zip du thème fait 90 Mo et que la limite affiche 64 Mo, vous avez trouvé la cause. Après chaque modification ci‑dessous, revenez à cet écran pour confirmer que la valeur a bien changé.

2. Modifier le réglage dans l’espace de l’hébergeur

C’est la méthode la plus simple, car l’hébergeur applique la configuration au bon endroit. Selon l’hébergeur :

  • cPanel : sur beaucoup d’hébergements, l’outil MultiPHP INI Editor règle les directives par version de PHP, et upload_max_filesize figure dans son mode basique. Pour revenir aux valeurs par défaut, on supprime le fichier php.ini de la version concernée source : cPanel, 2026.
  • o2switch : le réglage passe par l’outil « Sélectionner une version de PHP » de cPanel, jusqu’à 512 Mo source : o2switch.
  • Hostinger : dans hPanel, Avancé → Configuration PHP → Options PHP source : Hostinger.
  • OVH mutualisé : php.ini n’est pas modifiable, et .ovhconfig ou l’espace client règlent la version et l’environnement PHP, pas ces limites source : OVHcloud. Si la limite est trop basse, passez par FTP (étape 5) ou WP‑CLI (étape 6).

Enregistrez, attendez une minute, puis relisez la limite (étape 1).

3. Utiliser le fichier .htaccess

Sur un serveur Apache en mode module, ajoutez ces lignes à la fin du .htaccess, à la racine du site :

php_value upload_max_filesize 64M
php_value post_max_size 128M
php_value max_execution_time 300
php_value max_input_time 300

Faites une copie du fichier avant de l’éditer : une faute de syntaxe provoque une erreur 500. Si le site tombe en erreur, retirez les lignes ajoutées. Un cas fréquent est un cache vidé suivi d’une erreur 500, dont le diagnostic est décrit dans cache vidé, site en erreur 500.

Cette méthode a une limite connue : en mode CGI, les directives php_value du .htaccess ne sont pas prises en charge. Il faut alors passer par php.ini ou .user.ini source : Kinsta, 2026.

4. Utiliser php.ini ou .user.ini

Ces deux fichiers acceptent les mêmes directives, sans le mot php_value :

upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
memory_limit = 256M
  • php.ini : sur un serveur dédié ou un VPS Nginx, il se trouve dans un chemin du type /etc/php/8.x/fpm/php.ini. Après modification, redémarrez PHP‑FPM, sinon rien ne change.
  • .user.ini : placé à la racine du site, il n’est lu qu’avec PHP en CGI/FastCGI ; en module Apache, utilisez .htaccess. PHP le relit par défaut toutes les 5 minutes source : PHP Manual, 2026.

Sur de nombreux mutualisés, php.ini n’est pas modifiable par le client : il faut alors écrire au support de l’hébergeur ou utiliser l’interface de l’étape 2.

Le mode PHP_INI_PERDIR correspond à une catégorie de directives modifiables uniquement dans php.ini.htaccess.user.ini ou la configuration du serveur. upload_max_filesize et post_max_size en font partie source : PHP Manual, 2026.

Ce qui ne marche pas : ini_set()

Beaucoup de tutoriels proposent d’ajouter @ini_set('upload_max_filesize', '64M'); dans wp-config.php ou functions.php. Cela ne fonctionne pas, puisque ces directives sont en mode PERDIR : PHP les a déjà lues quand WordPress démarre. Un nom comme upload_max_size n’existe pas non plus. Ne perdez pas de temps là‑dessus.

5. Contourner l’envoi par FTP ou SFTP

Si vous ne pouvez modifier aucune limite, n’envoyez pas le fichier par le navigateur :

  1. Dézippez le thème ou l’extension sur votre ordinateur.
  2. Connectez‑vous en FTP ou SFTP (en cas de refus, voyez connexion FTP refusée sur FileZilla).
  3. Envoyez le dossier dans wp-content/themes ou wp-content/plugins.
  4. Dans l’admin, ouvrez Apparence → Thèmes ou Extensions, puis activez‑le.

Le transfert FTP ne passe pas par le formulaire HTTP de WordPress, donc aucune limite d’envoi du navigateur ne s’applique. Le quota d’espace disque de l’hébergement reste la principale limite.

6. Installer avec WP‑CLI

WP‑CLI est l’interface en ligne de commande de WordPress, qui permet d’installer et d’activer thèmes et extensions depuis un terminal. Elle demande un accès SSH (voir connexion SSH OVH si vous êtes chez OVH). La commande accepte un slug, un zip local ou l’URL d’un zip distant source : WP‑CLI, 2026 :

wp theme install ../mon-theme.zip --activate
wp plugin install ../mon-plugin.zip --activate
wp plugin install ../mon-plugin.zip --force

L’option --activate active l’élément après installation, et --force écrase une version existante. Cette méthode ne passe pas par le formulaire d’envoi du navigateur. Une réserve : la version CLI de PHP a souvent sa propre configuration, distincte de celle du site web, donc testez avec un vrai fichier.

Cause → solution

SituationSolution
Fichier plus gros que la limite affichée dans MédiasRelever upload_max_filesize et post_max_size
Envoi lent qui coupe en cours de routeRelever max_input_time et max_execution_time
Modification sans effetVérifier le mode PHP (CGI ou module) et redémarrer PHP‑FPM
php.ini inaccessible sur mutualiséInterface de l’hébergeur ou support
Aucune limite modifiableFTP ou WP‑CLI
ini_set() dans wp-config.php sans effetNormal : utiliser php.ini.user.ini ou .htaccess

FAQ

Le message « lien expiré » veut‑il dire que mon lien de téléchargement a expiré ?

Non, votre lien de téléchargement n’est pas en cause. Le message signale l’échec d’un contrôle de sécurité de WordPress, le plus souvent parce que l’envoi a dépassé une limite PHP. S’il apparaît hors de tout envoi de fichier, la cause est autre, par exemple une page restée ouverte trop longtemps.

Quelle valeur choisir pour upload_max_filesize ?

Prenez un peu plus que votre plus gros fichier. Si votre fichier tient dans 64M, cette valeur suffit, et post_max_size doit rester supérieur, par exemple 128M. Évitez les valeurs démesurées : une limite plus haute augmente aussi la charge possible sur le serveur.

J'ai modifié le .htaccess et le site affiche une erreur 500. Que faire ?

Supprimez les lignes ajoutées ou restaurez la copie du fichier. L’hébergement n’est probablement pas en module Apache, seul mode qui gère php_value. Utilisez alors php.ini.user.ini ou l’interface de l’hébergeur.

Faut‑il aussi augmenter max_execution_time ?

Oui, c’est conseillé quand vous relevez la limite d’envoi, car un gros thème met du temps à être décompressé et installé. Une valeur de 300 secondes est courante. Si l’erreur finale est un timeout, voyez l’erreur 504 sur WordPress.

Quand passer la main à un pro

Faites appel à quelqu’un si la limite affichée ne change pas après l’interface de l’hébergeur, si le support refuse de modifier php.ini, ou si vous devez toucher à PHP‑FPM sur un VPS sans en maîtriser les conséquences. Un envoi bloqué est souvent le premier signe d’un hébergement mal dimensionné ou d’une configuration que personne ne suit : c’est le genre de point qu’une maintenance régulière vérifie avant que vous ne tombiez dessus.

Ce problème, Peechy s'en occupe

Plutôt que de tout gérer seul, confiez votre site à une agence qui s'occupe de tout, hébergement, sécurité, maintenance et corrections. Encore plus simple en abonnement : on règle les soucis avant même que vous les remarquiez.

Confier mon site à Peechy