Following cleanup gets messy when every account looks like a yes/no decision.

I use a better split: keep, mute, or unfollow. That makes a Bluesky following cleanup slower than a purge, but it avoids the mistake that matters: unfollowing inactive Bluesky accounts that still give you useful context.

Use TheBlue.social's Clean Up Followings tool for the review pass. Then use this checklist before you remove anyone.

Start with what Bluesky can actually show

Bluesky has a public API endpoint that enumerates the accounts a profile follows. The official app.bsky.graph.getFollows docs describe it as the endpoint that returns accounts a specified actor follows. See the getFollows API docs.

That matters because a cleanup tool can help you review your following list without pretending to know your intent.

A tool can show accounts, help with filters, and make the workflow faster. It still cannot know that one quiet account is your best source for local news, maintainer updates, or niche replies.

The three-way split

My passes are simple:

  • Keep accounts that still explain the network I care about.
  • Mute accounts that are useful but too loud right now.
  • Unfollow accounts where the reason is gone.

The split keeps the review boring in a useful way.

Decide what stays

An inactive account is not automatically useless.

I keep inactive or quiet accounts when they still answer one of these:

  • Did I follow this person because they work on a tool I use?
  • Do their old posts, replies, or profile links still point me to useful people?
  • Are they part of a community I still want to understand?
  • Would I search for them again if I unfollowed them today?
  • Did they post rarely even when the account was useful?

Creators make this mistake a lot. They clean up by recency only, then wonder why their feed loses the quiet accounts that made the network useful.

Recency is a signal. It is not the decision.

Keep accounts that provide context

For creator accounts, useful context is often indirect.

Some accounts rarely post original material but reply to the right people. Others mostly repost technical updates, grant announcements, community notes, or local information. A dormant account can still matter because the project shipped, the conference ended, or the person moved to a new job, while the account still points to the network around that topic.

I keep those when the account still helps me understand the niche I am posting into.

Manual review beats pure inactivity filters here. A filter can tell me the account has been quiet. It cannot tell me the account is the one I use to remember a maintainer, newsletter, city group, or old starter pack source.

Mute when the problem is volume

Sometimes the account is still useful, but the feed cost is too high.

I mute those accounts before I consider unfollowing them.

Bluesky's help article says muting prevents notifications and top-level posts from an account from appearing for you, and the account does not know it has been muted. See Bluesky moderation and custom feeds.

I use mute when:

  • The account is posting through an event I do not care about.
  • The account is useful once a month and noisy every day.
  • The account is a friend, customer, collaborator, or source I do not want to remove.
  • I want less of the account now, but I might want it back later.

Mute is reversible and quiet. Good enough.

Unfollow when the original reason is gone

I unfollow when I can name the reason.

Good reasons:

  • The account has changed topics completely.
  • I followed it for a launch, job search, conference, or one-time event.
  • It is a duplicate project account.
  • It is inactive and has no useful archive, links, or community context for me.
  • It no longer matches the audience I am building for.

Bad reasons:

  • I do not recognize the handle after two seconds.
  • The account has not posted this week.
  • I am trying to make a ratio look cleaner.
  • I am bored and want a big cleanup number.

The last one is how people remove accounts they later need.

Use small batches

Do not turn a Bluesky following cleanup into a giant admin job.

Open Clean Up Followings, review a batch, make obvious decisions, and stop. If you are following hundreds or thousands of accounts, recurring review works better than one heroic afternoon.

Bulk tools should reduce clicking. They should not reduce judgment.

Official Bluesky docs also list rate limits for authenticated API work and say bulk or spammy interactions are against the community guidelines. See Bluesky rate limits. That is another reason to review in batches instead of treating cleanup as a race.

Batch checklist

For each batch, I use this order:

  • Sort or filter the list until I have a manageable set.
  • Open profiles only when the handle or bio does not give enough context.
  • Keep obvious context accounts without overthinking them.
  • Mute useful-but-noisy accounts in Bluesky.
  • Select obvious unfollows in the cleanup tool.
  • Stop before the decisions get sloppy.

The last step matters. When I start guessing, I stop. The account will still be there next time.

Connect tools carefully

If a third-party tool needs Bluesky account access, use an app password rather than your main account password.

Bluesky's API posting guide uses a BLUESKY_APP_PASSWORD for authenticated examples and points readers to app passwords for account authentication. See Posting via the Bluesky API.

The practical rule:

  • Create an app password for the tool.
  • Use it only for that tool.
  • Delete it later if you stop using the tool.

Nothing fancy. Just do not hand your main password to random utilities.

What I would not automate

I would not automate "inactive means unfollow."

It sounds efficient and usually creates bad removals. The accounts I most regret unfollowing are rarely active accounts with obvious bios. They are quiet accounts that anchored some part of the network: a local reporter, an open-source maintainer, an early community member, or a project account that only posts when something ships.

Automation is useful for collecting candidates. It is weaker at deciding meaning.

Check the result

The point of a following cleanup is not a smaller number.

The point is a better feed and better posting feedback.

After you unfollow inactive Bluesky accounts, watch what changes:

  • Is the Following feed easier to scan?
  • Are replies coming from accounts you still care about?
  • Are you finding better post ideas because the feed is less stale?
  • Are your analytics easier to interpret because the network around you matches your current work?

If you are actively creating on Bluesky, pair cleanup with Bluesky analytics and a simple posting rhythm. The cleanup fixes input quality. Analytics shows what your audience responds to. Scheduling keeps you from disappearing for two weeks, then overposting for a day.

The recurring habit

I would rather spend 10 minutes a week than two hours every few months.

A weekly pass keeps the decisions obvious:

  • Accounts from last week's event either still matter or they do not.
  • New follows from a starter pack are still fresh in memory.
  • Accounts that changed topics are easy to spot.
  • The feed never gets bad enough that cleanup feels like a separate project.

I would use analytics around cleanup the same way. One cleanup session will not cause a clean engagement jump by itself. I would look for better inputs: more useful replies, fewer stale posts in the Following feed, and clearer ideas for what to post next.

The paid plan can make sense once this becomes a real habit. Start with the free cleanup workflow. If Bluesky is part of your actual creator workflow, use TheBlue.social pricing to decide whether recurring cleanup, deeper limits, and analytics are worth paying for.

A practical pass

Here is the kind of cleanup I would do.

First I open the cleanup tool and look for accounts I followed during a specific moment: a launch week, a conference, a breaking-news cycle, or a starter pack I used to explore a new niche. Those accounts are easy to judge because I remember why they were added.

Then I separate them by current use.

An account from a conference might still be useful if it posts year-round industry updates. Sponsor accounts that only posted booth photos are probably gone. A speaker who stopped posting but still points to a good blog or newsletter can stay. For high-volume live commentary accounts, I usually mute until the next event.

After that, I check the accounts I do not recognize. I do not delete them immediately. I look at the bio, recent posts, and why the account might have entered my network. If I still cannot name a reason, I unfollow it.

That takes longer than clicking every inactive account. It also leaves me with a better feed.

My cleanup rule

I keep accounts for context.

I mute accounts for volume.

I unfollow accounts when the reason is gone.

That is enough structure to clean up a messy following list without breaking the parts of Bluesky that still work for you.

Last updated: June 9, 2026