Overview and Quick Summary
Adding a picture signature in Gmail lets you include a logo, photo, or custom graphic below your name in every message. Gmail treats signatures as plain text that supports limited HTML, so you cannot directly upload an image as a formatted attachment. Instead, the reliable approaches are (1) host the image online and insert an external image link, or (2) embed the image as base64 using an HTML img tag. These methods work on desktop and in the mobile apps, but some clients may block external images by default.
Gmail Signature Basics
A Gmail signature is the text and inline content that appears below your name at the bottom of messages you compose. It supports basic formatting such as bold, italic, underline, font color, and links, plus inline images referenced by URLs. Because signatures are part of the compose field, formatting must rely on HTML that Gmail’s editor accepts. This means you cannot simply drag and drop an image into the signature editor; you must link or embed the image using code-friendly techniques.
Option 1: Link to a Hosted Image (Recommended)
How the linked image method works
In this approach, you upload the picture to a publicly accessible location and insert an HTML image tag into your signature. Gmail includes the image by loading it from the external URL each time the signature is displayed. This keeps the signature size small in Gmail and ensures the picture remains centrally managed.
- Upload the file to an image host, your website, your brand folder, or a cloud storage bucket with public read permissions.
- Copy the direct image URL (ending in .jpg, .png, .gif, or .webp).
- In Gmail settings, switch to HTML mode for the signature and add an <img> tag with width and height attributes for predictable rendering.
Step-by-step instructions for desktop on the web
Gmail’s web UI does not natively support inserting external images in the graphical signature editor, so you must use the HTML version of the editor.
- Sign in to Gmail on the web and click the gear icon, then Show all settings.
- Go to the General tab and find the Signature section.
- Enter your name and any text you want, then highlight the text and click the Insert image icon (mountain & sun), choose Upload, and insert one placeholder image just to enable the icon.
- Click the three dots in the editor toolbar (⋮) and select Show HTML.
- Replace the generated img src with your hosted image URL and set width or height attributes, for example: <img src="https://yourdomain.com/signature.png" alt="Brand" width="200" style="display: block; border: 0;">.
- Save changes and test by composing a new message or replying to an existing one.
Mobile apps (Android and iOS)
On mobile, you can only edit signatures in the graphical editor, which does not accept raw HTML. To include a picture, insert a small, appropriately sized image using the insert image icon in the compose window and place it where your signature normally appears. Note that this image will be attached only to that draft, not saved as a global signature, unless you place it in your HTML signature via the web client.
Option 2: Embed Base64 (Self-contained Signature)
When embedding makes sense
Embedding encodes the image as a base64 string inside the img src attribute, making the signature self-contained. This removes reliance on an external image host, which can be useful if you want the signature to display even when external images are blocked by default. However, base64 increases the message size and can hit Gmail’s overall size limits for large signatures.
How to create a base64 image tag
Convert your image to base64 using a trusted encoder, then create an img tag similar to the linked method, but with the data URI in the src attribute. Example format: <img src="data:image/png;base64, YOUR_BASE64_HERE" alt="Logo" width="240" style="display: block;">. Paste the full string into Gmail’s HTML signature editor. Keep the image dimensions and file size modest to avoid truncation or slow rendering.
Practical Best Practices
- Use standard formats such as PNG for logos with transparency or JPG for photographs.
- Keep the image small in both dimensions and file size; aim for under 100–200 KB to avoid hitting Gmail’s signature and message size limits.
- Specify width and height attributes to prevent layout shifts while the image loads.
- Include alt text for accessibility and fallback when images are blocked.
- Host images over HTTPS to ensure delivery in secure contexts and reduce warnings or blocked content.
- Test across clients (Gmail web, mobile, and major email recipients) to confirm display and that the signature does not break quoting or threading.
- Avoid very tall or wide images; keep horizontal layouts between approximately 600–800 px wide for predictable scaling.
Limitations and Compatibility
Gmail does not support background images in signatures or advanced CSS that some editors allow. Some recipients may see images blocked by default, in which case alt text and a descriptive fallback are important. If you rotate or change the image, update the HTML signature accordingly; linked images can be updated on the host to refresh across all messages, while embedded base64 requires updating the entire signature.
Comparison of Hosting Options
| Hosting Method | Persistence | Control & Updates | Size & Delivery Considerations |
|---|---|---|---|
| Public URL (e.g., hosting provider, CDN, website) | Long-term if maintained | Full control; edit on host to update everywhere | External request; ensure HTTPS and reasonable size |
| Embedded base64 | Included in message; static after send | Update requires regenerating the signature HTML | Increases message size; watch Gmail limits |
Troubleshooting Tips
- If the image does not appear, verify the URL is publicly accessible and returns a 200 response.
- Check that the img tag includes width/height and alt attributes; some strict clients may drop images without them.
- If the signature appears broken on replies, avoid overly large or complex HTML and test with plain-text replies disabled.
- When in doubt, start with a linked image using the web HTML editor and confirm behavior before switching to base64.