ActivityPub sur WordPress : réglages, modération et limites
WordPress

ActivityPub sur WordPress : réglages, modération et limites

L'extension ActivityPub 9.4 pour WordPress : profils, réglages réels, WebFinger, cache, modération, données reçues et limites, avec les tests à faire.

Mis à jour le 1er novembre 2026. Article réécrit pour la version 9.4.0 de l’extension ActivityPub (29 octobre 2026) : libellés réels des réglages, valeurs par défaut lues dans le code, onglet de modération, comportement du cache, configuration Nginx testée et limites documentées.

L’extension ActivityPub transforme un site WordPress en compte du fediverse. Les abonnés de Mastodon, Pixelfed, Misskey ou Friendica reçoivent les nouvelles publications, et leurs réponses reviennent sous forme de commentaires. Ce n’est pas un outil de publication croisée : votre site devient son propre compte, il ne publie pas sur un compte Mastodon existant. Ce guide détaille les réglages, ce qui se passe réellement sur le serveur, et les points à tester avant d’ouvrir le service.

L’extension en bref

ÉlémentValeur relevée le 1er novembre 2026
ÉditeurAutomattic, avec plusieurs contributeurs dont Matthias Pfefferle
Version9.4.0, publiée le 29 octobre 2026
PrérequisWordPress 6.5 ou plus récent, PHP 7.4 ou plus récent
Testée jusqu’àWordPress 7.1.4
Licence du dépôtMIT
RéglagesRéglages > ActivityPub

Le rythme de publication est soutenu : dix versions entre le 10 juin (9.0.0) et le 29 octobre 2026, dont des correctifs de sécurité (9.1.0 pour les applications connectées et les profils distants, 9.3.1 pour la vérification des signatures et des réponses exposées par l’API REST). Activez les mises à jour automatiques de cette extension ou suivez-les de près.

Avant l’installation

// wp-config.php
define( 'DISABLE_WP_CRON', true );
*/5 * * * * curl -s -o /dev/null "https://votredomaine.tld/wp-cron.php?doing_wp_cron"

Les réglages, tels qu’ils apparaissent

Après activation, l’écran Réglages > ActivityPub regroupe l’accueil, les réglages, la liste des abonnés et celle des acteurs bloqués ; un onglet de réglages avancés et un onglet des comptes suivis peuvent être affichés en plus. Voici les réglages principaux et leurs valeurs par défaut, lues dans le code de l’extension.

Réglage (libellé anglais d’origine)EffetPar défaut
Enable profiles by typeProfils d’auteur seuls, profil du blog seul, ou les deuxProfils d’auteur seuls
Supported post typesTypes de contenus diffusésArticles uniquement
Media attachmentsNombre d’images jointes, de 0 à 104
Receive likes / Receive reblogsAccepter les « j’aime » et les partagesActivés
Auto approve reactionsApprouver automatiquement ces réactionsDésactivé
Show images attached to repliesAfficher les images jointes aux réponsesDésactivé
Default quote policyQui peut citer vos publicationsTout le monde
HashtagsTransformer les #mots en hashtagsDésactivé
OpenGraphAjouter la balise fediverse:creatorActivé

Deux conseils de départ. Choisissez « profil du blog seul » pour un site d’entreprise : un compte unique, plus simple à modérer, sans exposer le nom et la photo de chaque rédacteur. Si vous activez les profils d’auteur, informez chaque auteur que son nom, sa biographie et son avatar deviennent publics sur d’autres serveurs.

Seules les publications faites après l’installation sont diffusées, et un abonné ne reçoit que ce qui est publié après son abonnement. N’attendez donc pas que vos archives apparaissent dans le fediverse.

L’onglet Avancé

Il contient des réglages qui ont un effet direct sur l’hébergement :

Ce qui se passe sur le serveur

WebFinger et NodeInfo

Un serveur distant retrouve @blog@votredomaine.tld grâce à WebFinger, servi sur /.well-known/webfinger, puis lit les informations du logiciel sur /.well-known/nodeinfo. Ces routes passent par WordPress. Une règle Nginx qui interdit les chemins commençant par un point (location ~ /\.) les bloque. Ajoutez une exception :

location ^~ /.well-known/ {
    try_files $uri /index.php?$args;
}

Nous avons testé ce bloc avec Nginx 1.28.2 dans une configuration isolée, à côté d’une règle location ~ /\. { deny all; } : /.well-known/webfinger et /.well-known/nodeinfo sont transmis à index.php, un fichier réel comme /.well-known/acme-challenge/test reste servi tel quel (renouvellement Let’s Encrypt), et /.env reste refusé en 403. Le préfixe ^~ l’emporte sur l’expression régulière, quel que soit l’ordre des blocs.

Vérifiez ensuite depuis l’extérieur :

curl -s "https://votredomaine.tld/.well-known/webfinger?resource=acct:blog@votredomaine.tld"
curl -sL -H "Accept: application/activity+json" "ADRESSE_DU_PROFIL"

La première commande doit renvoyer un document JSON dont un lien rel="self" donne l’adresse du profil ; remplacez blog par l’identifiant affiché dans les réglages. La seconde, lancée sur cette adresse, doit renvoyer le profil au format ActivityPub, et non une page HTML.

Cache de pages

Depuis la 9.2.0 (31 juillet 2026), les réponses ActivityPub ne sont servies qu’aux clients ActivityPub, ce qui les tient à l’écart des caches de pages. L’en-tête Vary: Accept complète ce dispositif. Si un cache en amont (Varnish, CDN) ignore cet en-tête, un visiteur peut recevoir du JSON ou un serveur distant du HTML. Testez une page avec et sans l’en-tête Accept: application/activity+json après avoir vidé le cache.

Charge

Chaque publication part vers chaque serveur abonné. La charge dépend du nombre d’instances abonnées et du rythme de publication, pas du trafic du site. En cas d’échec temporaire (codes 408, 429, 500, 502, 503 et 504), l’envoi est retenté. Un cache objet persistant aide, mais mesurez son effet au lieu de le supposer. Pour le reste, voir notre guide Core Web Vitals pour WordPress.

Modérer les interactions entrantes

Une réponse venue du fediverse devient un commentaire WordPress et suit vos règles de Réglages > Discussion. Gardez l’approbation manuelle au démarrage.

La section de modération des réglages propose trois outils :

Depuis la 9.4.0, un compte bloqué ne peut plus répondre, aimer, partager ni citer vos contenus, et des limites de débit protègent plusieurs points d’accès. Pour couper toute interaction entrante, la constante ACTIVITYPUB_DISABLE_INCOMING_INTERACTIONS désactive réponses, commentaires et « j’aime » ; c’est aussi la première chose à vérifier quand les réponses n’arrivent plus.

Si vous ajoutez un filtre automatique (anti-spam, toxicité) qui envoie le texte à une API tierce, les messages quittent votre serveur : mentionnez-le dans votre politique de confidentialité et gardez une validation humaine.

Données publiées, données reçues

DonnéesOrigineCe que vous maîtrisez
Nom, biographie, avatar des profils activésVotre siteLe choix d’activer chaque profil
Publications diffuséesVotre siteLeur contenu ; pas les copies déjà reçues ailleurs
Identifiant, nom, avatar et texte des comptes qui répondentServeurs distants, parfois hors Union européenneModération, durée de conservation, suppression
Avatars, médias et émojis distants mis en cacheServeurs distantsDésactivables avec ACTIVITYPUB_DISABLE_REMOTE_CACHE

L’extension traite les activités de suppression entrantes : depuis la 9.2.2, une réponse supprimée sur Mastodon supprime le commentaire correspondant. Dans l’autre sens, la 9.0.0 envoie un avis de suppression quand vous dépubliez un contenu déjà diffusé, mais chaque serveur distant décide de l’appliquer. Inscrivez ce traitement dans votre registre (finalité, durées, transferts) et mettez à jour la politique de confidentialité ; la base légale relève d’un avis juridique.

Les limites à connaître

Protocole de test

  1. En préproduction, activez l’extension et choisissez le mode de profil.
  2. Testez WebFinger et le profil avec les deux commandes curl ci-dessus.
  3. Depuis un compte Mastodon, recherchez @blog@votredomaine.tld et abonnez-vous.
  4. Publiez un article de test et notez le délai d’arrivée.
  5. Répondez depuis Mastodon et vérifiez que le commentaire attend votre approbation.
  6. Bloquez l’instance de test, puis vérifiez qu’une nouvelle réponse n’arrive plus.
  7. Supprimez la réponse sur Mastodon et contrôlez la disparition du commentaire.

Questions fréquentes

L’extension publie-t-elle sur mon compte Mastodon existant ?

Non. Le site devient un compte à part entière, suivi sous la forme @identifiant@votredomaine.tld. Pour relayer sur un compte existant, il faut un outil de publication croisée.

Pourquoi mon profil d’auteur est-il introuvable ?

Vérifiez d’abord que les archives d’auteur ne sont pas désactivées par une extension SEO, puis que /.well-known/webfinger répond. Le mode par défaut ne crée que des profils d’auteur : le profil du blog doit être activé explicitement.

Mes anciens articles apparaîtront-ils dans le fediverse ?

Non. Seules les publications postérieures à l’installation sont diffusées, et chaque abonné ne reçoit que ce qui est publié après son abonnement.

Comment couper les réponses sans désinstaller l’extension ?

Définissez ACTIVITYPUB_DISABLE_INCOMING_INTERACTIONS à true dans wp-config.php. Pour un problème ciblé, bloquez plutôt le domaine concerné dans la section de modération.

Sources

Agence web PrestaShop & WordPress

Agence web spécialisée PrestaShop et WordPress : création, maintenance, sécurité, performance et référencement. Nos tutoriels sont issus de nos interventions sur de vraies boutiques.

L'agence Genisoft → LinkedIn →