What Is SVG Tiny PS and Why Does BIMI Require It?

Direct Answer

SVG Tiny PS (Portable/Secure) is a restricted subset of the SVG Tiny 1.2 specification. BIMI requires it because mailbox providers need to render logos safely inside email clients — environments that cannot execute scripts, load external resources, or handle complex SVG features without introducing security and rendering risks. As a result, proper SVG Tiny PS formatting is a critical part of BIMI implementation, since a standard SVG file will fail BIMI validation even if it displays correctly in a browser.

What SVG Tiny PS Restricts

The profile removes SVG 1.1 features that would introduce security risks or rendering inconsistencies in email environments — scripts, external resource references, animations, embedded raster images, and filter effects are all excluded.

FeatureStandard SVGSVG Tiny PS
Basic shapes (path, rect, circle, etc.)AllowedAllowed
Solid fills and gradientsAllowedAllowed
External resource references (href, xlink:href)AllowedNot allowed
Embedded scripts (<script>)AllowedNot allowed
Animations (<animate>, SMIL)AllowedNot allowed
Raster image embeds (<image>)AllowedNot allowed
Foreign objects (<foreignObject>)AllowedNot allowed
Filters and effects (<filter>)AllowedNot allowed
Declared namespace: SVG Tiny 1.2 in profile attributeOptionalRequired

The Required SVG Declaration

A BIMI-compliant SVG must declare the SVG Tiny PS profile in its root element. This declaration is checked by validators and CAs during the certificate issuance process. Omitting it causes rejection even if the visual content would otherwise be compliant.

Required root element structure
<!-- Required SVG Tiny PS root element structure -->
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     version="1.2"
     baseProfile="tiny-ps"
     viewBox="0 0 240 240">
  <!-- title element is required -->
  <title>Company Name</title>
  <!-- Your logo paths here -->
</svg>

The baseProfile="tiny-ps" attribute and a <title> element are both required. Files exported as SVG from design tools (Illustrator, Figma, Sketch) will not include this declaration automatically — it must be added manually or via a compliant export pipeline.

Why Visual Validation Is Not Sufficient

An SVG that renders correctly in a browser may still fail BIMI validation. Standard SVG 1.1 files and SVG Tiny 1.2 files without the tiny-ps profile attribute look identical when viewed — the non-compliance is in the file structure, not the visual output. The only way to confirm compliance is to run the file through a BIMI-aware SVG validator, not to inspect it visually. Use the BIMI Readiness Assessment to check SVG compliance before applying for a certificate.

Frequently Asked Questions

Can I use a PNG or JPEG logo for BIMI instead?

No. The BIMI specification requires an SVG file served via HTTPS at the URL in the l= tag. Raster image formats (PNG, JPEG, WebP) are not supported. The SVG must additionally conform to the SVG Tiny PS profile — a valid SVG 1.1 file will also fail.

My logo uses gradients. Does SVG Tiny PS allow them?

Linear and radial gradients defined inline within the SVG are permitted in SVG Tiny PS. External gradient references, mesh gradients, and complex filter-based color effects are not. If the gradient is defined as a <linearGradient> or <radialGradient> element inside the same SVG file, it is generally compliant. Run the file through a validator to confirm.

Can I convert my existing SVG to SVG Tiny PS without a redesign?

Often yes, for logos that use basic shapes and fills. The process involves: adding the baseProfile="tiny-ps" and version="1.2" attributes, adding a <title> element, and removing any disallowed elements (scripts, animations, external references, raster embeds). Logos with complex filter effects or external fonts embedded via reference will require more significant rework.