diff --git a/lib/html/pipeline/camo_filter.rb b/lib/html/pipeline/camo_filter.rb
index <HASH>..<HASH> 100644
--- a/lib/html/pipeline/camo_filter.rb
+++ b/lib/html/pipeline/camo_filter.rb
@@ -37,6 +37,7 @@ module HTML
           next if asset_hostname_whitelisted?(uri.hostname)
 
           element['src'] = asset_proxy_url(uri.to_s)
+          element['data-canonical-src'] = uri.to_s
         end
         doc
       end
diff --git a/test/html/pipeline/camo_filter_test.rb b/test/html/pipeline/camo_filter_test.rb
index <HASH>..<HASH> 100644
--- a/test/html/pipeline/camo_filter_test.rb
+++ b/test/html/pipeline/camo_filter_test.rb
@@ -17,6 +17,8 @@ class HTML::Pipeline::CamoFilterTest < Test::Unit::TestCase
     orig = %(<p><img src="http://twitter.com/img.png"></p>)
     assert_includes 'img src="' + @asset_proxy_url,
       CamoFilter.call(orig, @options).to_s
+    assert_includes 'data-canonical-src="http://twitter.com/img.png"',
+      CamoFilter.call(orig, @options).to_s
   end
 
   def test_doesnt_rewrite_dotcom_image_urls
Include original canonical image src after rewriting