When the Search Atlas WordPress plugin cannot write to the physical robots.txt file on your server, it automatically activates Virtual Mode and serves your robots.txt rules from the WordPress database instead. The (Virtual) badge in the plugin UI confirms this mode is active.
🛡️ What Virtual Mode Is
Virtual Mode is a built-in fallback mechanism in the Search Atlas WordPress plugin. Instead of reading and writing a physical robots.txt file on your server's filesystem, the plugin stores and delivers your robots.txt rules directly from the WordPress database.
Your robots.txt rules remain fully active in Virtual Mode — search engine crawlers receive the correct content. The only difference is where the rules live and how they are delivered.
⚡ When Virtual Mode Activates
The plugin switches to Virtual Mode automatically when it detects it cannot write to the physical robots.txt file at the root of your WordPress installation. Common causes include:
- The web server user (e.g.,
www-dataornginx) does not have write permission to the site root directory. - An existing
robots.txtfile is owned by a different user or set to read-only. - Your hosting environment restricts filesystem writes for security reasons — common on managed WordPress hosts such as WP Engine or Kinsta.
No manual configuration is required. The plugin detects the permission state automatically and activates Virtual Mode on its first request.
Note on CDN or caching layers: If a CDN or caching layer is active, ensure it is configured to pass robots.txt requests through to WordPress, or to purge the cached robots.txt after changes — otherwise crawlers may see a stale version even when Virtual Mode is working correctly.
🏷️ What the (Virtual) Badge Means
When Virtual Mode is active, the Search Atlas plugin displays a (Virtual) badge next to the robots.txt section in the plugin UI. This badge confirms:
- The plugin is serving your robots.txt rules from the WordPress database, not from a physical file on disk.
- Rules you save in the plugin are stored in the database and delivered dynamically to search engine crawlers.
- Your SEO configuration is fully active — crawlers receive the correct robots.txt content.
Seeing the (Virtual) badge means your setup is working correctly in Virtual Mode.
Other robots.txt panel indicators
All timestamps in the robots.txt panel — including the last-modified time and backup history entries — reflect the timezone configured in WordPress Settings → General.
The plugin also surfaces a validation warning when a blanket Disallow: / rule is detected, alerting administrators before they accidentally block all crawlers. (A previous bug silently suppressed this warning; it now triggers correctly after updating.)
🔍 How to Confirm Virtual Mode Is Active
- In your WordPress admin, go to Search Atlas → Robots.txt.
- Look for the (Virtual) badge displayed next to the robots.txt heading or status indicator.
- If the badge is visible, Virtual Mode is active and your rules are being served from the database.
- To verify your rules are live, visit
https://yourdomain.com/robots.txtin a browser — you should see the exact rules you configured in the plugin.
If your configured rules appear at that URL, Virtual Mode is working as intended.
If the (Virtual) badge does not appear after saving, ensure you are running the latest version of the Search Atlas WordPress plugin — an earlier bug prevented the badge from displaying after the first page load. A plugin update or cache flush resolves it.
⚠️ (Virtual) Badge Disappearing — Known Issue (Now Fixed)
A bug in the Search Atlas WordPress plugin caused the (Virtual) badge to silently disappear from the UI after the first request, even though Virtual Mode remained active and robots.txt continued to be served correctly from the database. The root cause was a strict type comparison in the plugin's robots.txt class that incorrectly evaluated the Virtual Mode state after the initial check.
Symptoms of this bug
- Virtual Mode was active and robots.txt rules were being delivered to crawlers correctly.
- The (Virtual) badge vanished from the plugin UI after the initial page load or request.
- No error or warning message appeared — the badge simply stopped showing.
How to apply the fix
- In your WordPress admin, go to Plugins → Installed Plugins.
- Find Search Atlas and click Update if an update is available.
- After updating, go to Search Atlas → Robots.txt and confirm the (Virtual) badge is now consistently visible.
If you have already updated and the badge is still missing, contact Search Atlas support.
🔧 How to Restore Physical robots.txt Write Access
If you prefer the plugin to write directly to a physical robots.txt file rather than using Virtual Mode, you need to grant the web server write permission to your site's root directory. The exact steps depend on your hosting environment.
Check current file permissions
- Connect to your server via SSH or your hosting control panel's file manager.
- Navigate to the root of your WordPress installation — the folder containing
wp-config.php. - Check whether a
robots.txtfile exists and note its owner and permissions.
Grant write permission
- If
robots.txtalready exists, set its permissions to644and ensure the web server user (e.g.,www-data) is the owner. - If
robots.txtdoes not exist, ensure the web server user has write permission on the site root directory so the plugin can create the file. - On managed hosts (e.g., WP Engine, Kinsta, Flywheel), filesystem write restrictions are often enforced by the platform — contact your host's support team for guidance before changing permissions.
After write access is restored, the plugin automatically detects the change on the next save and exits Virtual Mode. The (Virtual) badge will no longer appear.
🎯 You now know what Virtual Mode is, when it activates, and what the (Virtual) badge signals in the Search Atlas WordPress plugin. If the badge disappeared before a recent plugin update, upgrading to the latest version restores the display — your robots.txt rules were being served correctly the entire time. For more on configuring your crawl directives, see the Robots.txt Settings in Search Atlas article.