How to preserve deleted Tweets in WordPress?

I like quoting people's Tweets in my blog posts. But, sometimes, people delete their Tweets. This blog post examines two questions.

  1. How to preserve Tweets in blog posts that they are still readable even after the user deletes them.
  2. Whether this is morally acceptable behaviour.

Let's tackle the easy question first.

Preserving Tweets

Using the WordPress OEmbed feature, I can just paste in a URl like

And have it appear as a fully hydrated Tweet object.

If that Tweet has been deleted - here's what it looked like:

A screenshot of a beautifully rendered Tweet.

The JetPack plugin should retrieve the Tweet data and embed it into the post as a <blockquote> like this:

<blockquote class="twitter-tweet" data-width="550" data-dnt="true">
<p lang="en" dir="ltr">I'd check with the person whose tweet you're embedding and see if they mind you taking a screenshot as backup. I auto delete old tweets but I'd probably be ok if you asked me. Others, probably not so much.</p>
<p>— Simply having a wonderful Katemastime 🎄 (@katebevan) <a href="">January 3, 2021</a></p></blockquote>
<p><script async src="" charset="utf-8"></script></p>

The Twitter widgets.js should then turn that into an OEmbed <iframe> thus:

HTML code of an iFrame.

So, if the Tweet is deleted, it'll render something like this:

Plain text in a blockquote.

But, occasionally, it will fail and the Tweet will render as just a broken link. In this case, the author has deleted their 2nd Tweet:

Two Tweets. The first is fully rendered, the second is a plain link which goes to a 404 page.


  1. Do nothing. Either hope that it works, or accept the occasional failure.
  2. Raise a bug with JetPack.
  3. Take a screenshot. Tedious to implement and difficult to integrate so that the image only shows if the Tweet is deleted.
  4. Link deleted Tweets to an link. For some reason, the Internet Archive doesn't contain every Tweet - so it is a bit hit and miss.

I think that I'm going to raise a bug with JetPack and find a way to auto submit all the URls in my post to - but I'm keen to know if there is a better way. Comments in the box, please!

Is this morally OK?

There are lots of reasons why people delete their Tweets - or their entire Twitter accounts. Ranging from just being bored of the site, to wanting to avoid the notoriety of a popular or controversial post. I've noticed that some of the extremely popular Tweets quoted in academic literature are no longer available.

Should we respect people's wishes and their right to be forgotten?

Or, should people accept that it is (nearly) impossible to delete something from the web?

I usually don't ask people if I can quote them. Occasionally I will - especially if it is an account with a small following, or a friend who has posted something controversial. I'm conscious that not everyone wants attention. Viz:

I'm generally of the opinion that when content is posted to the Internet, it is "fair dealing" to quote it. But not everyone agrees:

If someone asks me to remove a Tweet - I think would. Unless it was so historically important that I felt it should stay up. In which case, I might redact the user's details.

This is confusing. And I don't quite know what to think. Help?

Share this post on…

3 thoughts on “How to preserve deleted Tweets in WordPress?”

  1. Isn't this one of the beauties of the internet? Once it's out there, there's no deleting it.

    I don't think it's morally wrong to keep the archive. As most people do for famous accounts such as politicians.

    I'm not sure about the technical solution, I do like the blockquote approach. Better than a simple screenshot. I don't usually embed tweets in my posts but if I did I'd probably copy and paste the content into a blockquote and a link back to the original.

    Have a great day!


What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">