DEV Community

Linkhiver developer
Linkhiver developer

Posted on

I measured 20 "free dofollow" backlink sites. One of them was real.

I run a small link-in-bio SaaS. Like every other founder with a new domain and no authority, I went looking for the "100 free dofollow backlink sites" lists.

So I wrote a script and checked them. Twenty platforms, one at a time, on real published pages.

Exactly one of them gives a free user a followed, indexable link.

Not because the lists lie about rel. They're often right about rel. They're just measuring the wrong thing — and the way they're wrong is interesting enough to be worth writing down, because the same four failure modes explain almost every result.

The script

Nothing clever. Fetch a real published listing page, pull the robots meta, the canonical, and the rel of every outbound anchor:

#!/bin/bash
# gate.sh <url>
U="$1"
UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/126.0 Safari/537.36"
curl -sSL -A "$UA" -o /tmp/body.html --max-time 25 "$U"

grep -io '<meta[^>]*name=["'"'"']robots["'"'"'][^>]*>' /tmp/body.html | head -3
grep -io '<link[^>]*rel=["'"'"']canonical["'"'"'][^>]*>' /tmp/body.html | head -2

perl -0777 -ne 'while(/<a\b([^>]*href=["\x27](https?:\/\/[^"\x27]+)["\x27][^>]*)>/gi){
  $attr=$1; $href=$2;
  $rel = ($attr=~/rel=["\x27]([^"\x27]*)["\x27]/i) ? $1 : "NO-REL(dofollow)";
  print "$rel\t$href\n";
}' /tmp/body.html | sort -u
Enter fullscreen mode Exit fullscreen mode

Run it against a competitor's listing, not your own — you want to see what the platform actually publishes, not what it promises.

Failure mode 1: the page is dofollow and noindex

The link is followed. The page it lives on is not in the index. Nothing flows.

Two of the most-recommended "free dofollow" platforms do this to free accounts specifically:

  • A popular hosted-changelog product gives you a public changelog page with genuinely followed links. The free plan force-noindexes that page. Indexing is a paid upgrade.
  • A large GIF platform's brand channels render the website field as rel="noopener noreferrer" — followed. User channels stay noindex until the brand is verified.

Both were on every list I read. Neither list mentioned the robots meta. rel on a noindex page is worth nothing, and no rel checker will tell you that, because it isn't looking at the head.

Failure mode 2: the canonical points somewhere else

This one is nastier because the page passes both obvious checks.

One well-known developer-tools directory serves robots: index, follow on its tool pages, and the vendor link is rel="noopener noreferrer" — followed. Perfect, on the surface.

Every single tool page also serves:

<link rel="canonical" href="https://thatdirectory.example/"/>
Enter fullscreen mode Exit fullscreen mode

Homepage. Site-wide. Your page tells Google "I am the homepage." A canonical is a strong hint, and while Google can reject it, you are betting your link on that rejection. I could not prove those pages get indexed independently, and I'm not going to claim they do.

Check the canonical. It takes one grep.

Failure mode 3: the dofollow you measured was a paid listing

This is the one that got me, and it's the reason I'm writing this.

I measured three launch platforms with the script. All three: followed vendor links, indexable pages. I wrote them up as "do this."

Then I actually submitted to one. The confirmation email listed "do-follow backlinks" as a benefit of the $49 tier.

Go back and look at the others with that in mind and the pattern is obvious:

  • One directory's product links are rel="nofollow noopener noreferrer", while the sponsor slots on the very same page are rel="noopener" — followed. Same HTML, same template, two different link policies, sorted by who paid.
  • Another platform's free tier requires a reciprocal badge on your own site. Not one of the five followed listings I sampled had that badge anywhere on their site — meaning those five almost certainly weren't free listings at all.

So there's a fourth gate, and it's the one nobody checks:

rel · robots · canonical · and which pricing tier was the page you measured published under?

A live page's rel is evidence about that listing. It is not evidence about yours. You often cannot know until your own page goes live — which means the honest answer for a queued free submission is "unproven," not "dofollow."

Failure mode 4: there is no link at all

Worth checking before you spend an hour on a submission form:

  • A large software-comparison site: index, follow, self-canonical, dedicated category pages, comparison pages — and zero outbound anchors to the vendor. The whole page is about the product and never links to it.
  • A startup directory whose homepage is full of followed outbound links (they're sponsor slots) while the permanent detail page for each listing links nowhere.
  • An integrations marketplace with a page per app and no link to the app's own site.

And two that block it at a completely different layer:

  • A PR-source platform's expert directory looked like a free profile with a website field. Its robots.txt:
  User-agent: *
  Disallow: /profile/
Enter fullscreen mode Exit fullscreen mode

Every profile URL is also signed with a token and redirects to the login page without one.

  • The WordPress.org plugin directory. Everyone "knows" it's a high-authority free dofollow. Every vendor link on a plugin page is rel="nofollow ugc". Writing a plugin can be great distribution. It is not a link.

The scoreboard

Twenty platforms where I could measure what a free account actually gets:

Outcome Count
Followed and indexable and actually free 1
Followed but noindex on the free plan 2
Followed but canonicalized away 1
Followed only on paid listings (or unproven for free) 3
nofollow 5
No outbound link at all 5
Blocked by robots.txt / no crawlable page 3

The one that passed everything was a plain software directory with a normal listing, no upsell attached to the link, and no reciprocal-badge condition. It is also, per Bing Webmaster Tools, the only legitimate referring domain my site has.

A mistake I made, so you don't

Seven platforms returned 403 or 429 to curl. Their block pages helpfully serve:

<meta name="robots" content="noindex, nofollow">
Enter fullscreen mode Exit fullscreen mode

I nearly recorded that as the verdict. That's the block page's meta, not the real page's. I wrote one platform off as dead on a 429 — then opened it in a logged-in browser and found a live product with 606 open queries in it.

If a bot wall stops you, the honest status is "unmeasured." Open it in a real browser or leave the row blank.

What I'd actually do instead

The pattern across all twenty is consistent enough to be a rule: modern directories nofollow the free listing and sell the dofollow. That isn't a conspiracy, it's a business model, and it means grinding a list of 100 directories is a way to spend fifty hours building the exact footprint you'll later disavow.

For context on why that matters to me: my domain has ~103 referring domains and 104 entries on its disavow file. The list-driven approach is how you get there.

What's left, once you take the directories out, is unglamorous: write things worth citing, answer questions where you genuinely have first-hand data, and get covered by publications your audience actually reads. Editorial links carry no rel at all — I checked a national tech publication's articles while writing this, and every outbound link in the body was bare.

Slower. But there's no tier that takes it away from you.


I'm building Linkhiver, a link-in-bio tool localized in seven languages. The measurements above come from doing this badly for my own domain first.

Top comments (0)