{"id":48496,"date":"2016-05-18T13:10:59","date_gmt":"2016-05-18T13:10:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/retina-stripper\/"},"modified":"2016-05-18T13:44:14","modified_gmt":"2016-05-18T13:44:14","slug":"retina-stripper","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/retina-stripper\/","author":2892338,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.4","stable_tag":"1.4","tested":"4.5.33","requires":"3.5.0","requires_php":"","requires_plugins":"","header_name":"Retina Stripper","header_author":"David Favor","header_description":"","assets_banners_color":"","last_updated":"2016-05-18 13:44:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/DavidFavor.com\/","header_author_uri":"http:\/\/DavidFavor.com","rating":0,"author_block_rating":0,"active_installs":10,"downloads":1898,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"":"<p>Best always use the latest version of this plugin.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":0},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1","1.2","1.3","1.4","1.5"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"No screenshots as this is a zero config plugin."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[54005,247,6626,2925,794],"plugin_category":[52,54],"plugin_contributors":[89015],"plugin_business_model":[],"class_list":["post-48496","plugin","type-plugin","status-publish","hentry","plugin_tags-database-connection","plugin_tags-performance","plugin_tags-retina","plugin_tags-server","plugin_tags-speed","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-dfavor","plugin_committers-dfavor"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/retina-stripper.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>For now only occurrences of the <a href=\"http:\/\/imulus.github.io\/retinajs\">retina.js<\/a> script are dequeue + deregister.<\/p>\n\n<p>If you identify other Retina related scripts open a support ticket + note the name.<\/p>\n\n<p>I'll add any other identified scripts here, to strip them out also.<\/p>\n\n<h3>Problems Serving Retina Images<\/h3>\n\n<p>Some of these problems include...<\/p>\n\n<h4>Retina Image File Size + Mobile<\/h4>\n\n<p>Retina images have massive size. If you're running a Food Porn blog or\nImage Hosting site, this might be okay.<\/p>\n\n<p>Otherwise, likely your visitor on page time will decrease + conversions tank.<\/p>\n\n<p>If you're running a Click Arbitrage site or target Mobile devices, which\nmay be on 3G networks or simply have under powered CPUs or little memory.<\/p>\n\n<p>This occurs as size of Retina images eat up all your visitor's connection\nbandwidth, then require heavy CPU + memory usage to render.<\/p>\n\n<h4>Retina Image 404s On Server<\/h4>\n\n<p>Most sites serving Retina images, do so via the horribly simplistic <a href=\"http:\/\/imulus.github.io\/retinajs\">retina.js<\/a> library.<\/p>\n\n<p>Unfortunately this script works by...<\/p>\n\n<p>1) Extracting every DOM  tag + rewriting the URL as\n   image-name@2X.extension back into the DOM.<\/p>\n\n<p>2) For many sites 100% of these image-name@2X.extension file access\n   result in a 404 (missing page) error. Then <a href=\"http:\/\/imulus.github.io\/retinajs\">retina.js<\/a> will walk\n   the DOM again, removing the @2X from images + the image file\n   fetch begins again. Since this process runs via AJAX, instantaneously\n   page load resource usage can spike very high.<\/p>\n\n<p>3) WordPress caching plugins specifically avoid caching 404 errors. This\n   is intentional. The idea being, once you notice 404s, you'll fix them.\n   If 404s were cached, every permanent + transient 404 error would\n   require a manual cache flush, to clear the cache object, so the fixed\n   page could then reach visitors.<\/p>\n\n<p>4) Thus every 404 @2X image served generates what tends to be an extremely\n   high resource intensive page view... all for nothing...<\/p>\n\n<p>5) If you have 20 images on a page you'll generate 20x 404s.<\/p>\n\n<p>You can see when this can lead to extreme dips in performance,\nwhich are hard to diagnose, unless you have a Server Savant\ndoing daily log studies with logtop to monitor page view patterns.<\/p>\n\n<p>Some servers where I host client sites showed 90%+ of all page\naccesses were 404s to Retina images.<\/p>\n\n<p>As traffic spends or natural traffic increase, 404s increase,\nstarving Apache + Database till eventually all visitors see become\nApache 500 errors + Database Connection Errors.<\/p>\n\n<h3>Plugin History<\/h3>\n\n<p>This code was originally written to serve my many private hosting clients.<\/p>\n\n<p>Check [http:\/\/FastStableHosting.com]http:\/\/FastStableHosting.com WordPress speedups.<\/p>\n\n<p>This site is a work in process, where my goal is to converge all the many\nchecklists I've published over the years cohesively + retire all other\nsite with related WordPress performance boosting tips.<\/p>\n\n<p>Material presented on this site is based on testing, rather than drivel + myth\nwhich pollutes the entire WordPress ecosystem, at every turn.<\/p>\n\n<p>If you wonder why you keep reading how to speed up your site + nothing seems\nto make any difference, likely your reading content written by posers.<\/p>\n\n<!--section=installation-->\n<p>Best to just install through the WordPress admin panel.<\/p>\n\n<p>This plugin has no database access, so will install via a recursive sftp\/ftp file put.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt>Have a question?<\/dt>\n<dd><p>Post it under the Support Tab + I'll add it to the FAQ along with my answer.<\/p><\/dd>\n<dt>Think Twice About Asking Me To Host Your Site<\/dt>\n<dd><p>If you're generating significant daily profit, we might work well together.<\/p>\n\n<p>If you have a hobby site or proof of concept site, likely we're a poor fit.<\/p>\n\n<p>In other words, Fast + Stable Hosting is expensive, which is why it's\nscarce as Purple Lemmings, who are smart enough to stand aside + let\nthe others head over the cliff edge.<\/p><\/dd>\n<dt>Think Twice About Contacting Me Outside This Plugin's WordPress Support Thread<\/dt>\n<dd><p>Consider this. If I'm consulting with you for an hour, that's an hour of time invested\nwith you, rather than one of my personal projects or assisting one of my other clients.<\/p>\n\n<p>Before you contact me, be clear this will be a paid consulting conversation. So before\nyou contact me, be sure you're crystal clear about out topic, so we can optimize our time.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<ul>\n<li>2016-05-16<\/li>\n<li>Initial Release<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>2016-05-18<\/li>\n<li>Minor readme file formatting fixes<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>2016-05-18<\/li>\n<li>Minor readme file formatting fixes<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>2016-05-18<\/li>\n<li>Minor readme file formatting fixes<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>2016-05-18<\/li>\n<li>Bumped readme.txt \"Stable Tag\" + plugin.php \"Version\" to match + show up correctly on <a href=\"http:\/\/WordPress.org\">http:\/\/WordPress.org<\/a> download page<\/li>\n<\/ul>","raw_excerpt":"For now only occurrences of the retina.js script are dequeue + deregister.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/48496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=48496"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dfavor"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=48496"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=48496"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=48496"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=48496"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=48496"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=48496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}