When you include an emoji inside a hashtag on Mastodon, the way that hashtag is displayed and federated depends heavily on the server software and configuration of both your instance and the remote instance. Some servers treat the emoji as part of the tag text, while others strip it out or convert it to a plain text equivalent. This inconsistency can cause confusion when you are trying to track a discussion across multiple servers. This article explains exactly how Mastodon handles emoji within hashtags, how different server types process those tags, and what you can expect when your post reaches users on other instances.
Key Takeaways: Emoji in Mastodon Hashtags Across Servers
- Hashtag with emoji as text: Mastodon treats the emoji as literal Unicode characters inside the tag, so
#coffee☕is a different tag from#coffee. - Federation stripping behavior: Some servers, especially older versions of Mastodon or Pleroma, strip the emoji from the tag during federation and display only the text portion.
- Search and tracking limitations: A hashtag containing an emoji may not appear in the trending tags list or in search results on instances that do not support emoji in tags.
How Mastodon Processes Emoji Inside Hashtags
Mastodon uses the ActivityPub protocol to send posts between servers. When you compose a post, the hashtag parser looks for the # symbol followed by any combination of letters, numbers, underscores, and emoji characters. The emoji is treated as a valid character in the tag string. This means #cafe☕ is stored as a distinct tag in the database, separate from #cafe or #cafe☕ with a different emoji.
On your own server, the tag appears in the post as you typed it. The emoji is rendered as a small graphic next to the text. Other users on the same instance can click the tag and see all posts that use that exact emoji-tag combination. The server maintains a separate tag timeline for each unique string.
The problem begins when the post is delivered to a remote instance. The ActivityPub message includes the tag as a plain text string. The receiving server must decide how to display that tag. If the receiving server runs the same version of Mastodon, it will keep the emoji intact. But if the receiving server runs a different software or an older version, the behavior changes.
Mastodon Official Behavior (Version 4.0 and Later)
Starting with Mastodon 4.0, the official software fully supports Unicode characters in hashtags, including emoji. When a post arrives from another Mastodon 4.0 instance, the tag is preserved exactly. Users on that instance can click the tag and see the same collection of posts. The tag also appears in the trending tags list if it meets the popularity threshold, though the emoji may be displayed as a plain text character rather than a graphic in the trending panel.
Pleroma and Akkoma Behavior
Pleroma and its fork Akkoma handle tags differently. These platforms use a stricter tag parser that often strips non-alphanumeric characters, including emoji, from the tag before storing it. When a Mastodon post with an emoji hashtag arrives on a Pleroma instance, the server may remove the emoji and display only the text portion. For example, #cafe☕ becomes #cafe. This means the post is no longer associated with the original emoji tag, and clicking the tag on the Pleroma side shows only posts that used the plain text version.
Misskey and Firefish Behavior
Misskey and its forks like Firefish have their own hashtag systems. These platforms often convert the entire tag to lowercase and strip emoji during the import process. The result is similar to Pleroma: the emoji is lost, and the post is associated with the text-only version of the tag. However, Misskey does support custom emoji in the post content, so the emoji may still appear in the post body even if it is removed from the tag itself.
Steps to Test Emoji Hashtag Federation Between Servers
Before you rely on an emoji hashtag for a campaign or discussion, test how it behaves across the instances you expect to reach. Follow these steps to verify federation behavior.
- Create a test post with an emoji hashtag
Compose a new post on your instance. Include a hashtag with an emoji, such as#test🔍. Make sure the post is set to public visibility. Do not add any other hashtags to avoid confusion. - Check the tag page on your own instance
Click the hashtag in your post or navigate tohttps://your.instance/tags/test🔍. Confirm that the tag page shows your test post. The emoji should appear in the tag name at the top of the page. - Send the post URL to a user on a different instance
Share the direct link to your test post with a contact on a remote instance. Ask them to open the link and then click the hashtag in the post. Have them report what tag page they land on. If the tag page shows the emoji, the remote instance preserved it. If the tag page shows only the text portion, the emoji was stripped. - Search for the tag on the remote instance
On the remote instance, go to the search bar and type the full tag including the emoji. If the remote instance supports emoji in tags, the search should find the tag and show your post. If the remote instance stripped the emoji, the search will show no results for that exact tag. - Repeat the test with different emoji and positions
Some servers may handle emoji at the beginning of a tag differently from emoji at the end. Test with#🔍testand#test🔍to see if placement matters. Also test with multi-character emoji sequences like flags.
Common Federation Issues With Emoji Hashtags
Tag Splitting Creates Two Separate Audiences
When a remote server strips the emoji, your post is effectively split into two audiences. Users on instances that preserve the emoji see the tag with the emoji. Users on instances that strip it see the plain text tag. This means a discussion using the emoji tag is not visible to users on the plain text tag, and vice versa. If you want a unified discussion, avoid using emoji in the hashtag entirely.
Trending Tags May Not Show Emoji Variants
Mastodon’s trending tags algorithm counts uses of the exact tag string. If your emoji tag gains popularity on one server but is stripped on another, the trending list on the second server will show the plain text version with a different usage count. This can make it look like your campaign is less popular than it actually is. Check the trending tags page on multiple instances to get an accurate picture.
Search Results Are Inconsistent Across Instances
The Mastodon search index is local to each instance. When you search for an emoji hashtag, the results depend on whether that instance has indexed posts with the emoji string intact. If your home instance preserves emoji but a remote instance does not, you will not see posts from that remote instance in your search results for the emoji tag. To find all related posts, you may need to search for both the emoji version and the plain text version.
| Item | Mastodon 4.0+ | Pleroma / Akkoma |
|---|---|---|
| Emoji preserved in tag | Yes | No, stripped to text |
| Tag clickable with emoji | Yes, shows same tag | No, shows text-only tag |
| Trending tags include emoji | Yes, but emoji may display as text | No, emoji variant does not appear |
| Search finds emoji tag | Yes, if local posts use it | No, only text tag is searchable |
| Cross-instance tag unification | Partial, depends on remote server | Broken, tag is split |
If you need a hashtag that works uniformly across all servers, use only alphanumeric characters and underscores. Avoid emoji, spaces, and special characters. This guarantees that every server will treat the tag as the same string. For niche communities that all run the same server software, emoji hashtags can be a fun way to add personality, but they should not be used for critical campaigns or cross-server coordination.