Mastodon is the rare platform that does not fight you on this. Its official documentation gives you a bio of 500 characters by default, and separately four profile metadata rows — label and value pairs that appear as a small table on your profile.
So the honest headline is that you may not need a workaround at all. Four link rows plus a 500-character bio covers most people. This page explains how to use both properly, including the verification checkmark most people miss, and then covers the case where four is not enough.
The two places links can go
That flat 23-character cost for bio links is a genuinely useful quirk. A long URL with a deep path costs the same as a short one, so you are not penalised for linking to a specific page rather than a homepage. It is the opposite of the Discord situation, where every character of the URL is charged to you.
- Bio: 500 characters by default on Mastodon, and links inside it are clickable.
- Profile metadata: exactly four rows, each with a label you choose and a value that can be a link.
- Links in the bio count as a flat 23 characters each toward the limit, regardless of how long the URL actually is.
- Only the four metadata rows can earn the verification checkmark.
Use the four metadata rows first
Metadata rows are the better place for your important links, for two reasons. They render as a labelled table rather than being buried in prose, so a visitor scanning your profile sees the structure immediately. And they are the only links eligible for verification.
Pick your four with some discipline. Common sets: site, code, writing, contact. Or: current project, GitHub, newsletter, everything else. Use one-word labels — the label column is narrow and "Code" reads better than "My GitHub profile".
Get the verification checkmark
This is the feature most worth your time and the one most people never turn on. If you add a link back to your Mastodon profile from the page you linked in a metadata row, Mastodon can verify that you control that page and shows a green checkmark next to it.
The mechanism is a link on your page pointing at your Mastodon profile with the attribute rel="me". Mastodon's documentation sets out the conditions: the link must be served over HTTPS, the page must be under 1MB, it must not be inside an iframe, and the link must be present in the HTML rather than added later by JavaScript. That last condition is the one that trips people up — a page that renders its links client-side will not verify.
- Add a link to your Mastodon profile on your own page, with rel="me" on it.
- Put the same page URL in one of your four metadata rows.
- Save your profile; the checkmark appears once Mastodon has fetched and checked the page.
- If it does not appear, the usual cause is a JavaScript-rendered page or a non-HTTPS URL.
When four rows is not enough
Four is a real limit, and some people are past it — you ship a lot, or you want the repo and the docs and the changelog and the newsletter and a contact address. At that point the options are to rank ruthlessly and accept that some links do not make the profile, or to make one of the four rows a page that holds the rest.
Ranking ruthlessly is underrated and you should try it first. A profile with four well-chosen links is more useful than one with eleven. But if the links are genuinely of equal weight, one row pointing at a page listing everything is the cleaner answer, and it has the side benefit of being editable without touching your profile again.
What this looks like with Pagr
A Pagr page is a handle, a name and a list of links, live at pagr.nanocorp.app/yourhandle with no account and no password. It is server-rendered, which is the relevant detail here: the links are in the HTML, so a rel="me" link back to your Mastodon profile is visible to Mastodon's checker rather than hidden behind JavaScript.
To be straight about the current state: Pagr does not yet give you a field for adding rel="me" to a link, so verification through a Pagr page is not something we can promise you today. If the checkmark is what you are after, a metadata row pointing at your own site is the reliable route. Use a Pagr page for the overflow list instead, which is the job it does well.