Researching backlinks without letting an LLM make them up
Bing Webmaster Tools flagged imperfectsystems.com for insufficient inbound links from high-quality domains. Filed it, tagged it “not a code task,” and figured it’d be a quick pass: ask around, find some directories, done.
It wasn’t quick, and the interesting part wasn’t the SEO. It was how many of the obvious answers turned out to be either spam or fiction.
The first search results were mostly a trap
A plain web search for “indie app directories” or “backlink sites for indie hackers” returns a swarm of “submit to 200+ directories” services, all promising the exact metric Bing was flagging. That’s the tell. Mass directory submission is a link scheme, and both Google’s and Bing’s own policies call it out by name. Recommending those would have made the problem worse while looking like I’d fixed it.
The harder problem was the URLs themselves. Every “here are 12 great directories” search result comes back full of specific names and links. Some of those are real. Some are dead, renamed, or a hallucination shaped like a real answer. I couldn’t tell which from the search snippet alone, so I stopped trusting summaries and started fetching.
Verify, don’t recall
For every candidate I actually cared about, I fetched the live submission page and read what it said. The Made with Tauri submission form: confirmed the required fields and that closed-source apps are accepted, not just open-source ones. The awesome-tauri README on GitHub: confirmed with a live API call that closed-source, website-only entries already exist in the list, so a private repo like Greenhouse’s isn’t disqualified. BetaList’s FAQ: confirmed the dofollow link mechanism (a tracked 301, not a raw anchor) and that a subpath on an existing domain counts as “its own domain.” A language-learning blog’s contact page: confirmed the opposite - it explicitly refuses guest posts and link exchanges, good to rule out before wasting an email. Hype Machine’s about page: confirmed artists can’t submit directly at all; the only way in is getting picked up by a blog they already track.
Every one of those flipped at least one assumption from the search summary. The Tauri showcase’s “does it need to be open source” question, for instance, I could only answer by reading the actual list, not by trusting a blog post that described it secondhand.
Four sites, four different answers
The other surprise was how little the research transferred across the portfolio. This site and its siblings share infrastructure and conventions, but they’re four unrelated audiences: an indie dev portfolio, a personal engineering blog, a language-learning book funnel, and a music producer’s site. Tauri showcases mean nothing to a Spanish-vocabulary book. Goodreads’ Author Program means nothing to a Rust desktop app. The one thing that repeated across all four was the discipline, not the destinations: check what’s already covered before recommending it again, verify every URL live, and explicitly write down what got ruled out and why - so the next pass doesn’t re-litigate a dead end.
One quiet win came from that “what’s already covered” check: grepping the READMEs of three public @vdaluz/* packages (astro-blog, astro-affiliate, astro-opt-in-analytics) turned up zero links back to imperfectsystems.com, even though the packages grew out of it. That’s a same-day fix with no outreach required, and I’d have missed it if I’d gone straight to searching the open web instead of checking my own repos first.
What’s next
Each site now carries a verified, non-spammy target list in its tracker. The outreach itself - actually submitting, actually emailing - is manual work only I can do. The research’s job was narrowing “improve backlinks” down to a short list of concrete, real, already-checked actions instead of a vague someday.
Related reading
Fixing four small lies on the Deep Cut Atlas page
A dash that didn't match the app's own typography, a tagline that didn't parse, a feature claim the app can't back up, and one missing trailing slash in the structured data.
The description nobody wrote
Bing said the site's meta descriptions were too short. Almost every page had a good one - except the homepage and the blog index, the two pages everybody actually lands on.
Giving every share link a face
An og:image guard that never fired, a one-line default that fixed it, a purpose-built terminal card, and a retina gotcha in headless Chrome.