Outbound links on 27 homepages: 546 of them, and where they point

Outbound links are the links SEO advice is about, and homepages do not use them the way the advice assumes. We parsed every anchor on 27 homepages and counted 546 links to other companies across 208 domains — 36 percent point at a social or video platform, and only 14 percent carry any rel qualifier.

Crawling & Indexing7 min read1624 views
Outbound links on 27 homepages: 546 of them, and where they point

FIELD TEST · 2026-09-15 · 27 homepages · 546 outbound links · one pass

Sample and method: the same 30-domain panel this series has used since 2026-08-15, one request per homepage on 2026-09-15 with a desktop Chrome user agent, no JavaScript. We parsed every <a> tag in the delivered HTML and kept the links whose registrable domain differs from the site's own. Every number below is recomputed from the saved HTML, not typed by hand.

Outbound links are the links SEO advice is about, and they are not what homepages actually do. Across 27 homepages we counted 546 links to other companies, spread over 208 domains. Roughly a third of them point at a social or video platform, and only 14 percent carry any rel qualifier at all. The link an editor would cite as a source is the rare one.

How we measured

We fetched each homepage once, saved the delivered HTML, and then walked every anchor element. A link counted as outbound only when its registrable domain differed from the site's — so status.stripe.com from stripe.com did not count, while github.com from stripe.com did. Three domains returned 403 to our client and were dropped, leaving 27.

curl -s -L --compressed \
  -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" \
  https://example.com/ -o page.html

python3 -c "
from html.parser import HTMLParser
from urllib.parse import urlparse
class P(HTMLParser):
    def __init__(s):
        super().__init__(); s.h=[]; s.c=None
    def handle_starttag(s,t,a):
        if t=='a': s.c=dict(a).get('href','')
    def handle_endtag(s,t):
        if t=='a' and s.c is not None: s.h.append(s.c); s.c=None
p=P(); p.feed(open('page.html').read())
site='example.com'
for h in p.h:
    if h.startswith(('http://','https://')):
        d=urlparse(h).hostname or ''
        if d.split('.')[-2:] != site.split('.')[-2:]:
            print(h)
"

Two things this method cannot see. It reads the delivered HTML, so links injected by JavaScript after load are invisible to it. And it counts an anchor once no matter how it is rendered — a link in a footer menu and a link in the first paragraph are worth the same in our totals, even though they are not worth the same to a reader.

What the 27 homepages link out to

The median homepage carries 13 outbound links. The distribution is long: one page carries 84, another carries none. The table is the whole panel, sorted by count.

SiteOutboundDomainsNofollow
theverge.com845556
nextjs.org74190
react.dev6490
mozilla.org50270
framer.com3090
shopify.com30237
supabase.com3070
ycombinator.com29270
slack.com26150
wired.com16135
vercel.com15120
github.com14120
webflow.com14140
netlify.com1390
arstechnica.com970
techcrunch.com998
wikipedia.org950
bbc.com630
stripe.com650
figma.com440
gitlab.com440
notion.com330
cloudflare.com220
nytimes.com210
railway.com220
substack.com110
reddit.com000

One row is worth pausing on. Reddit's homepage returned a 200 and 8,397 bytes of HTML with no outbound link in it at all. That is not a broken page; it is a page whose job is to send you into its own threads. The second observation is that the nofollow column is almost entirely zeros — only four of the 27 homepages put nofollow on any external link, which fits the wider picture in the rel attribute across 5,104 links.

Where the outbound links actually point

Fifteen domains account for 291 of the 546 links, more than half. The top of that list is not a source or a partner; it is a video platform.

DestinationLinks
youtube.com82
github.com30
x.com28
vercel.com28
instagram.com18
facebook.com12
linkedin.com12
twitter.com11
bsky.app10
tiktok.com9
shopify.dev8
condenast.com7
firefox.com7
mozillafoundation.org7
pmc.com7

Grouped by kind, 195 of the 546 links — 36 percent — point at a social or video platform, and YouTube alone takes 82 of them. A further slice points at a sister property of the same parent company: vercel.com is the top outbound destination on nextjs.org and react.dev, and condenast.com appears across the Condé Nast titles. What almost never appears is the thing SEO writing tells you to add: a link to the primary source behind a claim.

Where on the page the links sit

The same 546 links, split by the landmark element that contains them. The buckets overlap, because a footer inside a nav inside a main is one link in three buckets, so read this as "how many links live inside a footer at all", not as a partition.

ContainerLinks
Inside <footer>269
Inside <main> or <article>184
Inside <nav>145

Half the outbound links on a homepage sit in a footer. That matches the destination table: footers are where the social icons live. The 184 links inside main content are the interesting minority, and they are concentrated on a few sites — a documentation homepage like react.dev links out to its ecosystem from the body, not from a footer.

What Google actually asks for

Google's guidance on outbound links is narrower than the debate around them. It gives one instruction for normal links and three values for the rest.

"For regular links that you expect Google to fetch and parse without any qualifications, you don't need to add a rel attribute." — Google Search Central, Qualify your outbound links to Google, retrieved 2026-09-15

The three values it does define are sponsored for ads and paid placements, ugc for user-generated content, and nofollow for everything else where you would rather Google not associate your site with the linked page. On the panel, sponsored appeared twice and ugc not once.

rel valueUse it forOn panel
noneNormal editorial links468
nofollowLinks you don't want to vouch for76
sponsoredAds and paid placements2
ugcComments and forum posts0

Read together, the two facts are not a contradiction. A homepage's social icons and its sister-product links are not paid placements and not user content, so per Google's own page they need no attribute. The absence of nofollow is not an omission; it is the documented default. If you want the longer version of the rel decision, it is written up as nofollow vs dofollow links.

What this means for your own page

The useful move is not to add more of them or fewer. It is to know which of the three kinds you have, because they carry different expectations.

  1. List every external link on the page with the command above, and mark each one as editorial, paid, or user-generated.
  2. Leave editorial links unqualified. Adding nofollow to a link you actually vouch for throws away the signal for no reason, and the anchor text you choose there is its own decision — see how to write anchor text.
  3. Put sponsored on anything you were paid to place, and ugc on anything a visitor wrote. This is the part Google's page is explicit about.
  4. Check the footer separately. It is where half the external links on these homepages live, and it is the part nobody rereads.
  • Treat the outbound link as a statement about who you trust. If you would not say it in the sentence, do not put it in the footer.
  • Do not nofollow every external link to "keep the link juice". Google's own page tells you a normal editorial link needs no attribute, and mass-nofollow is a habit, not a policy.

There is a second reason to look at this that has nothing to do with PageRank. AI engines pick sources partly by following who cites whom, and a page that cites its own sources is easier to place in that graph than a page that cites only its own social accounts. If your only outbound links are icons, you have told the crawler where you post, not what you read. A crawler accessibility check shows you what an AI crawler actually receives from the page.

Common questions

How did you measure this?

One request per homepage on 2026-09-15 with a desktop Chrome user agent, no JavaScript, redirects followed, response saved as bytes. We then parsed the saved HTML for anchor elements and counted only those whose registrable domain differed from the site's. The panel is the same 30 domains used across this series; canva.com, medium.com and stackoverflow.com returned 403 to our client and are excluded, which leaves 27.

Do outbound links help or hurt rankings?

Google's outbound-link page describes how to qualify links, not how they affect ranking, and we did not measure ranking here. What we can say is narrower: Google documents no penalty for ordinary editorial links, and it documents the three values to use for the ones that are not ordinary.

Is nofollow still respected?

The page says links marked with these values "will generally not be followed", which is the current wording. We did not test how any crawler behaves, so everything in this article is about what the HTML declares, not about what any engine did with it.

Why is YouTube the top destination?

Because a footer social row is a standard pattern and a video channel is one of its entries. We cannot tell you which of the 82 YouTube links a reader ever clicks; we only counted the declarations.

Should I add outbound links to get cited by AI?

We do not have data that says a page with more outbound links gets cited more, and we are not going to claim it. The defensible version is weaker: an outbound link to a source is a machine-readable statement about where a claim comes from, and that is information a citation system can use.

Outbound links on 27 homepages: 546 of them, and where they point