Crawlability
Is Anything on Your Site Actually Blocking Google From Reaching It?
Crawlability is whether search engine and AI crawlers can discover, request, and reach a 200 response for every page you want indexed — before ranking is even possible. It's controlled by robots.txt directives, XML sitemaps, redirect chains, crawl budget, and page-level indexation signals (robots meta tags, X-Robots-Tag headers), and a problem in any one of them can keep a page invisible to Google regardless of how good the content is.
The problem
Ranking work is wasted on a page a crawler never reaches. A single misconfigured Disallow rule, an unnecessary redirect hop, a sitemap that references dead URLs, or a robots meta tag left on noindex after a staging deploy can each independently keep a page out of the index — and because these are infrastructure-level issues rather than content issues, they're often invisible until someone checks Search Console's Coverage report or the raw server logs. Crawl budget compounds this on larger sites: Googlebot allocates a finite number of requests per site per day, and every request spent on a redirect chain, a duplicate URL parameter, or a dead sitemap entry is a request not spent discovering or refreshing a page that matters.
Symptoms
Search Console's Page Indexing report shows "Discovered - currently not indexed" or "Crawled - currently not indexed" for pages that are otherwise complete and linked internally.
The URL Inspection tool reports "Blocked by robots.txt" for a path you expect to be crawlable, or shows a live page as noindex when you never intended to set that.
New or updated pages take far longer to appear in search results than the site's publishing cadence would suggest, with no clear content-quality explanation.
Server logs (or a log-file crawl analysis) show Googlebot spending a disproportionate share of its requests on redirect chains, parameterized duplicate URLs, or pages that already 404, instead of on canonical content pages.
sitemap.xml references URLs that 404, redirect, or resolve to a noindex page — visible as errors in Search Console's Sitemaps report.
How we diagnose it
We start with robots.txt itself, requested exactly as a crawler would fetch it, and check every Disallow rule against the URL patterns it actually matches — a rule written to block one path can unintentionally match others through prefix matching. We cross-check Search Console's Page Indexing and Sitemaps reports against the live sitemap, request every sitemap URL to confirm it returns 200 with no redirect or noindex, and trace any redirect chains found (a request that hops through two or more redirects before reaching its final destination) since each hop both wastes crawl budget and can cause Google to treat the chain as untrustworthy. Where server or CDN logs are available, a log-file analysis shows which paths Googlebot, Bingbot, and AI crawlers such as OAI-SearchBot are actually requesting and how often — the ground truth for crawl budget allocation, as opposed to what Search Console samples.
The fix
The fix is almost always to remove friction between the crawler and the page that should rank: correct any robots.txt rule that over-blocks, collapse redirect chains to a single direct hop, remove or fix dead sitemap entries, and make sure indexation signals (robots meta tag, X-Robots-Tag response header) say what's actually intended rather than a leftover staging default. On sites with a large or fast-changing URL set, we also reduce low-value crawl surface — parameterized duplicate URLs, thin auto-generated pages, retired features returning a genuine status code — so crawl budget concentrates on pages worth indexing.
Implementation: what this covers, in practice
Robots.txt directives: a single userAgent: "*" rule set with an explicit allow list and a disallow list scoped to genuinely private or non-content paths (auth pages, API routes, internal font files with no SEO value) — this site keeps Link Builder's and Link Shortener's retired URLs deliberately crawlable after their retirement rather than disallowed, specifically so Google can observe their real 410 Gone status and drop them from the index, instead of getting stuck unable to re-crawl a blocked URL it still has indexed. XML sitemaps and crawl signals: rather than one oversized file, this site publishes a set of purpose-scoped sitemaps (a flat static-page set plus separate blog and CMS-page sitemaps) declared as independent Sitemap: directives in robots.txt, which is valid per the sitemap protocol and keeps each file focused enough that a crawler can process it without a single monolithic file becoming a bottleneck. Crawl budget: every redirect hop, duplicate parameterized URL, and dead sitemap entry is a request spent on something other than real content — on a large site this is the difference between a new page getting crawled same-day and taking weeks. Redirect chains and their crawl cost: a request that resolves through two or more redirects before reaching a final 200 costs the crawler multiple requests for one page and dilutes the link signal passed through each hop — we collapse these to a single direct redirect wherever found. Indexation control via robots meta / X-Robots-Tag: page-level noindex, either in an HTML meta tag or an X-Robots-Tag HTTP header, is checked independently from robots.txt since the two operate differently — a robots.txt disallow prevents crawling but not necessarily indexing of a URL Google already knows about, while a page-level noindex requires the crawler to actually fetch the page to see it. Log-file analysis basics: raw server or CDN access logs, filtered to verified crawler user agents by reverse DNS (not just the user-agent string, which is trivially spoofable), show exactly which URLs a crawler requested, how often, and what status code each request returned — the closest thing to ground truth for how crawl budget is actually being spent. Crawler-specific behavior: Googlebot and Bingbot both generally respect robots.txt and execute JavaScript on a second rendering pass; AI crawlers such as OpenAI's OAI-SearchBot and GPTBot are checked against the same robots.txt rules and confirmed not to be inadvertently blocked when the intent is to remain visible to AI-driven search and answer engines, consistent with this site's broader answer-engine-optimization work.
Common mistakes
Writing a robots.txt Disallow rule intended to block one specific path, without checking that its prefix-matching behavior doesn't also block unrelated paths that happen to share the same prefix.
Leaving a page's robots meta tag or X-Robots-Tag header set to noindex after a staging or redesign deploy, so a page renders correctly but never enters the index.
Listing redirected or 404ing URLs in sitemap.xml, which both wastes crawl budget and signals a poorly maintained sitemap to the crawler that indexes it.
Letting internal links create multi-hop redirect chains over time (old link -> old redirect target -> newer redirect target) instead of periodically updating internal links to point directly at the final URL.
Blocking a path in robots.txt as a way to try to remove it from the index — robots.txt prevents crawling, not indexing, so a URL Google already has indexed can stay indexed with a URL-only listing even while blocked, and page-level noindex is the correct tool for that instead.
Validation
We validate with Search Console's URL Inspection tool per fixed URL (confirming "crawl allowed," "indexing allowed," and a successful fetch), the Sitemaps report showing zero errors against the live sitemap, a fresh robots.txt fetch diffed against the intended rule set, and, where logs are available, a follow-up log-file check confirming Googlebot's request pattern shifted away from the previously wasted paths and toward the pages meant to rank.
EN/AR considerations
Crawlability rules apply identically across locales — robots.txt, sitemaps, and redirect logic are locale-agnostic by design on this site — but each locale's sitemap and hreflang alternates are checked independently, since a redirect chain or dead sitemap entry introduced only on the Arabic URL set is invisible if validation only ever checks the English pages.
Related service & solutions
Crawlability is the foundation the rest of technical SEO builds on: a page with perfect schema markup, hreflang, and Core Web Vitals still can't rank if a crawler never reaches it, so this page is meant to be read alongside the more specific implementation guides below.
Frequently asked questions
Common questions about crawlability, robots.txt, and crawl budget
What's the difference between crawlability and indexability?
Does robots.txt actually stop a page from being indexed?
How much does crawl budget actually matter for a smaller site?
Do AI crawlers like OAI-SearchBot follow the same robots.txt rules as Googlebot?
How do I check what Googlebot is actually crawling on my site?
Want a crawlability audit of robots.txt, sitemaps, and redirect health?
Request a crawlability auditYou Might Also Find Useful
How Long Does SEO Take to Work?
SEO takes 3–6 months to show results and 9–12 months for full ROI. Learn the honest timeline, what affects speed, and how to accelerate results in Jordan.
How Much Does SEO Cost? — Pricing Guide for Jordan & MENA
SEO in Jordan costs $500–$1,500/month for meaningful results. Learn what drives pricing, what you're actually paying for, and how to avoid low-quality SEO traps.
SEO vs GEO: Traditional Search vs AI-Powered Discovery
Learn the difference between SEO (traditional search) and GEO (generative engine optimization for AI) and how to build a strategy that wins on both channels.