{"id":14327,"date":"2026-02-02T15:13:59","date_gmt":"2026-02-02T13:13:59","guid":{"rendered":"https:\/\/shortpixel.com/blog\/?p=14327"},"modified":"2026-02-05T12:24:01","modified_gmt":"2026-02-05T10:24:01","slug":"prevent-ai-models-from-training","status":"publish","type":"post","link":"https:\/\/shortpixel.com\/blog\/prevent-ai-models-from-training\/","title":{"rendered":"How to Prevent AI Models from Training on Your Website"},"content":{"rendered":"\n<p>WordPress makes publishing content, including images, incredibly easy. Once a file is uploaded, it\u2019s instantly available through a public URL, a major advantage, but also a potential risk.<\/p>\n\n\n\n<p>As AI models increasingly rely on publicly accessible data, many site owners are questioning how much control they truly have over their content. While there\u2019s no foolproof way to block all access, WordPress does offer practical tools to reduce exposure and signal crawler preferences.<\/p>\n\n\n\n<p>This guide focuses on WordPress-specific solutions, from image-level controls to broader, site-wide protections that help limit unnecessary access.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How AI crawlers typically access WordPress sites<\/strong><\/h2>\n\n\n\n<p>AI crawlers don\u2019t behave like human visitors. They don\u2019t click on links or interact with pages. Instead, they send direct requests to files, HTML, images, media, and other assets, and process those elsewhere.<\/p>\n\n\n\n<p>Because of this, techniques designed to discourage humans (like <strong>disabling right-click<\/strong> or adding overlays) don\u2019t meaningfully affect automated systems. To have an impact, controls need to operate at the <strong>delivery<\/strong>, <strong>crawler policy<\/strong>, or <strong>server level<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Plugins that help restrict access to images<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><a href=\"https:\/\/wordpress.org\/plugins\/shortpixel-image-optimiser\/\" target=\"_blank\" rel=\"noopener\">ShortPixel Image Optimizer<\/a><\/strong><\/h3>\n\n\n\n<p>While <strong>ShortPixel Image Optimizer<\/strong> is best known for image optimization and performance, it also sits directly in the image delivery path, making it a natural place to add <a href=\"https:\/\/shortpixel.com/blog\/prevent-ai-data-mining-on-images\/\">AI-related directives<\/a> without extra plugins or server configuration.<\/p>\n\n\n\n<p><strong>Here\u2019s how to enable AI training directives:<\/strong><\/p>\n\n\n\n<p>Install &amp; activate the <strong>ShortPixel Image Optimizer<\/strong> plugin.<\/p>\n\n\n\n<p><br>Go to <strong>Settings \u2192 ShortPixel \u2192 Image Optimization<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/shortpixel.com/blog\/wp-content\/uploads\/2026\/02\/image.png\"><img decoding=\"async\" width=\"1024\" height=\"477\" src=\"https:\/\/shortpixel.com/blog\/wp-content\/uploads\/2026\/02\/image-1024x477.png\" alt=\"\" class=\"wp-image-14328\" title=\"\" srcset=\"https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-1024x477.png 1024w, https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-300x140.png 300w, https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-768x358.png 768w, https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-1536x716.png 1536w, https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image.png 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p><br>Scroll to the section <strong>\u201cAllow or prevent your images from being used for AI\/ML training\u201d<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/shortpixel.com/blog\/wp-content\/uploads\/2026\/02\/image-1.png\"><img decoding=\"async\" width=\"1024\" height=\"460\" src=\"https:\/\/shortpixel.com/blog\/wp-content\/uploads\/2026\/02\/image-1-1024x460.png\" alt=\"\" class=\"wp-image-14329\" title=\"\" srcset=\"https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-1-1024x460.png 1024w, https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-1-300x135.png 300w, https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-1-768x345.png 768w, https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-1-1536x689.png 1536w, https:\/\/shortpixel.com\/blog\/wp-content\/uploads\/2026\/02\/image-1.png 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p><br>From the dropdown, select <strong>\u201cNo AI Training, Allow SEO Indexing\u201d<\/strong> (or another option depending on whether you want to allow SEO indexing).<br>Save your changes.<\/p>\n\n\n\n<p>Images remain accessible to users and search engines, while clearly signaling that they shouldn\u2019t be used for AI training. Most crawlers that identify themselves do respect these directives, making it a practical first layer of protection.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Plugins that restrict AI crawlers site-wide<\/strong><\/h2>\n\n\n\n<p>If you want to go beyond image-specific controls, there are WordPress plugins designed to manage crawler access across your entire site.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><a href=\"https:\/\/wordpress.org\/plugins\/block-ai-crawlers\/\" target=\"_blank\" rel=\"noopener\">Block AI Crawlers<\/a><\/strong><\/h3>\n\n\n\n<p>Block AI Crawlers focuses on discouraging known AI training bots by managing access through crawler user agents and <strong>robots.txt<\/strong> rules. It\u2019s a lightweight option designed to clearly communicate your site\u2019s policy without active request-level blocking.<\/p>\n\n\n\n<p><strong>Key features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Manages access using robots.txt rules<\/li>\n\n\n\n<li>Targets known AI crawler user agents<\/li>\n\n\n\n<li>Simple, low-configuration setup<br><\/li>\n<\/ul>\n\n\n\n<p><strong>Use case:<\/strong> Simple, policy-based discouragement of known AI bots.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><a href=\"https:\/\/wordpress.org\/plugins\/dark-visitors\/\" target=\"_blank\" rel=\"noopener\">Dark Visitors<\/a><\/strong><\/h3>\n\n\n\n<p>Dark Visitors takes a broader approach by combining crawler management with visibility into automated traffic across your site.<\/p>\n\n\n\n<p><strong>Key features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Analytics for AI crawlers and scrapers<\/li>\n\n\n\n<li>Monitor-only mode to test rules before blocking<\/li>\n\n\n\n<li>Automatic robots.txt generation<\/li>\n\n\n\n<li>Optional server-level enforcement<br><\/li>\n<\/ul>\n\n\n\n<p><strong>Use case:<\/strong> Gaining insight into AI crawler activity before deciding what to block.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><a href=\"https:\/\/wordpress.org\/plugins\/bot-traffic-shield\/\" target=\"_blank\" rel=\"noopener\">Bot Traffic Shield<\/a><\/strong><\/h3>\n\n\n\n<p>Bot Traffic Shield focuses on active blocking based on known user agents, restricting automated traffic at the request level rather than only signaling preferences.<\/p>\n\n\n\n<p><strong>Key features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blocks known AI crawlers and scraping bots by user agent<\/li>\n\n\n\n<li>Predefined and customizable bot lists<\/li>\n\n\n\n<li>robots.txt rule generation<\/li>\n\n\n\n<li>Request-level enforcement to reduce server load<br><\/li>\n<\/ul>\n\n\n\n<p><strong>Use case:<\/strong> Stronger, proactive enforcement against AI crawlers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><a href=\"https:\/\/wordpress.org\/plugins\/ai-scraping-protector\/\" target=\"_blank\" rel=\"noopener\">AI Scraping Protector<\/a><\/strong><\/h3>\n\n\n\n<p>AI Scraping Protector is designed to reduce aggressive automated scraping activity by detecting and limiting suspicious request patterns.<\/p>\n\n\n\n<p><strong>Key features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Detects scraping and bot-like behavior<\/li>\n\n\n\n<li>Rate limiting for automated traffic<\/li>\n\n\n\n<li>IP-based blocking for repeated offenders<\/li>\n\n\n\n<li>Site-wide protection without affecting normal visitors<br><\/li>\n<\/ul>\n\n\n\n<p><strong>Use case:<\/strong> Protecting sites experiencing aggressive automated access.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Managing AI crawlers with robots.txt<\/strong><\/h2>\n\n\n\n<p>For many WordPress sites, <strong>robots.txt<\/strong> is the simplest place to start. WordPress generates a virtual robots.txt by default, but placing a physical robots.txt in your root directory will override it.<\/p>\n\n\n\n<p>Here\u2019s an example that discourages known AI crawlers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User-agent: GPTBot\nDisallow: \/\n\nUser-agent: Google-Extended\nDisallow: \/\n\nUser-agent: ClaudeBot\nDisallow: \/\n\nUser-agent: CCBot\nDisallow: \/\n\nUser-agent: anthropic-ai\nDisallow: \/<\/code><\/pre>\n\n\n\n<p>Keep in mind that <strong>robots.txt is a policy signal<\/strong>. Well-behaved crawlers respect it; others may ignore it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Server-level blocking with .htaccess<\/strong><\/h2>\n\n\n\n<p>If your hosting setup allows it, server-level rules provide stronger enforcement by blocking requests before WordPress loads.<br><strong>Always back up your .htaccess file before making changes.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Block AI crawlers entirely<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;IfModule mod_rewrite.c>\n\nRewriteEngine On\n\nRewriteCond %{HTTP_USER_AGENT} (GPTBot|Google-Extended|CCBot|anthropic-ai|ClaudeBot|cohere-ai) &#91;NC]\n\nRewriteRule .* - &#91;F,L]\n\n&lt;\/IfModule><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Block AI crawlers from image files only<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;IfModule mod_rewrite.c>\n\nRewriteEngine On\n\nRewriteCond %{HTTP_USER_AGENT} (GPTBot|Google-Extended|CCBot|anthropic-ai|ClaudeBot|cohere-ai) &#91;NC]\n\nRewriteCond %{REQUEST_URI} \\.(jpg|jpeg|png|gif|webp|svg|bmp|tiff)$ &#91;NC]\n\nRewriteRule .* - &#91;F,L]\n\n&lt;\/IfModule><\/code><\/pre>\n\n\n\n<p>These rules stop unwanted requests before WordPress processes them, reducing exposure and server load. The main downside of this would be that AIs such as ChatGPT and Claude will not recommend content from your website if someone asks something relevant.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>When a CDN makes sense<\/strong><\/h2>\n\n\n\n<p>On managed WordPress hosting where server access is limited, a CDN (like <strong>Cloudflare<\/strong>) can add an extra enforcement layer. Blocking requests at the edge prevents unwanted traffic from reaching your server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What doesn\u2019t help much<\/strong><\/h2>\n\n\n\n<p>Many commonly suggested techniques don\u2019t meaningfully affect AI crawlers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Disabling right-click<\/strong><\/li>\n\n\n\n<li><strong>JavaScript overlays<\/strong><\/li>\n\n\n\n<li><strong>CSS-based hiding<\/strong><strong><br><\/strong><\/li>\n<\/ul>\n\n\n\n<p>These only affect human behavior and are easily bypassed by automated systems.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Putting it all together<\/strong><\/h2>\n\n\n\n<p>A layered approach works best for most WordPress sites:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Image-level signaling via ShortPixel<\/strong><\/li>\n\n\n\n<li><strong>Crawler directives via robots.txt<\/strong><\/li>\n\n\n\n<li><strong>Site-wide plugins<\/strong> (Block AI Crawlers, Dark Visitors)<\/li>\n\n\n\n<li><strong>Request-level enforcement<\/strong> (Bot Traffic Shield, AI Scraping Protector)<\/li>\n\n\n\n<li><strong>Optional server-level or CDN blocking<\/strong><strong><br><\/strong><\/li>\n<\/ul>\n\n\n\n<p>You don\u2019t need every option. Even one or two layers can significantly reduce automated access.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final thoughts<\/strong><\/h2>\n\n\n\n<p>Preventing AI models from training on WordPress content isn\u2019t about building a perfect barrier. It\u2019s about reducing unnecessary exposure in a way that works with your site setup and maintenance workflow.<\/p>\n\n\n\n<p>By combining image optimization, clear crawler signals, and practical protections, WordPress site owners can strike a sensible balance.<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-palette-color-4-border-color has-palette-color-6-background-color has-background is-vertical is-content-justification-left is-layout-flex wp-container-core-group-is-layout-e21fc307 wp-block-group-is-layout-flex\" style=\"border-width:1px;border-radius:20px;margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">\n<h3 class=\"wp-block-heading\" id=\"cta-heading\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Try ShortPixel on WordPress for free!<\/h3>\n\n\n\n<p>Easily optimize all your images and generate AI Image SEO with ShortPixel Image Optimizer.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/wordpress.org\/plugins\/shortpixel-image-optimiser\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Started<\/a><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>WordPress makes publishing content, including images, incredibly easy. Once a file is uploaded, it\u2019s instantly available through a public URL, a major advantage, but also a potential risk. As AI models increasingly rely on publicly accessible data, many site owners are questioning how much control they truly have over their content. While there\u2019s no foolproof [&hellip;]<\/p>\n","protected":false},"author":37,"featured_media":14331,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-14327","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-world-of-wordpress"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/posts\/14327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/comments?post=14327"}],"version-history":[{"count":2,"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/posts\/14327\/revisions"}],"predecessor-version":[{"id":14332,"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/posts\/14327\/revisions\/14332"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/media\/14331"}],"wp:attachment":[{"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/media?parent=14327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/categories?post=14327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shortpixel.com\/blog\/wp-json\/wp\/v2\/tags?post=14327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}