I spent a day submitting a side project to launch directories, and I made a rule for myself before I started: no listing goes live until I have measured what its outbound link actually looks like. Not what the pricing page claims. What the HTML says.
I looked at about fifteen. Six of them do not give you the link they advertise. One advertises it in a way that is technically true and practically useless. And one had already quietly downgraded a link I earned weeks ago, without telling me.
Here is the measuring, the results, and the two traps I walked into so you do not have to.
The measurement is one curl and one grep
Everything below comes from this. No tools, no subscriptions.
curl -sL -A "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/127 Safari/537.36" \
"https://directory.example/listing/some-product" > page.html
# 1. Is the listing page even indexable?
grep -oiE '<meta[^>]+name="robots"[^>]*>' page.html
# 2. What does the link to the product's own site look like?
grep -oE '<a [^>]*href="https?://theproduct\.com[^"]*"[^>]*>' page.html
Three things matter in the output, and people usually check only the second one.
Is there a <meta name="robots"> with noindex? A dofollow link on a page Google will not index is worth roughly nothing. Two of the directories I checked are noindex on exactly the page that carries your link.
Does the anchor carry nofollow? rel="noopener noreferrer" is a dofollow link. rel="nofollow noopener noreferrer" is not. That single word is the whole product being sold.
Is there an <a> at all? This is the one that surprised me, and I will come back to it.
Do this on three or four different listings, not one, and pick listings that look like free ones rather than the ones featured on the homepage. That is the entire trick, and it is the reason the numbers below look nothing like the marketing.
The results
Tier-gated: the word "do-follow" appears only in the paid column.
One large launch board states it plainly in its own FAQ, which I only found after checking the listings:
Free launches need the badge on your site and wait their turn in the queue. Premium skips both: you choose the exact date, get a guaranteed homepage feature, and keep a permanent do-follow backlink, with no badge required.
The free column lists "public product listing" and "badge required on your site" and says nothing about rel. I sampled eight live listings: four came back rel="noopener noreferrer", four came back rel="nofollow noopener noreferrer". A clean split. Their own JavaScript settles it, because the launch form carries a per-plan flag called backlink and a paid add-on to switch it on.
So the free tier there is: host our badge forever, get a nofollow link. That is not a trade, that is a favour.
Silently downgraded after the fact. I had a badge in my footer from a directory that promised three dofollow links in exchange for it. I measured it again on the way past. All three links now read rel="nofollow noopener noreferrer". Nobody emailed me. The badge had been working for free for weeks. It is out of the footer now.
The lesson is not that they are villains. It is that a badge-for-link deal is one you have to re-check, because only one side of it is enforced automatically. They verify your badge on a schedule. Nobody verifies their rel but you.
No link whatsoever. This is the one worth knowing about. On the big software review sites in one particular network, I could not find the vendor's link at all. Not nofollow. Absent. The "Visit Website" control is a <button>, the redirect happens in JavaScript, and the header of the page says the quiet part out loud:
We may earn a referral fee when you visit a vendor through our links.
Which makes sense once you say it: a tracked affiliate redirect is not a citation, and there is no reason for them to make it one. If you are chasing those listings, chase them for the buyer traffic and the reviews. There is no link to win.
The no-op rel token. One directory ships rel="noopener noreferrer dofollow". There is no such thing as rel="dofollow". It is a token search engines ignore entirely; the link is dofollow because nofollow is absent, not because somebody typed the opposite. Harmless in itself, but seeing it told me something about how carefully the rest of the site was built, and its product pages turned out to be noindex anyway.
And the honest ones. Two sites measured exactly as advertised. One free tier says "get 1 dofollow link" and means it. Another puts "permanent dofollow backlink" in the free column, and its live listings are server-rendered index, follow with rel="noopener noreferrer" on the product link. On a third, I sampled eight random launches and got eight dofollow links with no nofollow anywhere, which told me its rel is not tier-gated at all: what its paid tier sells is homepage placement, not link equity.
Those three got a badge in my footer, and I would do it again. The point of measuring is not that directories are a scam. It is that you can tell the fair ones from the rest in two minutes, and then spend your footer on the fair ones.
Two traps I walked into
I broke my own audit with a hostname filter. My first pass over one directory reported "no outbound links found" on every listing, which was nonsense. My script excluded any anchor whose tag mentioned the directory's own domain, to skip internal navigation. But their outbound link looked like this:
<a href="https://theproduct.app/?ref=https%3A%2F%2Fdirectory.example%2F" rel="noopener noreferrer">
The directory's domain sits inside the ref parameter, so my filter threw away the exact link I was measuring. If an audit tells you a page has zero outbound links, suspect the audit first. Filter on the parsed hostname of the href, not on the raw tag text.
Your bot protection can make your badge invisible. Several of these sites verify the badge by fetching your homepage from their own servers and looking for it. If you sit behind a bot-challenge product, those datacenter requests can get a JavaScript interstitial instead of your HTML, and verification fails while the badge is plainly there in a browser.
I could not see their side, so I reproduced what I could: from my own IP the page returned the badge under every Accept-Language variant and under python-requests, node-fetch, axios, Go-http-client and curl user agents. So neither the UA nor the cache was the problem. The proof came from the directory itself: on its review step, its own metadata crawler had filled my product title in as "Just a moment...", which is the title of a Cloudflare challenge page. Their crawler had been talking to the challenge, not to me.
Two other directories' verifiers sailed through on the same day, so this is per-crawler, not a blanket block. Turning the protection off for the length of one verification click fixed it. If a verifier insists your badge is missing, check whether the site can see your HTML at all before you start editing your footer, and if the directory offers DNS TXT verification instead, that path skips the fetch entirely.
What I would tell myself before starting
Check robots, check rel, and check that an <a> exists, on three or four free listings. Do it before you spend a footer slot, because footer slots are finite and every badge is a permanent obligation the other side will keep checking. Re-measure the badges you already have, because at least one of mine had gone nofollow without a word. And keep the row short. Six badges reads as a community. Twenty reads as a link scheme.
None of this is exotic. It is a curl, a grep, and the discipline to look at the free tier instead of the pricing table.
I write these while building Convertica, a set of browser PDF and image tools with no signup wall, which is the side project I was submitting all day. The engineering half of the story is mostly fonts: getting text you type into a PDF to come out as real selectable text in Cyrillic, Arabic and Devanagari instead of boxes is most of the work behind the editor, and it is a better story than directory rel attributes. Maybe next time.
Top comments (0)