How to Connect Your WordPress Blog to the Fediverse

Open your blog to a new audience.

This guide is a companion to our very recent how-to guide for subscribing to ActivityPub-enabled WordPress blogs. We’ll go through the basic install and setup, highlight a few different configuration options, and bring up what we think are some good best practices.

1. Install the Plugin

There are two different ways to get the plugin into your WordPress installation: automatic and manual installation.

Automatic Install

To install the ActivityPub plugin automatically, navigate to your Admin dashboard, then go to Plugins -> Add New, and search for ActivityPub. You’ll want to choose this plugin for your site.

The plugin, as seen on

Click the Install button, activate the plugin, and you’re good to go! It’s time to configure the plugin.

Manual Install

You can also choose to manually install the file by downloading it, and uploading the ZIP archive to your Plugins. If you have FTP or SSH access, you can also just unzip the archive and move the resulting directory to wp-content/plugins/ in your site installation.

The plugin upload dialog, as seen on

After you upload the .zip file, your plugin will appear in your Plugins directory. Make sure that it’s Activated.

2. Configuration Options


This section is where you’ll specify a few details about your WordPress ActivityPub actor. There are two kinds of profiles that can be enabled:

  • Enable Authors – every single author with publishing capabilities gets their own ActivityPub actor. This is handy for publications with big name staff writers – maybe somebody wants to follow Walt Mossberg on given site, but nobody else. This option enables that.
  • Enable Blog – the entire WordPress site has a catch-all account that you specify. For example, We Distribute has a dedicated blog actor that is associated with all articles. If a person subscribes to our blog, they will see every article attributed to us.
Various profile options in the Plugin Settings

It’s worth mentioning that you can enable both options at the same time. This turns your blog’s designated Actor into a Group Actor, that simply reshares all of the posts made by Authors into a timeline. This might be a handy option for big publications with many different big authors, who nevertheless want to put everything into one stream.

You can change your blog’s profile ID at any time. Just keep in mind that this could potentially break the following relationship with your subscribers, who may still be associated with the old account.


In addition to tweaking how Actor profiles are treated by WordPress, it’s also possible to adjust how outgoing content looks to the rest of the Fediverse.

Post Content

The posts that you send out to your followers can be customized in a lot of different ways.

Number of Images

By default, this plugin will take inline images from your article, and put them in the resulting post as media attachments. Depending on how your blog works, you’ll either be fine with this, or want to attach no inline images at all. We currently set ours to 0.

One strange quirk of this setting: if you choose to not attach any images, the resulting post will not contain any inline images. This is fine if you’re just posting Notes, but you’ll end up with text-only Article posts if you choose to use that ActivityPub Object Type.

ActivityPub Object Type

This one requires a little bit of explanation. Right now, the ActivityPub plugin can transform your post content into different kinds of data before it gets sent out to your subscribers. There’s a huge asterisk on which one works best, because it depends on what you’re trying to do.

  • NoteNote is the default ActivityPub object type that Mastodon uses to publish status updates. Selecting this results in ordinary Mastodon-style statuses that originate from WordPress.
  • ArticleArticle is an ActivityPub object type similar to note, but is dedicated for long-form content. Basically, WordPress is capable of sending the entire contents of the Article body to other platforms that support it. Unfortunately, Mastodon does not support it
  • WordPress Post-Format – This option is the strangest out of the bunch, and likely works with the fewest amount of platforms. I haven’t experimented with it, but I believe this just keeps the federated data in the WordPress Post-Format and wraps it in an ActivityPub Object. If I understand correctly, you could theoretically send whole WordPress posts to other ActivityPub-Enabled WordPress platforms with native formatting intact.

As a rule of thumb, We Distribute currently sends all of its Activities out in the Article format. We do this because we anticipate seeing more blogging and social reading platforms to emerge that support it. With that being said, it’s still totally valid to use the Note type and configure the output to include just an excerpt and a link instead. The result is a profile that more or less functions like a Twitter brand account or a Facebook page.

Supported Post Type

In addition to regular posts, it’s possible to federate out additional post types, like Pages and Media. You can also include custom content types as well, such as types created by Pods or Advanced Custom Fields. This might be handy if your publication also includes things like Reviews as a custom post type.


This section allows admins to add or modify a blocklist, which prevents interactions from specified servers. This redirects to WordPress’ Disallowed Comment Keys field, which lives in your blog’s Discussion settings.

3. Additional Useful Plugins

On its own, the ActivityPub plugin is great. However, you can extend its functionality with a few really useful plugins.

Making content links look good on Mastodon is a little bit of a trial-and-error process. By default, Mastodon relies on Twitter Card metadata, and falls back to Open Graph as a backup.

A We Distribute article preview as it appears on Mastodon

If you want to have control over which elements Mastodon uses to render a link preview, I highly recommend using Open Graph and Twitter Card Tags. By default, your articles will rely on the Thumbnail image, Article title, and Excerpt to generate a big card preview that looks great in timelines.

Protection Against Spam

It’s so easy for unprotected comment sections to get bombarded by bots these days. A good free and open source option is AntiSpam Bee, which will moderate your comments for you. Occasionally, you’ll run into false positives: you’ll need to flag certain Pending Comments as legitimate, so that they’ll get added to the replies on your post.

Following Other Blogs

The ActivityPub plugin can be further augmented through a plugin called Friends. Friends is strangely evocative of an earlier era of the blogosphere, one where apps like Blogger encouraged writers to follow each other’s blogs automatically.

The current design is a little rough around the edges, but it offers huge potential as a way for WordPress blogs to follow each other via ActivityPub.

Enable Mastodon Apps

Want to post status updates and interact with the rest of the network from just WordPress? You can absolutely do this with the Enable Mastodon Apps plugin. It implements a lightweight subset of the Mastodon API, and works with the ActivityPub plugin.

Frequently Asked Questions

How do I change the header on my blog’s profile?

Customization for Blog Actors isn’t supported yet. The current stable release pulls metadata from your site – the avatar and description are set from that point. Hopefully, this will soon be addressed by an upcoming release.

I followed the blog, but I don’t see any articles!

It may be that your instance has never had someone subscribe to your blog before. Try copying and pasting the URL to an article into the search box on your platform of choice. Most federated platforms include Webfinger functionality in the search box, allowing users to pull in remote ActivityPub content.

Sean Tilley

Sean Tilley has been a part of the federated social web for over 15+ years, starting with his experiences with back in 2008. Sean was involved with the Diaspora project as a Community Manager from 2011 to 2013, and helped the project move to a self-governed model. Since then, Sean has continued to study, discuss, and document the evolution of the space and the new platforms that have risen within it.

One Comment

  1. Oblomov says:

    @news that’s interesting, but the link seems to show only the ActivityPub object, is this expected?

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button