{"id":854,"date":"2024-05-07T11:44:30","date_gmt":"2024-05-07T11:44:30","guid":{"rendered":"https:\/\/kb.shortpixel.com\/docs\/my-images-are-being-replaced-with-a-hotlinking-warning-what-can-i-do\/"},"modified":"2025-08-27T08:41:48","modified_gmt":"2025-08-27T08:41:48","password":"","slug":"my-images-are-being-replaced-with-a-hotlinking-warning-what-can-i-do","status":"publish","type":"docs","link":"https:\/\/kb.shortpixel.com\/knowledge-base\/article\/my-images-are-being-replaced-with-a-hotlinking-warning-what-can-i-do\/","title":{"rendered":"My images are being replaced with a hotlinking warning, what can I do?"},"content":{"rendered":"<p>\n\t Both <a href=\"https:\/\/wordpress.org\/plugins\/shortpixel-adaptive-images\/\" target=\"_blank\" rel=\"noopener\">ShortPixel Adaptive Images<\/a> (SPAI) and <a href=\"https:\/\/wordpress.org\/plugins\/autoptimize\/\" target=\"_blank\" rel=\"noopener\">Autoptimize<\/a>&#8216;s Image Optimization need to access your images in order to optimize them and serve them from our CDN.<\/p>\n<p>\n\t If you have in place a hotlinking prevention feature then it is possible that all ShortPixel&#8217;s servers can see is a replacement image with a hotlinking warning message. For example:<\/p>\n<p>\n\t <img decoding=\"async\" src=\"https:\/\/kb.shortpixel.com\/wp-content\/uploads\/2025\/08\/file-7ZlwAc01Mp.jpg\"><\/p>\n<p>\n\t This is how the process works simplified:<\/p>\n<ol>\n<li>Your page has an image.<\/li>\n<li>Knowing that both <a href=\"https:\/\/help.shortpixel.com\/article\/132-how-shortpixel-adaptive-images-work\" rel=\"noopener\">SPAI<\/a> and <a href=\"https:\/\/help.shortpixel.com\/article\/65-how-does-shortpixel-ai-cdn-work\" rel=\"noopener\">Autoptimize<\/a> work on the fly, when a user visits your site, they tell our servers to access the image to optimize.<\/li>\n<li>When our servers try to access the image, the hotlinking prevention feature serves the hotlinking placeholder image instead of the original correct image.<\/li>\n<li>Our servers optimize the wrong image.<\/li>\n<li>Our CDN serves the wrong image to all your users. \ud83d\ude41<\/li>\n<\/ol>\n<p>\n\t To solve this, you have two options:<\/p>\n<ol>\n<li>Completely <strong>disable the hotlinking prevention feature<\/strong>. You should check your plugins, hosting and\/or your CDN for this. If you are using Plesk, please deactivate its hot-linking protection option as described <a href=\"https:\/\/support.plesk.com\/hc\/en-us\/articles\/360019946833-WordPress-Toolkit-Hotlinking-Protection-doesn-t-work-correctly-with-mod-pagespeed\" target=\"_blank\" rel=\"noopener\">in this article<\/a>.<\/li>\n<li>Allow our servers to access the images. For this, please <strong>whitelist our IPs<\/strong> on all your security plugins, hosting and\/or CDN. <a href=\"https:\/\/help.shortpixel.com\/article\/52-ips-to-be-whitelisted\" rel=\"noopener\"><\/a><a href=\"https:\/\/help.shortpixel.com\/article\/52-ips-to-be-whitelisted\" rel=\"noopener\">IPs to be whitelisted &#8211; ShortPixel Knowledge Base<\/a><\/li>\n<\/ol>\n<p>\n\t Either way, after the issue is resolved from your side, make sure you <a href=\"https:\/\/help.shortpixel.com\/article\/237-how-to-flush-an-image-fromshortpixel-cdn\" target=\"_blank\" rel=\"noopener\">flush ShortPixel&#8217;s CDN cache<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Both ShortPixel Adaptive Images (SPAI) and Autoptimize&#8216;s Image Optimization need to access your images in order to optimize them and serve them from our CDN. If you have in place a hotlinking prevention feature then it is possible that all ShortPixel&#8217;s servers can see is a replacement image with a hotlinking warning message. For example: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[36,35],"glossaries":[],"doc_tag":[],"class_list":["post-854","docs","type-docs","status-publish","hentry","doc_category-autoptimize","doc_category-shortpixel-adaptive-images"],"blocksy_meta":[],"year_month":"2026-04","word_count":221,"total_views":"2958","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"admin","author_nicename":"admin_mdli53m5","author_url":"https:\/\/kb.shortpixel.com\/author\/admin_mdli53m5\/"},"doc_category_info":[{"term_name":"Autoptimize","term_url":"https:\/\/kb.shortpixel.com\/knowledge-base\/category\/autoptimize\/"},{"term_name":"ShortPixel Adaptive Images","term_url":"https:\/\/kb.shortpixel.com\/knowledge-base\/category\/shortpixel-adaptive-images\/"}],"doc_tag_info":[],"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/docs\/854","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/comments?post=854"}],"version-history":[{"count":1,"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/docs\/854\/revisions"}],"predecessor-version":[{"id":2402,"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/docs\/854\/revisions\/2402"}],"wp:attachment":[{"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/media?parent=854"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/doc_category?post=854"},{"taxonomy":"glossaries","embeddable":true,"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/glossaries?post=854"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/kb.shortpixel.com\/wp-json\/wp\/v2\/doc_tag?post=854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}