<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Linkhiver developer</title>
    <description>The latest articles on DEV Community by Linkhiver developer (@linkhiver_developer_799c5).</description>
    <link>https://dev.to/linkhiver_developer_799c5</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4091061%2F5edab973-cb20-404a-a1fc-b7e8e659e599.png</url>
      <title>DEV Community: Linkhiver developer</title>
      <link>https://dev.to/linkhiver_developer_799c5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/linkhiver_developer_799c5"/>
    <language>en</language>
    <item>
      <title>I measured 20 "free dofollow" backlink sites. One of them was real.</title>
      <dc:creator>Linkhiver developer</dc:creator>
      <pubDate>Sun, 23 Aug 2026 17:15:32 +0000</pubDate>
      <link>https://dev.to/linkhiver_developer_799c5/i-measured-20-free-dofollow-backlink-sites-one-of-them-was-real-4hck</link>
      <guid>https://dev.to/linkhiver_developer_799c5/i-measured-20-free-dofollow-backlink-sites-one-of-them-was-real-4hck</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;So I wrote a script and checked them. Twenty platforms, one at a time, on real published pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exactly one of them gives a free user a followed, indexable link.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not because the lists lie about &lt;code&gt;rel&lt;/code&gt;. They're often right about &lt;code&gt;rel&lt;/code&gt;. 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  The script
&lt;/h2&gt;

&lt;p&gt;Nothing clever. Fetch a real published listing page, pull the robots meta, the canonical, and the &lt;code&gt;rel&lt;/code&gt; of every outbound anchor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c"&gt;# gate.sh &amp;lt;url&amp;gt;&lt;/span&gt;
&lt;span class="nv"&gt;U&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nv"&gt;UA&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
(KHTML, like Gecko) Chrome/126.0 Safari/537.36"&lt;/span&gt;
curl &lt;span class="nt"&gt;-sSL&lt;/span&gt; &lt;span class="nt"&gt;-A&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$UA&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /tmp/body.html &lt;span class="nt"&gt;--max-time&lt;/span&gt; 25 &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$U&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-io&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;meta[^&amp;gt;]*name=["'&lt;/span&gt;&lt;span class="s2"&gt;"'"&lt;/span&gt;&lt;span class="s1"&gt;']robots["'&lt;/span&gt;&lt;span class="s2"&gt;"'"&lt;/span&gt;&lt;span class="s1"&gt;'][^&amp;gt;]*&amp;gt;'&lt;/span&gt; /tmp/body.html | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-3&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-io&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;link[^&amp;gt;]*rel=["'&lt;/span&gt;&lt;span class="s2"&gt;"'"&lt;/span&gt;&lt;span class="s1"&gt;']canonical["'&lt;/span&gt;&lt;span class="s2"&gt;"'"&lt;/span&gt;&lt;span class="s1"&gt;'][^&amp;gt;]*&amp;gt;'&lt;/span&gt; /tmp/body.html | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-2&lt;/span&gt;

perl &lt;span class="nt"&gt;-0777&lt;/span&gt; &lt;span class="nt"&gt;-ne&lt;/span&gt; &lt;span class="s1"&gt;'while(/&amp;lt;a\b([^&amp;gt;]*href=["\x27](https?:\/\/[^"\x27]+)["\x27][^&amp;gt;]*)&amp;gt;/gi){
  $attr=$1; $href=$2;
  $rel = ($attr=~/rel=["\x27]([^"\x27]*)["\x27]/i) ? $1 : "NO-REL(dofollow)";
  print "$rel\t$href\n";
}'&lt;/span&gt; /tmp/body.html | &lt;span class="nb"&gt;sort&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;h2&gt;
  
  
  Failure mode 1: the page is dofollow and noindex
&lt;/h2&gt;

&lt;p&gt;The link is followed. The page it lives on is not in the index. Nothing flows.&lt;/p&gt;

&lt;p&gt;Two of the most-recommended "free dofollow" platforms do this to free accounts specifically:&lt;/p&gt;

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

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

&lt;h2&gt;
  
  
  Failure mode 2: the canonical points somewhere else
&lt;/h2&gt;

&lt;p&gt;This one is nastier because the page passes both obvious checks.&lt;/p&gt;

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

&lt;p&gt;Every single tool page also serves:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"canonical"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://thatdirectory.example/"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Check the canonical. It takes one grep.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure mode 3: the dofollow you measured was a paid listing
&lt;/h2&gt;

&lt;p&gt;This is the one that got me, and it's the reason I'm writing this.&lt;/p&gt;

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

&lt;p&gt;Then I actually submitted to one. The confirmation email listed &lt;strong&gt;"do-follow backlinks"&lt;/strong&gt; as a benefit of the $49 tier.&lt;/p&gt;

&lt;p&gt;Go back and look at the others with that in mind and the pattern is obvious:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One directory's &lt;em&gt;product&lt;/em&gt; links are &lt;code&gt;rel="nofollow noopener noreferrer"&lt;/code&gt;, while the sponsor slots on the very same page are &lt;code&gt;rel="noopener"&lt;/code&gt; — followed. Same HTML, same template, two different link policies, sorted by who paid.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So there's a fourth gate, and it's the one nobody checks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;rel&lt;/code&gt; · &lt;code&gt;robots&lt;/code&gt; · canonical · &lt;em&gt;and which pricing tier was the page you measured published under?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;h2&gt;
  
  
  Failure mode 4: there is no link at all
&lt;/h2&gt;

&lt;p&gt;Worth checking before you spend an hour on a submission form:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A large software-comparison site: &lt;code&gt;index, follow&lt;/code&gt;, self-canonical, dedicated category pages, comparison pages — and &lt;strong&gt;zero&lt;/strong&gt; outbound anchors to the vendor. The whole page is about the product and never links to it.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;An integrations marketplace with a page per app and no link to the app's own site.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And two that block it at a completely different layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A PR-source platform's expert directory looked like a free profile with a website field. Its &lt;code&gt;robots.txt&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;  &lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: *
  &lt;span class="n"&gt;Disallow&lt;/span&gt;: /&lt;span class="n"&gt;profile&lt;/span&gt;/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every profile URL is also signed with a token and redirects to the login page without one.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The WordPress.org plugin directory. Everyone "knows" it's a high-authority free dofollow. Every vendor link on a plugin page is &lt;code&gt;rel="nofollow ugc"&lt;/code&gt;. Writing a plugin can be great distribution. It is not a link.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The scoreboard
&lt;/h2&gt;

&lt;p&gt;Twenty platforms where I could measure what a free account actually gets:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Outcome&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Followed &lt;strong&gt;and&lt;/strong&gt; indexable &lt;strong&gt;and&lt;/strong&gt; actually free&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Followed but &lt;code&gt;noindex&lt;/code&gt; on the free plan&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Followed but canonicalized away&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Followed only on paid listings (or unproven for free)&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nofollow&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No outbound link at all&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blocked by &lt;code&gt;robots.txt&lt;/code&gt; / no crawlable page&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  A mistake I made, so you don't
&lt;/h2&gt;

&lt;p&gt;Seven platforms returned &lt;code&gt;403&lt;/code&gt; or &lt;code&gt;429&lt;/code&gt; to curl. Their block pages helpfully serve:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"robots"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"noindex, nofollow"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;If a bot wall stops you, the honest status is "unmeasured." Open it in a real browser or leave the row blank.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd actually do instead
&lt;/h2&gt;

&lt;p&gt;The pattern across all twenty is consistent enough to be a rule: &lt;strong&gt;modern directories nofollow the free listing and sell the dofollow.&lt;/strong&gt; 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.&lt;/p&gt;

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

&lt;p&gt;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 &lt;code&gt;rel&lt;/code&gt; at all — I checked a national tech publication's articles while writing this, and every outbound link in the body was bare.&lt;/p&gt;

&lt;p&gt;Slower. But there's no tier that takes it away from you.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I'm building &lt;a href="https://linkhiver.com" rel="noopener noreferrer"&gt;Linkhiver&lt;/a&gt;, a link-in-bio tool localized in seven languages. The measurements above come from doing this badly for my own domain first.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>webdev</category>
      <category>startup</category>
      <category>marketing</category>
    </item>
  </channel>
</rss>
