
Logo Schema Markup: How to Help Google Recognize Your Business Logo
Quick Answer
Logo schema markup is Organization structured data with a logo property, added as JSON-LD to one page of your site, usually the home page or the about page. It tells Google which image to treat as your official logo in Search results and knowledge panels. No fields are strictly required; add your name, your URL, and a logo image that is at least 112 by 112 pixels and not blocked from crawling. It helps Google pick the right logo. It does not guarantee a knowledge panel.
Adding a logo to structured data is a small promise you make to Google: this exact image is our logo, use it when you show us. It's also one of those jobs that sounds like it belongs to a developer and turns out to be a dozen lines you paste once and almost never touch again.
The catch is that most guides oversell it. What a logo in your markup actually does is quieter, and still worth doing: when Google decides to show a logo next to your business name, this is how you tell it which file to use instead of guessing. What it doesn't do is a longer list, and that's where most of the confusion starts.
The short answer
Logo schema markup is a small block of Organization structured data with a
logo property. You add it as JSON-LD, a <script> tag in the page's HTML, on
one page of your site. It names the image Google should treat as your official
logo, the one that can sit next to your name in Search results and, if Google
chooses to show one, a knowledge panel.
Here is a complete, valid block for a small business. Change the three values and
paste it into the <head> of your home page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Bakery",
"url": "https://www.example.com",
"logo": "https://www.example.com/logo.png"
}
</script>
That is the whole thing. name is your business name, url is your canonical
home page, and logo is the full URL of the image file. If you do nothing else
on the page, do that.
What it does, and what it can't
Structured data is a hint, not a command. Google's own line is that it "does not
guarantee that features that consume structured data will show up in search
results." So the logo property makes you eligible and removes the ambiguity
about which image is yours. It can't force any particular result to appear.
It helps to know that your logo lives in three different places, and they are not the same file:
- The favicon is the small icon in the browser tab. It's a separate, much smaller image than a schema logo, with its own guidelines.
- The
og:imageis the social preview that shows up when someone shares your page. That is a wide banner, not a logo, and it has its own rules. If that one is on your list too, how to make an OG image from your logo covers it. - The schema
logois the square-ish brand mark Google may show beside your name in Search.
People point all three at the same file and wonder why the result looks wrong. A
favicon is too small for schema, and a banner is the wrong shape. Give the logo
property a real logo.
The image has to be reachable
There's one requirement people miss more than any other: the logo image URL must
be crawlable and indexable. Google can read your markup, see the
logo line, go to fetch the file, get blocked, and quietly move on without a
logo. The markup was fine. The image was the problem.
Two things block it. The first is robots.txt. If the folder your image sits in is
disallowed, Googlebot never downloads it. The second is a noindex instruction
on the file itself, usually an X-Robots-Tag header some security plugins add to
media. Open the image URL in a private browser window. If it loads as a plain
image and nothing is blocking it, you're clear. If you're not sure what your
robots file is doing to your image paths, the
robots.txt guide
walks through checking exactly that.
What the logo image needs to be
Google's requirements for the image are short:
- At least 112 by 112 pixels. Bigger is fine. A crisp, roughly square image around 500 pixels on a side is a safe target. Don't reuse a 48-pixel favicon and expect it to qualify.
- A format Google Images supports: PNG, JPEG, WebP, SVG, AVIF, GIF, or BMP. For a logo, PNG or SVG. If you're unsure which, PNG vs SVG for logos covers the trade-off.
- It should look right on a plain white background, because Google may place it on one. A white logo on a transparent background disappears completely. Keep a version with visible marks on white for this.
- The URL must be crawlable and indexable, as above.
That's the full list. There is no minimum file size, no required aspect ratio, and no rule about padding.
Put it on one page, not all of them
Google recommends placing Organization data on your home page, or on a single page that describes the business such as an About page, and specifically says you don't need it on every page. One authoritative block is cleaner than the same block repeated forty times.
This matters more than it sounds, because a lot of themes and plugins already inject Organization markup site-wide. If yours does, adding a second block by hand gives you two Organization definitions describing the same business. Check what your site already outputs before you paste anything. Two competing blocks muddy the signal you were trying to send, so it's cleaner to keep one.
The extras worth adding
Past name, url, and logo, a couple of optional properties earn their place.
sameAs lists your official profile URLs, which helps Google connect your site
to the same organization elsewhere:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Bakery",
"url": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"sameAs": [
"https://www.instagram.com/examplebakery",
"https://www.facebook.com/examplebakery"
]
}
</script>
Only list profiles you actually control and keep current. The one rule for every optional field: put in what is true. Don't invent a founding date or an award to fill the block out. Empty is better than wrong.
One type note. If you're a physical, walk-in business, LocalBusiness is a
subtype of Organization that carries the same logo property plus address,
hours, and geo-coordinates. Pick the type that matches what you are, and use one,
not both.
Adding it on the usual platforms
You rarely need to hand-edit raw HTML for this.
- WordPress. Yoast and Rank Math both output Organization markup once you fill in the site's name and logo in their settings. In Yoast it's the "Organization or person" option under Site representation; set the logo there and let the plugin emit the JSON-LD. Don't also paste a manual block, or you get duplicates.
- Shopify. Some themes include Organization JSON-LD and some don't, and a
theme's logo setting often only feeds the header rather than a schema
logo. Check your rendered page source first. If the Organization block is missing, add it in the theme code, usually a structured-data snippet or the<head>intheme.liquid. - Squarespace and Wix. Both let you drop a custom code block into the site-wide header. Use that for the script, but first confirm the platform isn't already emitting Organization markup, so you don't double it.
The pattern is the same everywhere: prefer the built-in setting, and only hand-write a script when there isn't one.
Validate it in two minutes
Two tools cover this, and they answer different questions.
- Run the Schema Markup Validator. Paste your URL or the code. This confirms the JSON-LD is well-formed and the property values are what you think they are. Most mistakes are a stray comma or a URL with a typo, and this is where you catch them.
- Run the Rich Results Test. There's no separate "Logo" result any more; Google folded logo into Organization in late 2023, so a valid block is detected as an Organization item, not a "Logo" card. A clean Organization detection with no errors is the pass, and warnings about missing optional fields are fine to ignore.
Then give Google time. Nothing here is instant. Google has to recrawl the page before any of it registers, so check back in a few days rather than refreshing Search the same afternoon.
What it will not do
Worth being blunt about the ceiling. Logo markup does not create a knowledge panel. Panels come from Google's own understanding of your business built up across the web, and plenty of small sites never get one no matter how clean their markup is. It won't move your rankings either, and it can't force your logo to appear. What it settles is which image is yours for the moments Google does choose to show one. Useful, and worth the ten minutes. Just don't expect it to do more than that.
Mistakes that quietly waste the effort
- Pointing
logoat a blocked or noindexed image. The markup validates, the image never loads, and nothing tells you. - Using the favicon. It's the wrong image and under 112 pixels, so it won't qualify.
- A white logo on a transparent background. It vanishes the moment Google puts it on white.
- Two Organization blocks. A plugin's and your own, competing.
- Putting it on every page. One page is what Google asked for.
- Padding the block with things that aren't true. Fake awards and invented dates are a trust problem, not a completeness win.
Generate a clean block
If you'd rather fill in fields than hand-write JSON, the Brandize schema markup generator builds an Organization block, logo included, that you can copy straight into your page. Generate it, run it through the validator, and paste it in once.
From there, the meta tags reference covers the page-level tags that shape how your pages show up in Search and social previews, and if a developer is doing this for you, how to hand off a brand kit to a designer or developer lists what to give them so the logo they wire up is the right file at the right size.
Ready to create your logo?
Generate a professional SVG + PNG logo in under 30 seconds.

