BLUF: an HTTP 200 from a social platform is not evidence that a profile exists. Auditing an Organization.sameAs array means answering one question per entry -- does this profile actually exist? -- and the platforms split cleanly into two groups: ones where a plain curl gives a trustworthy answer, and ones where every response is a 200-with-login-wall that carries no existence information at all. Treating the second group's 200 as confirmation is how a stale or fabricated sameAs entry survives an audit. Verified live 2026-08 with curl plus a desktop Chrome User-Agent.
This matters because sameAs is a reconciliation claim, not a link list. Search engines check the target and, ideally, a link back. An entry pointing at a profile that was never created is a claim that cannot be reconciled, so the audit step is load-bearing -- and the audit tool is the thing that quietly fails.
The results matrix
github.com/<org> | 200 | Yes -- <title> carries the display name; nonexistent orgs 404 |
youtube.com/@<handle> | 200 | Yes -- <title> carries the channel name |
twitter.com/<handle> | 301 to x.com/<handle> | Redirect only; says nothing about the handle |
x.com/<handle> | 200 | Weak -- body is a JS shell |
instagram.com/<handle>/ | 200 | None -- login wall, zero content markers |
instagram.com/<handle>/embed/ | 200 | None -- same, despite being the "public" embed path |
linkedin.com/company/<slug>/ | 200 | None -- auth wall, no og:title |
reddit.com/r/<sub>/about.json | 200 | None -- returns HTML, not JSON (see below) |
The Reddit one is the real trap
/r/<sub>/about.json is a long-documented JSON endpoint, and it is the obvious way to check whether a subreddit exists. From a scripted client it returns an HTML document -- the body opens <body class=theme-beta><div><style>.theme-light,:root{--rem360:22.5rem;... -- i.e. the web app's CSS custom-property block, not JSON. There is no error status and no JSON error envelope; a naive json.loads on it throws a parse error that looks like a transient network problem rather than "this endpoint served you the SPA." Anything that pipes the response through a decoder will report a bug in the wrong layer.
The trailing-slash and legacy-host noise
Two more findings that matter specifically for sameAs correctness, because the property should name the canonical URL rather than a redirect:
reddit.com/r/<sub>301s toreddit.com/r/<sub>/. The un-slashed form in asameAsarray is a redirect, not the canonical target.twitter.com/<handle>301s tox.com/<handle>. Listing both, which is easy to end up with after years of edits, puts the same entity in the array twice under two hostnames.
A probe that follows redirects silently (curl -L) hides both. Probe without -L first and record the redirect_url:
curl -sS -o /dev/null \
-w '%{http_code} %{redirect_url}\n' \
-A 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/126 Safari/537.36' \
--max-time 15 "$url"What to actually do
Use per-platform content tells, never status codes, and pick a tell that a login wall cannot satisfy:
# reliable: the title contains the entity's own name
curl -sS -A "$UA" "https://github.com/<org>" | grep -o -E '<title>[^<]*</title>'
curl -sS -A "$UA" "https://www.youtube.com/@<handle>" | grep -o -E '<title>[^<]*</title>'For Instagram, LinkedIn, and Reddit, accept that a server-side probe cannot answer the question and escalate: drive a real browser session, use the platform's authenticated API, or fall back to a human-maintained record of which accounts were actually created. Do not let a 200 close the ticket.
Limitation, stated plainly: these were positive-case probes against handles believed to exist. I did not run negative controls (a known-nonexistent handle) against Instagram or LinkedIn, so the precise claim is narrower than "they 200 for everything" -- it is that the response body contains no marker distinguishing an existing profile from a wall, which is enough to make the probe useless either way. If you need the stronger claim, probe a deliberately bogus handle alongside the real one and diff the bodies; that is the cheap experiment I would run first next time.