{"id":346302,"date":"2026-08-15T15:47:18","date_gmt":"2026-08-15T15:47:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/liteseo\/"},"modified":"2026-08-20T21:49:47","modified_gmt":"2026-08-20T21:49:47","slug":"purlbot","status":"closed","type":"plugin","link":"https:\/\/pt.wordpress.org\/plugins\/purlbot\/","author":23525296,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Purlbot \u2013 SEO, Security & Site Health","header_author":"Adbindra Corporation","header_description":"Purlbot is a lightweight SEO, security, performance, sitemap, schema, redirects, AI SEO, AEO, GEO, and site health plugin designed to help optimize your website for search engines and AI-powered search and answer engines.","assets_banners_color":"02142c","last_updated":"2026-08-20 21:49:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.adbindra.com\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":63,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"adbindracorporation","date":"2026-08-15 15:46:55"},"1.0.3":{"tag":"1.0.3","author":"adbindracorporation","date":"2026-08-20 21:49:47"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3648889,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3648889,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3648889,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3648889,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[262246],"plugin_tags":[1487,726,600,186,1557],"plugin_category":[55],"plugin_contributors":[275866],"plugin_business_model":[],"class_list":["post-346302","plugin","type-plugin","status-closed","hentry","plugin_section-dashboard-widgets","plugin_tags-custom-post-types","plugin_tags-redirects","plugin_tags-security","plugin_tags-seo","plugin_tags-sitemap","plugin_category-seo-and-marketing","plugin_contributors-adbindracorporation","plugin_committers-adbindracorporation"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/purlbot_02142c.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Purlbot<\/strong> is an all-in-one SEO, security, and performance plugin for WordPress. It helps you optimize your website for traditional search engines like Google and Bing, and for AI-powered answer engines like ChatGPT, Perplexity, and Google AI Overviews.<\/p>\n\n<p>Instead of installing several separate plugins to cover SEO, security, and site health, Purlbot combines the tools most WordPress sites need into one lightweight solution.<\/p>\n\n<h4>Sitemap<\/h4>\n\n<p>Purlbot generates a sitemap index (<code>sitemap.xml<\/code>) with simple XML sub-sitemap files, written directly to your site's root folder instead of being built on every request. That means:<\/p>\n\n<ul>\n<li>Sitemaps load instantly, served directly by your web server \u2014 no PHP execution overhead per request.<\/li>\n<li>Easy for Google Search Console and AI agents to read and index your site.<\/li>\n<li>Automatic regeneration whenever you publish, edit, or delete content.<\/li>\n<li>Covers posts, pages, custom post types, and taxonomies \u2014 you choose which.<\/li>\n<li>A human-readable version is also available at <code>\/sitemap<\/code>, grouped by content type, for visitors browsing your site.<\/li>\n<\/ul>\n\n<h4>Robots.txt<\/h4>\n\n<p>Granular control over which search engines and AI crawlers (Googlebot, GPTBot, ClaudeBot, PerplexityBot, and more) may access your site, plus standard WordPress crawl-hardening rules. Directly editable, and <strong>always takes priority over other SEO plugins<\/strong> \u2014 even if Yoast, Rank Math, or another plugin is also active. If a robots.txt file already exists on your site, Purlbot shows it to you as-is and will not modify it until you explicitly save from the Robots.txt page.<\/p>\n\n<h4>Optional modules (off by default, enable from Purlbot \u2192 Settings)<\/h4>\n\n<p>Sitemap and Robots.txt are always on \u2014 everything else stays off until you turn it on, so Purlbot stays genuinely lightweight:<\/p>\n\n<ul>\n<li><strong>llms.txt &amp; humans.txt<\/strong> \u2014 editable files for AI assistants and site credits, with local \"Smart Fill\" (no AI, no network calls) and an optional \"open in ChatGPT\" prompt helper.<\/li>\n<li><strong>Performance<\/strong> \u2014 disable emojis, embeds, feeds, and jQuery Migrate; DB Cleanup Lite (expired transients + old revisions).<\/li>\n<li><strong>Security<\/strong> \u2014 security headers, disable file\/theme editing, hide the WordPress version, disable XML-RPC, block public readme\/license file access, block username enumeration, and disable comments sitewide.<\/li>\n<li><strong>Redirects<\/strong> \u2014 redirect manager with exact and wildcard matching, hit counter, and a 404 monitor.<\/li>\n<li><strong>SEO, AEO &amp; GEO Audit<\/strong> \u2014 audits your homepage: instant on-page checks (title\/meta length, headings, schema, links, images) computed locally in PHP, plus a short list of judgment checks (does this read like a direct answer? is there a clear summary?) run one at a time by a small AI model loaded directly in your browser via the bundled, Apache-2.0-licensed WebLLM engine.<\/li>\n<li><strong>Meta Title &amp; Description<\/strong> \u2014 a metabox on every post\/page with SEO title, meta description with a SERP preview, canonical URL, noindex, social share (Open Graph\/Twitter) fields, and a per-page schema type override with an editable JSON-LD preview.<\/li>\n<li><strong>Schema Markup<\/strong> \u2014 automatic JSON-LD structured data (Organization, WebSite, Article\/WebPage, breadcrumbs) on every page.<\/li>\n<li><strong>Image SEO<\/strong> \u2014 finds images in your Media Library missing alt text, with a one-click filename-based auto-fill (no AI, so it's instant).<\/li>\n<li><strong>Content Freshness<\/strong> \u2014 lists published content untouched for 12+ months, oldest first.<\/li>\n<li><strong>Post Types &amp; Taxonomies<\/strong> \u2014 register custom post types and taxonomies from wp-admin, no code required: labels, visibility, REST\/block-editor support, menu icon and position, supported features, and taxonomy attachments, plus a \"Get Code\" button that exports the equivalent <code>register_post_type()<\/code>\/<code>register_taxonomy()<\/code> PHP if you ever want to move the definition into your theme or a custom plugin.<\/li>\n<\/ul>\n\n<p><strong>A note on Meta Title &amp; Description and Schema Markup:<\/strong> to avoid duplicate\/conflicting <code>&lt;title&gt;<\/code>, meta description, canonical, and structured-data tags, these two modules only output their tags when no other SEO plugin (Yoast, Rank Math, All in One SEO, SEOPress) is active. Fields still save either way, so nothing is lost if you later disable the other plugin.<\/p>\n\n<p><strong>External requests disclosure:<\/strong> none of this makes external network requests by default. The one exception is the SEO, AEO &amp; GEO Audit's AI judgment checks, which are entirely optional (off unless you enable the module and click \"Run Audit\"): the first time you run them, your browser downloads an open-source AI model's weights (several GB) from MLC AI's own CDN and caches them locally; every check after that runs fully offline, in your browser, and no page content is ever sent to Purlbot or any third party for this feature. The separate \"open in ChatGPT\" links elsewhere in the plugin simply open a URL in a new browser tab \u2014 Purlbot itself never calls any AI API.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin's optional <strong>SEO, AEO &amp; GEO Audit<\/strong> module (off by default \u2014 see \"Optional modules\" above) includes a set of \"AI judgment checks\" that run entirely inside your own browser, not on our servers or any server we operate. To do this, when you click \"Run Audit\" on that page for the first time, your browser downloads an open-source language model (Llama-3, via the bundled Apache-2.0-licensed WebLLM engine) directly from:<\/p>\n\n<ul>\n<li>Hugging Face (huggingface.co) \u2014 model weights<\/li>\n<li>GitHub (raw.githubusercontent.com, via the mlc-ai\/binary-mlc-llm-libs repository) \u2014 the matching WebAssembly runtime library for your device<\/li>\n<\/ul>\n\n<p>No page content, site data, or personal data is sent to us as part of this. The only data that leaves your browser is the standard HTTP request each of those hosts needs to serve the file (e.g. your IP address, as with any file download), governed by their own terms:<\/p>\n\n<ul>\n<li>Hugging Face: <a href=\"https:\/\/huggingface.co\/terms-of-service\">Terms of Service<\/a> \/ <a href=\"https:\/\/huggingface.co\/privacy\">Privacy Policy<\/a><\/li>\n<li>GitHub: <a href=\"https:\/\/docs.github.com\/en\/site-policy\/github-terms\/github-terms-of-service\">Terms of Service<\/a> \/ <a href=\"https:\/\/docs.github.com\/en\/site-policy\/privacy-policies\/github-privacy-statement\">Privacy Statement<\/a><\/li>\n<\/ul>\n\n<p>The instant on-page checks (title\/meta length, headings, schema, links, images) run locally in PHP on your own server and never contact any external service. The \"Open in ChatGPT\" buttons found on the Audit and llms.txt pages are plain links that open chatgpt.com in a new browser tab with a pre-filled prompt for you to run yourself \u2014 Purlbot does not call ChatGPT or any OpenAI API on your behalf.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>purlbot<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install directly from the WordPress plugin directory.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Go to <strong>Purlbot \u2192 Sitemap<\/strong> to choose which post types and taxonomies to include.<\/li>\n<li>Go to <strong>Purlbot \u2192 Robots.txt<\/strong> to control bot access.<\/li>\n<li>Go to <strong>Purlbot \u2192 Settings<\/strong> to turn on any optional modules (llms.txt, Performance, Security, Redirects, AEO Audit).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20don%27t%20i%20see%20performance%2Fsecurity%2Fredirects%2Fllms.txt%2Faeo%20audit%20in%20the%20menu%3F\"><h3>Why don't I see Performance\/Security\/Redirects\/llms.txt\/AEO Audit in the menu?<\/h3><\/dt>\n<dd><p>They're off by default to keep the plugin genuinely lightweight. Turn on what you want from <strong>Purlbot \u2192 Settings<\/strong> and the tab appears immediately.<\/p><\/dd>\n<dt id=\"why%20don%27t%20the%20ai%20judgment%20checks%20run%20on%20the%20audit%20page%3F\"><h3>Why don't the AI judgment checks run on the Audit page?<\/h3><\/dt>\n<dd><p>They need a browser with WebGPU support (currently Chrome or Edge). If your browser doesn't support it, the instant on-page checks still run and display normally \u2014 you'll just see a fallback link to run the same kind of audit manually via ChatGPT instead.<\/p><\/dd>\n<dt id=\"why%20is%20my%20sitemap%2Frobots.txt%20not%20updating%20immediately%3F\"><h3>Why is my sitemap\/robots.txt not updating immediately?<\/h3><\/dt>\n<dd><p>Sitemap regeneration is debounced (runs ~30 seconds after a content change via WP-Cron) to avoid rebuilding on every single save. Settings changes on the Purlbot admin pages regenerate immediately.<\/p><\/dd>\n<dt id=\"i%20have%20another%20seo%20plugin%20active%20%E2%80%94%20will%20it%20conflict%3F\"><h3>I have another SEO plugin active \u2014 will it conflict?<\/h3><\/dt>\n<dd><p>No. Purlbot automatically disables sitemap output from Yoast, Rank Math, All in One SEO, SEOPress, and Jetpack, and its robots.txt rules always take priority over any other plugin's, so there's nothing to configure manually.<\/p><\/dd>\n<dt id=\"how%20does%20redirect%20matching%20work%3F\"><h3>How does redirect matching work?<\/h3><\/dt>\n<dd><p>Exact matching compares the path directly (<code>\/abc<\/code> and <code>\/abc\/<\/code> are treated the same). Wildcard matching lets you use <code>*<\/code> as a placeholder \u2014 e.g. <code>\/old-blog\/*<\/code> \u2192 <code>https:\/\/example.com\/blog\/*<\/code> carries the matched portion through to the destination.<\/p><\/dd>\n<dt id=\"where%20are%20the%20files%20written%3F\"><h3>Where are the files written?<\/h3><\/dt>\n<dd><p>To your WordPress root folder (the same folder as <code>wp-config.php<\/code>), so <code>sitemap.xml<\/code>, <code>robots.txt<\/code>, <code>llms.txt<\/code>, and <code>humans.txt<\/code> are served as static files by your web server. If that folder isn't writable, or isn't actually your site's public web root, set the correct path from <strong>Purlbot \u2192 Sitemap \u2192 Advanced \u2192 Static file directory<\/strong>.<\/p><\/dd>\n<dt id=\"can%20i%20create%20custom%20post%20types%20and%20taxonomies%20without%20writing%20code%3F\"><h3>Can I create custom post types and taxonomies without writing code?<\/h3><\/dt>\n<dd><p>Yes. Turn on the <strong>Post Types &amp; Taxonomies<\/strong> module from <strong>Purlbot \u2192 Settings<\/strong>, then go to <strong>Purlbot \u2192 Post Types &amp; Taxonomies<\/strong> to add one from wp-admin \u2014 labels, visibility, REST\/block-editor support, supported features, menu icon and position, and which taxonomies attach to it. New post types you mark public immediately show up as a sitemap option on the existing <strong>Purlbot \u2192 Sitemap<\/strong> page, no extra setup needed. Deleting a post type or taxonomy only removes the registration \u2014 any content already created with it is left untouched.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added: Post Types &amp; Taxonomies module \u2014 register custom post types and taxonomies from wp-admin (off by default, enable from Purlbot \u2192 Settings), with a \"Get Code\" export for the equivalent PHP.<\/li>\n<li>Fixed: a newly-added custom post type could 404 on its first permalink visit because rewrite rules were flushed before the new type was re-registered in that request; the flush now always happens after re-registering.<\/li>\n<li>Improved: the Post Types &amp; Taxonomies slug field now converts spaces to underscores as you type (and on save), instead of silently dropping them.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added: Disable Comments toggle in Security \u2014 closes new comments and pings, hides existing comments, and removes the Comments menu, dashboard widget, and admin bar link.<\/li>\n<li>Added: \"Static file directory\" setting (Purlbot \u2192 Sitemap \u2192 Advanced) for sites where the WordPress root isn't writable, or isn't the true public web root \u2014 common on managed hosts that keep WordPress core in a separate, read-only, version-specific folder. Lets you point Purlbot at the correct writable path from wp-admin instead of needing a code snippet.<\/li>\n<li>Improved: sitemap status now shows accurate \"Total links\" and \"Last updated\" values even if the static file write fails, since the sitemap content itself is generated successfully either way.<\/li>\n<li>Improved: robots.txt status no longer shows \"Not live\" when only the static file write fails \u2014 WordPress's dynamic robots.txt output always serves Purlbot's rules correctly regardless, and the status now reflects that.<\/li>\n<li>Improved: sitemap's dynamic front-end fallback no longer retries a failing disk write on every visitor request.<\/li>\n<li>Improved: admin menu icon.<\/li>\n<li>Updated: \"Tested up to\" to WordPress 7.1.<\/li>\n<li>Fixed: a Plugin Check false positive on the Performance page's emoji dns-prefetch filter, which removes a WordPress-core-added remote resource hint rather than adding one.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Removed the Plugin URI header (pointed at a page that doesn't exist yet).<\/li>\n<li>Replaced an inline <code>&lt;style&gt;<\/code> block on the HTML sitemap page with a properly enqueued stylesheet.<\/li>\n<li>Removed the custom login URL \/ password-change feature from Security (no longer needed; also removed a hardcoded <code>wp-login.php<\/code> reference it contained).<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Sitemap: sitemap.xml index with chunked sub-sitemaps for posts, pages, custom post types, and taxonomies; automatic debounced regeneration; live fallback rendering.<\/li>\n<li>Robots.txt: per-bot allow\/block controls (including major AI crawlers), WordPress crawl-hardening rules, directly editable, always takes priority over other SEO plugins.<\/li>\n<li>Optional modules (off by default, enabled from Settings): llms.txt &amp; humans.txt, Performance, Security, Redirects (exact + wildcard matching, 404 monitor), Meta Title &amp; Description, Schema Markup, Image SEO, Content Freshness, and SEO\/AEO\/GEO Audit.<\/li>\n<li>Automatically disables sitemap output from Yoast, Rank Math, All in One SEO, SEOPress, and Jetpack to avoid duplicates.<\/li>\n<\/ul>","raw_excerpt":"All-in-one SEO, security &amp; performance plugin: XML sitemap, robots.txt, schema markup, and redirects for Google and AI search engines.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=346302"}],"author":[{"embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/adbindracorporation"}],"wp:attachment":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346302"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346302"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346302"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346302"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346302"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}