Advertisement
Logo fetched and parsed live

BIMI Checker
Your Record, Your Logo File, and Why It Is Not Showing

Reading the default._bimi record is the easy half. This checker also downloads the SVG at your l= URL and parses it against the SVG Tiny Portable/Secure profile rule by rule, follows the organisational-domain fallback a real receiver follows, and puts all of it behind the whole DMARC gate BIMI depends on — including the one tag the DMARC standard deleted in May 2026.

Check a BIMI record and the logo it points to

Enter the domain your mail is sent from. We read the BIMI record, read DMARC on that domain and on its organisational domain, then fetch the logo and the certificate over HTTPS and check what we were served. Nothing is stored.

The domain in your From address — example.com, not default._bimi.example.com and not a URL. Paste either of those and we will work out what you meant.

Leave this blank unless your mail platform told you otherwise. A selector lets one domain publish several logos; default is what a receiver uses when the message carries no BIMI-Selector header, and it is what almost every domain publishes.

Try:

Quick Answer: how do I check whether my BIMI logo will actually show?

Four things have to be true at once. Your DMARC policy must be quarantine or reject on the domain and on its organisational domain. A single TXT record at default._bimi.yourdomain.com must publish an l= URL over HTTPS. The file at that URL must be SVG Tiny Portable/Secure — which means version="1.2", baseProfile="tiny-ps" and a non-empty <title>, the three things drawing tools leave out. And for Gmail and Apple Mail, an a= certificate. The checker above tests all four, including downloading and parsing the logo itself.

Advertisement
Robert Harrison, OSINT & Network Utility Expert, on BIMI records and logo validation at TrustMyIP.com
Written & Verified By

Robert Harrison

OSINT & Network Utility Expert

Robert works on DNS, network diagnostics and the record-level tooling across TrustMyIP, including the SPF, DKIM, DMARC, MTA-STS and BIMI family.

Every rule this checker applies was read out of the BIMI and SVG Tiny P/S drafts and Google’s and Yahoo’s own documentation rather than copied from another tool, and each one was then re-checked against the code line by line — 46 rules quoted and compared, none diverging. The hard part was not the record. It was that the logo URL comes out of somebody else’s DNS, which means this page parses XML a stranger controls: the parser was attacked with ten entity and external-entity documents while a canary file sat on disk waiting to be leaked, and it never was. A 36,213-case fuzz run then found a defect the 396 hand-written assertions had missed, in the code deciding whether a logo is safe to draw. It is fixed, and it has a regression test.

Last reviewed 22 September 2026 · Published 22 September 2026

View all articles by Robert Harrison
Advertisement

What This BIMI Checker Tests, and Why the Record Is the Easy Half

BIMI — Brand Indicators for Message Identification — puts your logo next to your name in someone’s inbox. Setting it up takes three pieces: one TXT record in DNS, one SVG file on a web server, and usually one certificate on a web server too. The record is trivial. The SVG is a file in a format almost no drawing tool exports correctly, served over HTTPS from infrastructure with a certificate and a deploy pipeline of its own. That is where setups die.

The evidence is not a hunch. On 23 September 2026 we resolved default._bimi across 196 large, well-known domains. Ninety publish a record. Every one of the 87 logo URLs among them is HTTPS, as the draft requires, and every one of the 90 sits behind a DMARC policy of quarantine or reject — not a single one at p=none. The DNS half is the half everybody gets right, which is exactly why a checker that stops there tells you almost nothing about whether your logo will appear.

So this one does not stop there. It reads the record, then reads DMARC on your domain and on its organisational domain, then downloads the file at your l= URL and parses it against the SVG Tiny Portable/Secure profile, element by element. If you publish an a= URL it fetches that too and tells you whether a certificate is genuinely being served there. You can watch each step pass or fail in the panel above, in the order a mailbox provider performs them.

Advertisement

Key fact: of the 196 domains we surveyed, 90 publish BIMI (46%) against 28 for MTA-STS (14%) and 195 for DMARC (99.5%). BIMI is the second most widely deployed of the three.

Two things a receiver does that almost nobody sees

It looks twice. Section 7.2 of the draft tells a receiver to query <selector>._bimi at the domain in the From address and, if that comes back with nothing, to query the same name at the organisational domain instead. That is why mail.yourbrand.com usually publishes no BIMI record at all and still shows a logo: it inherits yourbrand.com’s. This checker follows the same two steps and tells you which one answered, so a sending subdomain is never reported as unconfigured when it is simply inheriting.

DMARC does exactly the same thing, and this is where the wrong answer usually comes from. If a subdomain publishes no _dmarc record, the policy that applies to it is the parent’s — the sp= tag if the parent sets one, and p= if it does not. So email.yourbrand.com with no DMARC record of its own is not unprotected; it is governed by yourbrand.com. The trap is sp=none: a parent at p=reject; sp=none looks strong and leaves every subdomain at none, which disqualifies them from BIMI entirely. We resolve both names and tell you which policy is actually in force.

It can look a third time, per recipient. A record may carry an lps= tag — a local-part selector. With lps=news,billing, the logo applies only to mail whose From address begins with one of those prefixes, and the receiver then does a further lookup using the normalised local-part as the selector. That is a per-message decision, so no domain-level checker can perform it — but if your logo appears for one sending address and not another, this tag is where to look first. We report it whenever it is present and say plainly that we cannot follow it.

Two things it does not do, stated here rather than buried. It does not validate the certificate at your a= URL — not the chain, not the trademark, not the expiry. That is the certificate authority’s job and pretending otherwise would be dishonest. And it cannot tell you whether a particular mailbox provider will choose to display your logo, because that also depends on your sending reputation, which no external tool can see. If you would rather look the record up yourself first, that works too — it is an ordinary TXT record. What a plain lookup cannot tell you is whether the file behind that record is valid, and that is the part that breaks. The underlying question of whether your mail is trusted at all is a broader one, covered in our guide to what actually decides whether your mail reaches the inbox.

The DMARC Gate, Including the Tag the Standard Deleted

BIMI is not an authentication mechanism. It is a display rule that sits on top of one, and the one it sits on is DMARC. The draft asks for “a strong [DMARC] policy (quarantine or reject)”, and Google states it without ambiguity: “BIMI doesn’t support DMARC policies that have the p option set to none.” If your policy is p=none, everything else on this page is irrelevant until you fix that. Our DMARC checker will tell you what you currently publish.

Three details catch people out, and the first is the only one most people have heard of:

  1. The organisational domain counts too. The draft requires a qualifying policy on the Author Domain and the Author Organisational Domain. A subdomain cannot qualify on its own while its parent sits at p=none.
  2. sp=none disqualifies you. A domain that leaves its subdomains unprotected does not get a logo, however strong the main policy is.
  3. The pct rule. This is the strange one, and it needs a section of its own.

BIMI requires a DMARC tag that no longer exists

The BIMI draft says that if the policy is p=quarantine and the DMARC record defines a percentage tag, that tag must be pct=100. Google’s setup page says the same in its own words: “The percent option (pct) must be set to 100.”

But RFC 9989 removed pct from DMARC entirely in May 2026, and IANA now lists it as historic. So BIMI and Google are both pointing at a tag the DMARC standard has deleted. That sounds like a contradiction you are stuck inside, and it is not, because of one word: the BIMI rule applies only if the record defines the tag.

What this means for you: a modern DMARC record with no pct satisfies the BIMI rule automatically. A legacy record reading p=quarantine; pct=50 does not, and BIMI will not be evaluated at all. The fix is to delete the tag, not to set it to 100 — and our DMARC record generator will not emit it for exactly this reason.

This is not a rare situation. Re-resolving _dmarc across the same 196 domains on 23 September 2026, 195 publish a DMARC record and 77 of them still carry pct — every single one at pct=100, so harmless, but every one of them also carrying a tag the standard no longer defines. The checker above tells you which case you are in and says so in plain terms rather than passing you silently.

VMC, CMC, and What Each Provider Actually Requires

The a= tag points at a BIMI Evidence Document: a certificate proving the logo is yours. There are two kinds, and which you need depends on whether your logo is a registered trademark.

ProviderWhat it documentsSource
GmailDMARC at quarantine or reject; pct 100 if present; SVG Tiny PS with version="1.2" and baseProfile="tiny-ps"; minimum 96 × 96 pixels; a VMC if the logo is trademarked, a CMC if it is not.Google Workspace Admin Help, “Set up BIMI”
Yahoo“A DMARC policy of quarantine or reject is in place”, a record pointing at a valid SVG, and — explicitly — “We currently do not require VMCs to be set up for BIMI logos to appear in Yahoo applications.” Bulk mail only; Yahoo states it does not show logos for personal email.Yahoo Sender Hub
Apple MailSupported from iOS 16, iPadOS 16 and macOS Ventura 13, and on iCloud.com. Apple documents that the provider must verify a BIMI Evidence Document — a VMC, for example — but publishes no sender checklist of its own.Apple Support and Apple Developer, BIMI pages

That table is why the same domain shows a logo in one inbox and not another, and it is the single most common source of confusion about BIMI. There is no universal answer to “do I need a VMC”. There is only an answer per provider.

In our survey, 67 of the 87 domains publishing a logo also published an a= certificate. Twenty did not — a logo with no evidence document at all. Yahoo may still show those, since it states it does not require a certificate; Gmail will not. If that is a deliberate choice it is a reasonable one; if it is an accident, it explains a year of confusion.

Where the logo is hosted matters too, in one specific way. Google’s BIMI troubleshooting page lists, among the things to verify, that “the public web server is in the same domain as the domain where you added the DNS TXT record for BIMI”. Almost nobody complies: 58 of the 87 logo URLs in our survey were on a different registrable domain, with DigiCert hosting 29 of them and Valimail 8 — and those logos display. The checker names this when it applies, as something to know rather than something to fix.

One thing worth doing once your record is live: send yourself a message and read what the receiving server recorded. The Authentication-Results header is where DMARC alignment is stated as fact rather than predicted, and you can read those results out of a message you have received in a few seconds. BIMI sits on top of that result, so if DMARC is not passing there, nothing above matters yet.

BIMI Is Not a Standard, and That Explains Almost Everything

BIMI is almost always described as a standard, and most pages about it say so without qualification. It is not one, and the distinction is not pedantry — it is the reason the rules keep moving under you.

BIMI is an Internet-Draft: draft-brand-indicators-for-message-identification, revision 14, dated 1 May 2026. It is an individual submission with no working group behind it, its IESG state is “I-D Exists”, and it has never been published as an RFC. The SVG Tiny Portable/Secure profile it depends on is a second Internet-Draft in exactly the same position. The IETF Datatracker states the position plainly for documents like these: such a draft “is not endorsed by the IETF and has no formal standing in the IETF standards process.”

Which is why:

  • Each mailbox provider applies its own variation — Yahoo needs no certificate, Gmail does, Apple documents almost nothing.
  • A logo that passes one vendor’s validator can still be refused by a provider.
  • The specification can require a DMARC tag that the DMARC standard has since deleted, and nothing in the process forces the two documents to agree.

None of that makes BIMI useless. It works, it is widely deployed, and the checks above are real. It means you should treat vendor claims about “the BIMI standard” with the scepticism they have earned, and re-verify after any provider announcement.

The inversion nobody talks about

We ran a second survey of the same 196 domains for MTA-STS, the record that tells other mail servers to encrypt in transit. Putting the two side by side produces the most interesting number in either dataset.

SectorDomainsPublish BIMIPublish MTA-STS
Banks, cards, payments, brokerage2012 (60%)1 (5%)
Email authentication & security vendors1210 (83%)10 (83%)
Consumer mailbox providers123 (25%)8 (67%)
All 196 domains19690 (46%)28 (14%)

Across the whole sample, 74 domains publish a logo but no transport-security policy. Twelve do the reverse. The finance row is the sharpest version of it: banks pay for a trademark and a verified certificate so customers see a logo, and skip a free TXT record that tells senders to encrypt mail on the way in. Mailbox providers are the mirror image, because they are receivers rather than brands — encryption is their job and logos are not.

Draw your own conclusion about what that says about how security budgets get approved. The practical point is smaller: if you have just set up BIMI, you are statistically likely to have skipped the cheaper protection, and our MTA-STS checker will tell you in one lookup.

Survey method, so you can judge it: 196 large, well-known domains resolved live on 23 September 2026, the same sample for both records. It is a convenience sample of well-run domains, so every adoption figure is a ceiling rather than an average — the internet as a whole does far worse.

Setting BIMI Up in the Order That Does Not Waste Money

The expensive mistake is buying a certificate first. A VMC is a real annual cost, and it is worth nothing until DMARC is enforcing and your logo is in the right format — both of which are free to get right. Do it in this order:

  1. Get DMARC to quarantine or reject first. Not partially: the whole policy, on the domain and on its organisational domain, with sp either absent or set to something other than none. If you are still at p=none, everything after this step is premature. Our guide to finding out whether SPF, DKIM and DMARC are passing at all is the place to start if you are not sure.
  2. Delete pct if it is still in your record. RFC 9989 removed it. Leaving pct=100 is harmless; leaving anything else disqualifies you from BIMI entirely.
  3. Produce the SVG Tiny P/S file and validate it before you go near a certificate authority. Add version="1.2", add baseProfile="tiny-ps", add a non-empty <title>, remove anything raster, keep it under 32 KB. Host it over HTTPS.
  4. Publish the record with just l= at first. Yahoo will start showing it without a certificate, which gives you a live confirmation that the file and the gate are right before you spend anything.
  5. Then buy the evidence document. A VMC if the logo is a registered trademark, a CMC if it is not. Append the whole chain into the PEM file, host it over HTTPS, and add a= to the record.
  6. Re-check. Run the domain through the checker above again. The most common late failure is a PEM file that is not reachable at the URL in the record — the certificate is fine, the web server is not.

# What the record looks like at each stage

default._bimi.example.com. IN TXT "v=BIMI1; l=https://example.com/bimi/logo.svg;"

# ... and once the evidence document exists

default._bimi.example.com. IN TXT "v=BIMI1; l=https://example.com/bimi/logo.svg; a=https://example.com/bimi/vmc.pem;"

# To opt out deliberately - both tags present and empty

default._bimi.example.com. IN TXT "v=BIMI1; l=; a=;"

That last form is worth knowing. The draft defines an empty l= together with an empty a= as “an explicit refusal to participate in BIMI” — a way of telling mailbox providers not to go looking. Two of the mailbox providers in our survey publish exactly that record.

Two records is not two logos — it is none. The draft says that if discovery finds multiple records, “BIMI processing MUST NOT be performed for this message”. A receiver does not pick a winner; it stops. One domain in our 196 was in exactly this state, almost certainly from a second record added during a migration and never removed.

BIMI Checker: Frequently Asked Questions

Why is my BIMI logo not showing in Gmail?

Almost always one of three things, in this order. The DMARC gate is not open: Google states that "BIMI doesn't support DMARC policies that have the p option set to none." The logo file is not SVG Tiny P/S: a missing baseProfile="tiny-ps" is the single most common reason, because most drawing tools do not write it and the file looks perfect everywhere else. Or there is no a= certificate, which Gmail wants. Run the check above — it tests all three.

Does BIMI require a VMC?

It depends on the mailbox provider, which is exactly why this confuses people. Google requires an evidence document and offers two kinds: a VMC if your logo is trademarked, or a CMC if it is not. Yahoo states the opposite position in its own sender documentation: "We currently do not require VMCs to be set up for BIMI logos to appear in Yahoo applications." Apple documents that a provider must verify a BIMI Evidence Document but publishes no sender checklist of its own. In our survey, 20 of the 87 domains publishing a logo had no a= tag at all.

What is SVG Tiny P/S and why does my logo keep failing it?

SVG Tiny Portable/Secure is a deliberately stripped-down SVG profile: no raster images, no links, no scripting, no animation, no external references. A logo that renders perfectly in a browser can still fail it. It usually fails on the two attributes nobody adds by hand, version="1.2" and baseProfile="tiny-ps" on the root element, or on a missing title element, which the profile requires to be present and not empty. The checker above names every failure individually.

Does BIMI still need the DMARC pct tag?

Only conditionally, and the rule now points at a tag that no longer exists. The BIMI draft says that if your DMARC policy is p=quarantine and the record defines a percentage tag, that tag must be pct=100; Google's setup page says "The percent option (pct) must be set to 100." But RFC 9989 removed pct from DMARC entirely in May 2026 and IANA lists it as historic. Because the BIMI rule only applies when the tag is present, a modern record with no pct satisfies it. Removing it is safe.

Can I use BIMI with p=quarantine, or do I need p=reject?

Quarantine is enough. The BIMI draft asks for "a strong [DMARC] policy (quarantine or reject)" on both the domain and its organisational domain, and Google names the same two values. The one trap is the conditional pct rule above: p=quarantine; pct=50 disqualifies you, while p=quarantine on its own does not. Every one of the 90 domains publishing BIMI in our September 2026 survey was at quarantine or reject — not one at p=none.

Is BIMI an official standard?

No, and this is worth knowing because it explains a lot. BIMI is an Internet-Draft — draft-brand-indicators-for-message-identification, revision 14 as of 1 May 2026 — and so is the SVG Tiny P/S profile it depends on. The IETF Datatracker states that such a document "is not endorsed by the IETF and has no formal standing in the IETF standards process." That is why the rules shift, why each mailbox provider applies its own variation, and why a logo that passes one vendor's checker can still be refused elsewhere.

Do I need a BIMI record on my sending subdomain?

Usually not. Section 7.2 of the draft tells a receiver that if it finds nothing at default._bimi.mail.yourbrand.com, it must look at default._bimi.yourbrand.com next — so a sending subdomain inherits its parent’s logo automatically. DMARC works the same way, with one trap: the policy governing the subdomain is the parent’s sp= tag if it sets one. A parent at p=reject; sp=none looks strong and disqualifies every subdomain from BIMI. This checker resolves both names and says which one answered.

Can I host my BIMI logo on a different domain?

In practice yes, and almost everybody does — but Google's own troubleshooting page asks you not to. Among the things it lists to verify is that "the public web server is in the same domain as the domain where you added the DNS TXT record for BIMI." The BIMI draft imposes no such requirement, and in our survey 58 of the 87 published logo URLs sat on a different registrable domain, with DigiCert alone hosting 29 of them. Those logos display. Treat it as the last thing to try, not the first.

Related email authentication tools

BIMI is the layer everyone can see. These check the three underneath it that decide whether it is ever reached.

A logo is the last layer. Check the one it stands on.

BIMI displays nothing until DMARC is enforcing, and DMARC only enforces once SPF and DKIM are aligned. If the logo is not appearing, the answer is almost always one layer down.

Last updated 22 September 2026 · Rules read from the BIMI and SVG Tiny Portable/Secure Internet-Drafts, RFC 9989, Google Workspace Admin Help, the Yahoo Sender Hub and Apple’s BIMI pages · DNS resolved live; the logo and certificate fetched over HTTPS, with a successful fetch reused for at most one minute so this page is never a load source for your server