{"id":358553,"date":"2026-08-29T00:45:18","date_gmt":"2026-08-29T00:45:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-visibility-check\/"},"modified":"2026-08-29T22:46:04","modified_gmt":"2026-08-29T22:46:04","slug":"foundash-ai-access-check","status":"publish","type":"plugin","link":"https:\/\/ido.wordpress.org\/plugins\/foundash-ai-access-check\/","author":23554728,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Foundash AI Access Check","header_author":"Patrick","header_description":"Checks whether ChatGPT, Claude, Perplexity and Google's AI can actually read your website, and what is missing if they can't.","assets_banners_color":"f8f9f7","last_updated":"2026-08-29 22:46:04","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":61,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"boiledpotat0","date":"2026-08-29 02:22:02","revision":3671068},"1.0.1":{"tag":"1.0.1","author":"boiledpotat0","date":"2026-08-29 22:46:04","revision":3671920}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3671068,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3671068,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3671068,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3671068,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3671068,"resolution":"1","location":"assets","locale":"","width":1120,"height":1040},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3671068,"resolution":"2","location":"assets","locale":"","width":1120,"height":1040},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3671068,"resolution":"3","location":"assets","locale":"","width":1120,"height":1040}},"screenshots":{"1":"A site refusing every AI crawler while still serving Googlebot. Because Google is being served, this is an AI-specific rule rather than a broken bot setting, and the plugin says which.","2":"A site all four assistants can read, with structured data for them to lift facts from. Every row carries the HTTP code behind it, so any claim can be checked.","3":"WordPress's \"Discourage search engines\" setting does not put anything in robots.txt. Since WordPress 5.3 it adds a noindex tag instead, so a tool that only reads robots.txt cannot see it at all."}},"plugin_section":[],"plugin_tags":[2353,216196,9837,1117,186],"plugin_category":[55],"plugin_contributors":[278135],"plugin_business_model":[],"class_list":["post-358553","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatgpt","plugin_tags-crawler","plugin_tags-schema","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-boiledpotat0","plugin_committers-boiledpotat0"],"banners":{"banner":"https:\/\/ps.w.org\/foundash-ai-access-check\/assets\/banner-772x250.png?rev=3671068","banner_2x":"https:\/\/ps.w.org\/foundash-ai-access-check\/assets\/banner-1544x500.png?rev=3671068","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/foundash-ai-access-check\/assets\/icon-128x128.png?rev=3671068","icon_2x":"https:\/\/ps.w.org\/foundash-ai-access-check\/assets\/icon-256x256.png?rev=3671068","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/foundash-ai-access-check\/assets\/screenshot-1.png?rev=3671068","caption":"A site refusing every AI crawler while still serving Googlebot. Because Google is being served, this is an AI-specific rule rather than a broken bot setting, and the plugin says which."},{"src":"https:\/\/ps.w.org\/foundash-ai-access-check\/assets\/screenshot-2.png?rev=3671068","caption":"A site all four assistants can read, with structured data for them to lift facts from. Every row carries the HTTP code behind it, so any claim can be checked."},{"src":"https:\/\/ps.w.org\/foundash-ai-access-check\/assets\/screenshot-3.png?rev=3671068","caption":"WordPress's \"Discourage search engines\" setting does not put anything in robots.txt. Since WordPress 5.3 it adds a noindex tag instead, so a tool that only reads robots.txt cannot see it at all."}],"raw_content":"<!--section=description-->\n<p>People increasingly ask an AI assistant to recommend a business instead of searching for one. Before an assistant can recommend you, it has to read your website.<\/p>\n\n<p>Your AI visibility starts here. If ChatGPT, Claude, Perplexity or Google's AI cannot reach your pages, nothing else you do for AI search matters, because there is nothing for them to read.<\/p>\n\n<p>Plenty of sites block those assistants without the owner ever knowing. Security plugins, host defaults and robots.txt rules can all turn AI crawlers away while ordinary visitors see nothing wrong. If that is happening to you, no amount of good content will help, because nothing is being read.<\/p>\n\n<p>This plugin checks, from your own dashboard:<\/p>\n\n<ul>\n<li>Whether the agents that fetch your page <strong>when a customer asks<\/strong> (OAI-SearchBot, ChatGPT-User, Perplexity-User, Claude-SearchBot) are being served or refused<\/li>\n<li>Separately, whether the crawlers that <strong>collect pages to train on<\/strong> (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) are being served or refused<\/li>\n<li>Whether your <strong>robots.txt<\/strong> tells any of them to stay out<\/li>\n<li>Whether WordPress's own <strong>\"Discourage search engines\"<\/strong> setting is on<\/li>\n<li>Whether your front page carries a <strong>noindex<\/strong> tag telling engines not to list it<\/li>\n<li>Whether your front page has <strong>structured data<\/strong> for an assistant to lift facts from<\/li>\n<li>Whether you have an <strong>llms.txt<\/strong> file<\/li>\n<\/ul>\n\n<p>It then gives you one plain sentence saying where you stand.<\/p>\n\n<h4>Honest about what it finds<\/h4>\n\n<p>A refused crawler is not always a deliberate block, so this plugin does not shout about one. It also requests your site as Googlebot as a control. If Google is being refused too, you have a broken bot rule rather than an AI policy, and the plugin says exactly that, because that problem is bigger and costs you traffic today.<\/p>\n\n<p>It only counts 401, 403 and 429 as a deliberate refusal. A 400 is a malformed request and a 500 is your server erroring, and calling either a block would be misleading.<\/p>\n\n<p>The robots.txt reader follows the real rules rather than guessing. A commented-out line is not a block. A rule written for your site as a whole does not apply to a crawler that has its own rules further down. An Allow that cancels a Disallow is respected. Each of those, done carelessly, invents a block that is not there.<\/p>\n\n<p>Every result shows the raw HTTP code and the exact robots.txt line behind it, so you can verify any claim it makes rather than taking it on trust.<\/p>\n\n<h4>Two different crawlers, two different consequences<\/h4>\n\n<p>Most tools in this space report one number for \"AI crawlers\" and leave you to\nassume the worst. There are really two kinds, and only one of them decides\nwhether you can be recommended.<\/p>\n\n<p>Some agents fetch your page at the moment a person asks an assistant about your\nbusiness. If those are refused, the assistant has nothing to read and cannot\ndescribe or recommend you. That is worth fixing.<\/p>\n\n<p>Others collect pages in bulk to train models on. Refusing those is a deliberate\nchoice a lot of sites now make, and on its own it does not stop anyone\nrecommending you.<\/p>\n\n<p>This matters more than it sounds. Across 293 local business websites checked in\nAugust 2026, 15 refused an AI crawler in robots.txt, and 14 of those 15 refused\nonly the training crawlers while deliberately allowing the search-time agents by\nname. Reporting those 14 as \"blocked from AI\" would tell a business it is\ninvisible when it is not.<\/p>\n\n<p>So this plugin tells you which kind you are refusing, and only raises an alarm\nfor the kind that costs you something.<\/p>\n\n<h4>Why there is no score<\/h4>\n\n<p>Other plugins in this space hand you a number out of 100 and a letter grade. This one does not, on purpose.<\/p>\n\n<p>Every question it asks has a real answer. A crawler was served or it was refused. A robots.txt rule exists or it does not. Averaging answers like those into a grade throws away the part you can actually act on, and it makes a short list of plain facts look like a measurement it is not.<\/p>\n\n<p>You get the facts instead: which crawlers were served, which were refused, the HTTP code each one returned, and the exact robots.txt line behind any claim. Every one of them is something you can check yourself.<\/p>\n\n<h4>What it cannot tell you<\/h4>\n\n<p><strong>Requests come from your own server.<\/strong> If your site sits behind a CDN or firewall and your server bypasses it when calling its own address, a block at that edge will not appear here. Checking from outside your hosting is the only way to be sure.<\/p>\n\n<p><strong>A slow site gets a partial answer.<\/strong> The whole run is held to a wall clock budget so it cannot outlast PHP's execution limit and leave you with a blank admin page. If your site is slow to answer requests from itself, the run stops early, the rows it never reached say \"Could not test\" instead of guessing, and it tells you it stopped.<\/p>\n\n<p><strong>Google-Extended is reported from robots.txt only.<\/strong> There is no such crawler to refuse. Google reads your pages as Googlebot and then consults the Google-Extended rule to decide whether that content may feed Gemini and AI Overviews. Any tool that reports an HTTP status for Google-Extended is reporting a request it invented.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin only requests your own site. It sends nothing to any third party, requires no account, no API key and no signup, and stores nothing beyond a one hour cache of your last result.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it through the Plugins screen.<\/li>\n<li>Activate it.<\/li>\n<li>Go to <strong>Tools &gt; AI Access<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20send%20my%20data%20anywhere%3F\"><h3>Does this send my data anywhere?<\/h3><\/dt>\n<dd><p>No. It makes requests to your own website and nothing else. There is no account, no API key and no tracking.<\/p><\/dd>\n<dt id=\"it%20says%20ai%20crawlers%20are%20blocked.%20how%20do%20i%20fix%20it%3F\"><h3>It says AI crawlers are blocked. How do I fix it?<\/h3><\/dt>\n<dd><p>First check which kind. If the plugin says you are refusing only the training\ncrawlers, nothing is broken and there may be nothing to fix; that is a choice,\nand it does not stop an assistant recommending you. Only a refused search-time\nagent actually costs you anything.<\/p>\n\n<p>If a search-time agent is being refused, it depends where the block is, and the\nplugin tells you which.<\/p>\n\n<p>If it is WordPress's own setting, go to Settings &gt; Reading and untick \"Discourage search engines from indexing this site\".<\/p>\n\n<p>Worth knowing, because most write-ups still get this wrong: since WordPress 5.3 that switch no longer writes Disallow: \/ into robots.txt. It adds a noindex tag to your pages instead, so crawlers read them and are then told not to list them. A tool that only reads robots.txt cannot see it at all. This plugin checks the setting, the tag and robots.txt separately, and tells you which one is responsible.<\/p>\n\n<p>If robots.txt is the problem, edit the file or the plugin generating it. If your server is returning 403, the cause is usually a security plugin, a firewall rule, or your host's bot protection. Cloudflare in particular has a setting that blocks AI crawlers, and it is on by default for some accounts.<\/p><\/dd>\n<dt id=\"will%20this%20get%20my%20business%20recommended%20by%20chatgpt%3F\"><h3>Will this get my business recommended by ChatGPT?<\/h3><\/dt>\n<dd><p>No, and be wary of anything claiming it will. Whether an assistant names you depends on reviews, directories, your reputation across the web and how each engine weighs its sources. None of that is under any plugin's control.<\/p>\n\n<p>What this tells you is whether you are in the running at all. A site that cannot be read cannot be recommended, so this is the floor, not the ceiling.<\/p><\/dd>\n<dt id=\"why%20does%20it%20check%20googlebot%3F\"><h3>Why does it check Googlebot?<\/h3><\/dt>\n<dd><p>As a control. If your site refuses AI crawlers but serves Googlebot, that points at an AI-specific rule. If it refuses both, you have a general bot problem that is hurting your Google ranking as well, which is more urgent.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Separates the agents that read your page when a customer asks from the crawlers that collect pages to train on, and only raises an alarm for the first kind. Adds ChatGPT-User as a request and Perplexity-User and Claude-SearchBot as robots.txt checks. Version 1.0.0 reported a training opt-out as \"ChatGPT: blocked\", which reads as \"you are invisible\" when the site is still perfectly readable at the moment a customer asks about it. That was measured, not guessed: of 293 local business sites, 14 of the 15 refusing an AI crawler in robots.txt refused only the training crawlers and allowed the search-time agents by name.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release. Crawler access checks for ChatGPT, ChatGPT Search, Claude and Perplexity using each one's real user agent, robots.txt parsing with correct group precedence, detection of WordPress's \"Discourage search engines\" setting, structured data detection, llms.txt detection, and a Googlebot control. robots.txt and llms.txt are read at the domain root, so a WordPress install in a subdirectory is checked against the file crawlers actually read. Structured data is read by decoding the JSON-LD rather than pattern matching it, so a type written as a list is counted. Runs are held to a wall clock budget and report themselves as incomplete rather than timing out. Detects a noindex tag on the front page, which is what WordPress's \"Discourage search engines\" setting has actually set since WordPress 5.3, and what an SEO plugin may set on its own.<\/li>\n<\/ul>","raw_excerpt":"Find out whether ChatGPT, Claude, Perplexity and Google&#039;s AI can actually read your website. Takes about ten seconds.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=358553"}],"author":[{"embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/boiledpotat0"}],"wp:attachment":[{"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358553"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358553"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358553"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358553"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358553"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}