How I Prevent Google from trimming Emails
What Google Does
Google has a built-in logic that will trim any duplicate content from email threads. Here's how it works (from my testing):
- If the email Subject is the same (or similar enough according to Google), emails will be compiled into a thread.
- When a sender sends a new email to the thread, Google checks their last reply for duplicate content:
- If there is unique content somewhere in the new email, Google will render out the message up to that content.
- Beyond the unique content, Google will hide all the duplicate content behind ellipses (...).
- Any duplicate content will be rendered in a #500050 text color.
- Google will collapse messages in a thread, only showing one line of text from it in the collapsed view. This line of text will read the unique content from that email.
(This varies on where the new content is. For instance if the new content is at the end and there is little content to show afterwards, Google might show the full message even if it's duplicate)
(Once again this behavior may vary)
Visual example
Sending this email twice:
<p>Hello,</p>
<p>This is a test message.</p>
<p>Goodbye.</p>
Result:

Sending this new email in the same thread:
<p>Hello Test-name,</p>
<p>This is a test message.</p>
<p>Goodbye.</p>
Result:

Finally, sending the same email again to see what the collapsed description would be:
<p>Hello Test-name,</p>
<p>This is a test message.</p>
<p>Goodbye.</p>
Result:

This behavior is a nuisance to many businesses with repeating content like signatures or styled footers, as this information ends up automatically being clipped by Google. In my case, my application will send emails for 2SV email verification and forgot-password lockout, which are inherently repetitive, and get trimmed by Google in a unflattering way.
Looking online, many forums inaccurately claim there is no way around Google's behavior outlined above. I found a way to prevent that, which actually takes advantage of this behavior.
Tests and Challenges
- Just hide a unique seed at the end of the message
- Challenge: unique seed is revealed on the collapsed description text
- Still use the seed, but hide it after enough spacing to clear the character limit
- Challenge: Google also strips extra spaces for the collapsed description
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
- ​
- ‌
- ‍
- ‎
- ‏
-  
This is the obvious first try. At the end of my email, I added the following content:
f"<p style='display:none'>{random_seed}</p>"
Where random_seed
is a three-digit string that is unique to every email.
Doing this led to the following problem though:
That's right, even with display:none
, Google renders the unique text in the collapsed description, which looks very odd.

So, I looked into the limits of this description, and found that it has a 160-character limit (irrespective of the device resolution). My next step was to take advantage of that limit:
At this point, I realised I could actually take advantage of this behavior and render any text I would want in the description, in addition to the seed. This is the hidden content I used next:
"<p style='display:none'>Verify your email with Tracton Dynamics" + (" "*160) + f"{random_seed}</p>"
However, to my disappointment, this didn't work, because:
The 160 spaces added in my code above didn't work as Google just stripped them:

I still felt like there was a way around this. So I tested every alternative HTML entity for the space character. Google strips most of them, but not all!
Here is a list of HTML entities that can be used as spaces:
After testing all of those, I found consistent results with ​, which Google doesn't strip even when many are concatenated together (at least of time of writing, 23-03-25).
End Result
In the end, my seeded footer looked like this:
"<p style='display:none'>Verify your email with Tracton Dynamics" + ("​"*160) + f"{random_seed}</p>"
Adding this to the end of every email garantees that Google will render the entire message and not hide anything behind ellipses. Admittedly, I didn't do anything to prevent the coloring of duplicate content, but that behavior didn't matter to me.