diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml
index 950e61847..9323d70ab 100644
--- a/app/views/accounts/show.html.haml
+++ b/app/views/accounts/show.html.haml
@@ -5,7 +5,7 @@
%meta{ name: 'description', content: account_description(@account) }/
- if @account.user&.setting_noindex
- %meta{ name: 'robots', content: 'noindex' }/
+ %meta{ name: 'robots', content: 'noindex, noarchive' }/
%link{ rel: 'salmon', href: api_salmon_url(@account.id) }/
%link{ rel: 'alternate', type: 'application/atom+xml', href: account_url(@account, format: 'atom') }/
diff --git a/app/views/statuses/show.html.haml b/app/views/statuses/show.html.haml
new file mode 100644
index 000000000..0f22d106b
--- /dev/null
+++ b/app/views/statuses/show.html.haml
@@ -0,0 +1,24 @@
+- content_for :page_title do
+ = t('statuses.title', name: display_name(@account), quote: truncate(@status.spoiler_text.presence || @status.text, length: 50, omission: '…', escape: false))
+
+- content_for :header_tags do
+ - if @account.user&.setting_noindex
+ %meta{ name: 'robots', content: 'noindex, noarchive' }/
+
+ %link{ rel: 'alternate', type: 'application/json+oembed', href: api_oembed_url(url: short_account_status_url(@account, @status), format: 'json') }/
+ %link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@status) }/
+
+ = opengraph 'og:site_name', site_title
+ = opengraph 'og:type', 'article'
+ = opengraph 'og:title', "#{display_name(@account)} (@#{@account.local_username_and_domain})"
+ = opengraph 'og:url', short_account_status_url(@account, @status)
+
+ = render 'og_description', activity: @status
+ = render 'og_image', activity: @status, account: @account
+
+.grid
+ .column-0
+ .activity-stream.h-entry
+ = render partial: 'status', locals: { status: @status, include_threads: true }
+ .column-1
+ = render 'application/sidebar'
diff --git a/app/views/stream_entries/show.html.haml b/app/views/stream_entries/show.html.haml
index 0e81c4f68..1a6567512 100644
--- a/app/views/stream_entries/show.html.haml
+++ b/app/views/stream_entries/show.html.haml
@@ -3,7 +3,7 @@
- content_for :header_tags do
- if @account.user&.setting_noindex
- %meta{ name: 'robots', content: 'noindex' }/
+ %meta{ name: 'robots', content: 'noindex, noarchive' }/
%link{ rel: 'alternate', type: 'application/atom+xml', href: account_stream_entry_url(@account, @stream_entry, format: 'atom') }/
%link{ rel: 'alternate', type: 'application/json+oembed', href: api_oembed_url(url: account_stream_entry_url(@account, @stream_entry), format: 'json') }/