# 9 Pre-Launch Checks for SEO and AI Crawlers > A page loading in your browser does not mean AI bots can read it. Run these 9 technical checks before launch to ensure your content is discoverable. Source: https://www.starbox.work/en/insights/geo-guide/geo113/ (Starbox AI Insights, updated 2026-10-04) A crawler (or bot) is an automated program that search engines and AI platforms use to discover web pages and parse their content. Just because you finished writing the copy and the page opens cleanly in your browser does not mean crawlers can discover, access, and interpret it. Crawlers may fail to find the URL, get blocked at the network perimeter, or receive an empty page shell stripped of core copy. To run an effective technical audit, distinguish between these four stages: - **Discovery:** The platform discovers that the URL exists. - **Crawling:** The crawler requests the page and downloads its raw content. - **Indexing:** The platform parses and stores the page data in a searchable index. - **Citation:** An AI platform retrieves and references the page content when generating answers. These stages do not trigger automatically in sequence. Discovering a URL does not guarantee crawling, and a successful crawl does not guarantee indexing or AI citation. Similarly, an HTTP 200 OK status code only means the server handled the request without error. It does not prove that the initial HTML payload delivered to the bot contains readable body text. Before taking a site or major update live, answer these four questions: 1. Can the page be discovered? 2. Can the page be accessed normally? 3. Can the core content be parsed from the raw response? 4. Do server logs verify successful visits from targeted crawlers? Server logs record actual traffic handled by your origin server or content distribution network (CDN). They show precisely who requested which URL, when the request occurred, and what response code the server returned. Avoid four common misconceptions before auditing: - Adding an `Allow` directive in `robots.txt` does not guarantee the page will be crawled. - An HTTP 200 status code does not guarantee that page text is readable. - Allowing search crawlers does not mean AI training crawlers or user-triggered browse agents follow the same access rules. - A request with a recognized User-Agent header does not prove the request originated from an official platform bot. Leading AI platforms configure separate User-Agent strings for web search, model training, and user-triggered retrieval. Sites need granular policies based on business goals rather than a single catch-all rule. Audit the following 9 items from server response down to raw server logs. If any critical item fails, resolve it before launch. | Checklist Item | Passing Criteria | Common Issues | |---|---|---| | 1. Public accessibility | URL loads without login; domain and HTTPS certificates are valid | Login walls, SSL errors, regional geo-blocking | | 2. HTTP status code | Target URL directly or cleanly resolves to HTTP 200 | 4xx errors, 5xx errors, soft 404s, redirect chains | | 3. `robots.txt` | Clear allow/disallow directives configured per User-Agent role | Broad wildcard rules unintentionally blocking the entire site | | 4. `noindex` directives | Indexable pages contain no "do not index" commands | Forgotten staging tags in page templates or HTTP response headers | | 5. WAF and CDN rules | Official platform crawlers are not blocked by security challenges | Relying solely on `robots.txt` while WAFs silently drop bot traffic | | 6. HTML body copy | Raw initial HTML contains core facts, copy, and structural data | Empty container shells where copy requires client-side JavaScript | | 7. URL consistency | Canonical tags, redirects, and internal links point to the same URL | Conflicting canonicals or alternating desktop/mobile variants | | 8. Sitemap accuracy | Sitemaps contain only clean, 200-status URLs with accurate dates | Sitemaps populated with 404s, redirects, staging URLs, or fake `lastmod` timestamps | | 9. Server log verification | Server logs record real bot hits with matching HTTP 200 statuses | Relying exclusively on web testing tools without verifying server-side access logs | ## 1. Is the Production Page Truly Open to the Public Web? Do not test site readiness by checking CMS preview screens. Audit the final production URL in an incognito browser session without active logins or cached assets. Verify the following: - DNS records point directly to the live production server. - The HTTPS certificate is valid and without browser warnings. - The page does not require user authentication or account logins. - The page does not serve an interactive CAPTCHA on initial load. - The server does not block traffic based on geographic IP location. - Access is not restricted to internal or whitelisted corporate IP addresses. Loading a staging or development environment proves only that staging works. Preview URLs and internal staging links cannot serve as proxies for live production crawler access.  ## 2. Does the HTTP Status Code Reflect the True Outcome? HTTP status codes represent the server's formal response to a client request: - **200:** The request succeeded. - **3xx:** The resource has moved and requires a redirect. - **4xx:** The request contains an error, the resource is missing, or access is unauthorized. - **5xx:** The server encountered an error processing the request. Google's baseline technical requirements specify that Googlebot must not be blocked, the URL must return HTTP 200, and the response must contain indexable content. Meeting these minimum requirements grants eligibility for indexing, but does not guarantee it. Review the complete requirements in the [Google Search Technical Essentials](https://developers.google.com/search/docs/essentials/technical). When reviewing status codes, do not rely solely on how a page renders in a browser. A "soft 404" happens when a server delivers an error message (such as "Page Not Found") within a regular template while returning an HTTP 200 OK header. Search engines may treat these as broken pages. Inspect the complete redirect path. Some pages bounce through multiple intermediary URLs, or trigger redirect loops on mobile user agents. Looking only at the final destination URL masks technical debt along the path. Record the following fields during your audit: | Field | Verification Requirement | |---|---| | Original URL | Must match the planned, permanent production URL | | Initial Status | Check whether the initial response returns 200, 3xx, 4xx, or 5xx | | Redirect Chain | Confirm redirects are direct (single-hop) and terminate at the official URL | | Final Status | Must consistently return HTTP 200 | | Content-Type | Verify MIME types (e.g., text/html, application/pdf, image/webp) match asset formats | | Response Time | Check for network latency, timeouts, or intermittent packet drops |  ## 3. Is `robots.txt` Configured by Crawler Role? A `robots.txt` file instructs web crawlers which paths they can or cannot request. It manages crawling volume; it is not a tool for keeping sensitive pages out of an index. Google explains that `robots.txt` is primarily designed to manage crawl traffic. If you need to keep a page out of Google Search results, allow crawlers to access the page and apply a `noindex` directive, or require user authentication. See the [Google robots.txt guide](https://developers.google.com/search/docs/crawling-indexing/robots/intro). AI platforms use distinct User-Agent strings depending on the purpose of the visit. Avoid uploading a generic template that allows or blocks all bots indiscriminately. Define specific business policies first: - Do you want your pages to appear in real-time AI search results? - Do you allow platforms to crawl content to train foundation models? - Do you want AI models to browse and retrieve your pages when prompted by active users? Once defined, configure rules according to each platform's documentation: | Platform | User-Agent | Documented Purpose | |---|---|---| | OpenAI | `OAI-SearchBot` | Retrieves web pages for ChatGPT search results | | OpenAI | `GPTBot` | Crawls web data for foundation AI model training | | OpenAI | `ChatGPT-User` | User-initiated browsing actions triggered within ChatGPT | | Anthropic | `Claude-SearchBot` | Crawls web data to improve search citations | | Anthropic | `ClaudeBot` | Crawls web data for AI model training datasets | | Anthropic | `Claude-User` | Fetches web pages triggered by direct user queries | | Perplexity | `PerplexityBot` | Indexes web pages to source and cite links in Perplexity search | | Perplexity | `Perplexity-User` | User-initiated page fetches for real-time query resolution | OpenAI lets site owners manage `OAI-SearchBot` independently from `GPTBot`. Anthropic separates `Claude-SearchBot`, `ClaudeBot`, and `Claude-User`. Perplexity differentiates automated indexing via `PerplexityBot` from user browsing via `Perplexity-User`. For details, review the [OpenAI crawler documentation](https://developers.openai.com/api/docs/bots), the [Anthropic crawler guide](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler), and the [Perplexity crawler documentation](https://docs.perplexity.ai/docs/resources/perplexity-crawlers). ## 4. Are `noindex` and `X-Robots-Tag` Accidentally Blocking Live Pages? A `noindex` rule tells search engines not to display a page in search results. For pages intended for public discovery, inspect three areas: - HTML `` tags in the page head. - `X-Robots-Tag: noindex` HTTP response headers returned by the web server. - CMS visibility settings (e.g., WordPress "Discourage search engines" toggles). When migrating staging sites to production, teams frequently carry over global `noindex` directives. Checking only page copy while missing server headers or global theme templates leads to accidental de-indexing. Never block a page in `robots.txt` if you need search engines to read a `noindex` directive. If `robots.txt` blocks access, crawlers will never fetch the page to discover the `noindex` instruction, and the URL may still appear in search results based on external anchor text. To restrict access completely, use HTTP authentication or password protection. For public assets you wish to exclude from specific AI indexes, configure directives according to platform specifications. ## 5. Are WAF, CDN, or Anti-Bot Rules Silently Intercepting Crawlers? A Web Application Firewall (WAF) identifies and mitigates malicious traffic, while a Content Delivery Network (CDN) caches and delivers content across edge nodes. Both operate independently of `robots.txt` rules. Allowing a crawler in `robots.txt` only means your crawling policy permits access. It does not prevent your WAF, CDN edge rules, or security plugins from dropping crawler requests. Common blocking triggers include: - Treating cloud data center IP addresses as automated scraping attacks. - Serving CAPTCHA challenges to non-browser User-Agent headers. - Setting rate-limiting thresholds too aggressively for high-volume crawlers. - Enforcing regional geo-blocking rules that exclude global crawler servers. Do not rely solely on User-Agent strings when setting WAF whitelists; User-Agent headers can be spoofed. Validate legitimate bot visits by checking incoming requests against official IP address ranges or reverse DNS lookups. Perplexity advises website administrators to verify both User-Agent strings and official IP address pools in their WAF configurations, updating IP lists regularly. OpenAI similarly publishes official IP ranges for its bots. After modifying firewall policies, check your origin server and CDN edge logs to verify that crawler requests return HTTP 200, rather than trusting a "rule enabled" toggle in a management console. ## 6. Does the Initial Server HTML Contain Core Copy? Web browsers download initial HTML, parse scripts, and execute JavaScript to render dynamic copy, tables, and interface components. Do not assume automated crawlers execute JavaScript the same way browsers do. While Googlebot renders JavaScript, its execution pipeline operates asynchronously. Many AI crawlers, retrieval engines, and user-directed browse agents do not execute complex client-side scripts at all. Inspect the raw HTML returned on the initial server response. Verify that the raw payload includes: - Page title (`