og:site_name answers one question about a link: who published it. It is the shortest property in the Open Graph set and the only one with a second reader outside the card. We fetched 66 live pages on November 1, 2026 and 39 of them shipped it. og:title shipped on 61 of the same pages.
That 32-point gap is not laziness. The spec calls the tag optional, every "essential OG tags" checklist stops at four properties, and most templates silently delete the field the moment a single page overrides its metadata. We hit that last failure on our own homepage while collecting this data, so it gets its own section below.
What the Tag Actually Feeds
ogp.me defines it in one sentence: If your object is part of a larger web site, the name which should be displayed for the overall site. e.g., "IMDb". Six words carry the weight — displayed for the overall site. It is a label, not a headline. og:title describes the page; og:site_name describes the publisher behind every page on the domain.
Then comes the part that makes this tag unlike its siblings. Google's own documentation for site names in Search says the system that prints the site name above a result "will also consider content in og:site_name", along with the title, heading elements and other text on the home page, and adds that WebSite structured data is the most important signal when you want to state a preference. Every other Open Graph property stops at the link card. This one keeps working after the click.
Real talk: on its own, og:site_name will not overturn a site name Google has already settled on. The document says plainly that generation is automated and that structured data is the tiebreaker. What the tag buys you is removing one ambiguous signal from a decision nobody gets to make by hand — and on the chat side, it is the difference between a card stamped "figma.com" and one stamped "Figma".
What 66 Pages Ship
Method: plain GET with a desktop Safari user agent, JavaScript never executed, every property read from the bytes the server actually sent. Nine of the 75 targets refused the fetcher — six 403s (openai.com, nytimes.com, canva.com, perplexity.ai, ebay.com, udemy.com), one 401 (reuters.com), two empty 202s (imdb.com, booking.com). Sixty-six pages made it into the count.
| Checked | Result | What it tells you |
|---|---|---|
| Parsed server HTML | 66 of 75 | Nine blocked or empty responses dropped |
| Ship og:title | 61 of 66 (92%) | The headline tag is close to universal |
| Ship og:site_name | 39 of 66 (59%) | One in three cards has no publisher label |
| Ship twitter:site | 36 of 66 | The Twitter handle lags the same way |
| Value length | 3–17 chars, median 7 | 34 of 39 sit at 10 characters or fewer |
| Value is the hostname | 3 of 39 | WhatsApp.com, Walmart.com, Nike.com |
| Brand repeated in og:title | 34 of 38 | Pages that set both tags still duplicate the brand |
The length numbers retire the one piece of advice every guide repeats. There is no length problem to solve: NPR and Bun ship three characters, Smashing Magazine ships seventeen, and nobody in the sample got truncated. Coverage is the only thing broken.
Three values are not names at all. WhatsApp.com, Walmart.com and Nike.com copied the request host into a field whose entire job is to display something better than a hostname. If your template fills og:site_name with the host, you shipped a tag that does nothing but repeat the URL a few pixels higher on the card.
Of the 27 pages missing the tag, eleven ship WebSite structured data instead — nextjs.org, cloudflare.com, stripe.com, resend.com, discord.com, zapier.com, hubspot.com, netlify.com, intercom.com, monday.com and webflow.com. Those sites at least hand Google the stronger signal. Sixteen hand over neither: linear.app, digitalocean.com, anthropic.com, youtube.com, bbc.com, huggingface.co, grammarly.com, cal.com, clickup.com, tailwindcss.com, line.me, microsoft.com, trello.com, guardian.com/international, wikipedia.org's Open Graph entry and ogp.me itself. The spec author's own page skips the property it documents.
Four pages returned no Open Graph block at all in server HTML — open.spotify.com, theguardian.com/international, microsoft.com and trello.com. Those are client-rendered pages whose meta tags arrive after a scraper has already hung up, which is the same reason they show up empty in every measurement we have run on this site.
Our own homepage was in the same hole. While auditing ogimgen for this piece, the live HTML carried og:title, og:description, og:image, og:image:width and og:image:height — and no og:site_name, no og:type, no og:url. The root layout declares all three. The homepage declares its own openGraph object, and Next.js merges metadata shallowly: nested fields such as openGraph defined in an earlier segment "are overwritten by the last segment to define them". One object on one page quietly deleted three tags the layout had right.
Setting It So It Sticks
Three rules cover almost everything, and the third is the one that keeps the tag alive six months from now.
1. Write a name, not a slogan. The median value in our sample is seven characters. It must be unique, recognizable, and free of "Inc.", pipes and taglines — Google's guidance asks for a concise, commonly recognized name and warns that generic strings are unlikely to be chosen at all. If your og:site_name reads like an og:title, you have written the wrong field.
2. Use one string in three places. Google asks that the name in structured data be consistent with how the site refers to itself elsewhere on the home page. That means og:site_name, the WebSite object's name property, and the brand in your homepage title should all be the same words in the same order. Static HTML needs two lines:
<meta property="og:site_name" content="Figma" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebSite","name":"Figma","url":"https://www.figma.com/"}
</script>
In Next.js the field is siteName inside openGraph, and the shallow-merge rule above decides whether it survives. Setting it in the root layout is not enough: any page that declares its own openGraph object has to carry it too, or build the object by spreading the shared values.
// app/layout.tsx
export const metadata = {
openGraph: { siteName: 'Figma', type: 'website' },
};
// app/page.tsx — this object replaces the one above, so repeat the fields
export const metadata = {
openGraph: { siteName: 'Figma', type: 'website', title: 'Free design tool' },
};
3. Assert it in CI. Every failure in this article is silent — a page override, a hostname auto-fill, a client-rendered block. One check that fetches your rendered homepage and one article page and fails when og:site_name is missing catches all three, and costs less than the bug did.
Where the Brand Belongs
| Approach | What the card shows | Measured in our sample |
|---|---|---|
| Brand inside og:title | Long headline, brand eats the tail | 34 of 38 pages do this |
| Brand in og:site_name | Clean headline, brand as its own label | Only Atlassian ran it clean |
| Neither | Domain label, or nothing | 27 pages, 16 of them with no WebSite data |
Atlassian was the single page in the sample that got the division of labor right: og:site_name said "Atlassian" while og:title read "Collaboration for Software, IT & Business Teams" with no brand anywhere in it. Everyone else with both tags repeated the name in both places, which wastes the characters platforms cut hardest.
One Line
og:site_name is the cheapest tag in the Open Graph set to get right — one line, seven characters, no image to render — and 41 percent of the pages we measured skip it while carrying a perfectly good og:title. Write the brand once, put the same string in og:site_name and WebSite structured data, and make sure the next page override does not quietly erase it.
Paste your URL into the free OG checker to see whether og:site_name comes back in the tags a scraper reads, then build the card at ogimgen.com. Related reading: the full Open Graph meta tag list covers every property and which ones are required, og:title explains why the brand should not live there, og:url applies the same measured treatment to the tag 11 of 40 pages omitted, and how an OG checker reads your page covers the scraper side of all of this.