Bhavana's Week 02: Readable Isn't Findable
A readable page isn't necessarily a findable one. Bhavana Bhariday walks through the three questions a crawler asks when it lands on a site.
Getting Google to correctly read a single page is only half the job. The harder problem is getting Google to find that page in the first place, and then to trust that what it found is still the live, current version. That gap between readable and findable is the subject of this week's SEO update from Humanitarians AI Fellow Bhavana Bhariday, working as the SEO engineer on Job Seeker, a job search application.
Three questions every crawler asks
Bhavana frames the whole discovery problem around three questions a search crawler runs through the moment it lands on a site: what am I allowed to see, where is everything, and is this the real, live version of the page. The previous week's work made a single job page readable to Google. This week is about answering those three questions across the entire site, not just one page, so that every listing worth finding actually gets found.
Robots.txt sets the boundary
The first question, what's allowed, gets answered by robots.txt, described as the bouncer standing at the door. It waves crawlers toward the pages meant to be public, job listings, companies, and sponsor pages, while turning them away from dashboards, user profiles, analytics, and authentication flows. None of that internal, login-gated material belongs in a search index, and robots.txt is the mechanism that draws that line before a crawler ever gets that far.
A sitemap index under the 50,000-URL cap
The second question, where is everything, is answered by sitemap.xml. Rather than one enormous file listing every URL on the site, Job Seeker uses a small index file that points out to four specialized lists: jobs, companies, landing pages, and static pages. That split isn't just tidiness. Google caps each individual sitemap at 50,000 URLs, and the job listings alone were already climbing toward that ceiling, so splitting the sitemap into separate lists keeps every section safely under the limit as the site grows.
Canonical tags and a same-day noindex flip
The third question, is this the real version and should it even be shown, gets answered through two metadata tags. A canonical tag stops a single job listing from competing against itself if it happens to be reachable through more than one URL. A noindex, nofollow tag handles the opposite problem: the moment a listing goes inactive, the page needs to stop showing up in search results so job seekers aren't sent to a dead end. The catch Bhavana caught was timing. Flipping that tag only helps if it happens the same day the listing closes, not whenever the page next happens to rebuild on its own schedule. The fix ties the noindex flag directly to the job's own active status flag, so a closed listing goes noindex the same day it closes, catching a real edge case before it could ship as a bug.
Key takeaways
- A page being readable to Google says nothing about whether Google can actually discover it.
- Robots.txt answers "what am I allowed to see," steering crawlers toward public pages and away from dashboards, profiles, and auth flows.
- A sitemap index split into four specialized lists (jobs, companies, landing pages, static pages) keeps each file under Google's 50,000-URL cap.
- Canonical tags prevent a page from competing with itself, while noindex/nofollow removes stale listings from search results.
- The noindex flag needs to fire the same day a listing goes inactive, tied directly to the listing's active status rather than a rebuild schedule.
Try it yourself
Bhavana's closing challenge is worth running on your own site: check what your robots.txt actually allows, confirm your sitemap can be found and stays under the URL cap, and verify that pages which should no longer be indexed are actually flagged that way. This update is part of the Humanitarians AI Fellows program, where fellows document and share this kind of hands-on engineering work as they build it.
Chapters
Full transcript(auto-generated, with timestamps)
Introduction: The Crawler's Path
[0:00]Hi, I'm Bavana, a humanitarian's AI fellow. This is my week two report on Job Seeker, the job search app where I'm the SEO engineer, making Google find and rank our listings. Last week, Google could read one job page. This week is about discovery, how a search engine finds a whole site, and how it behaves once inside. The executive summary, a page Google can read is useless if Google can't find it.
Robots.txt: The Bouncer at the Door
[0:26]So, every crawler that lands runs three questions. What am I allowed to see? Where is everything? And is this the real live version? This week, I answered all three. Here's the whole path through Job Seeker. It checks robots.txt for permission, reads sitemap.xml to find every URL, and follows it out to four
Sitemap.xml: Staying Under the 50,000 URL Cap
[0:45]Lists: pages, jobs, companies, landing. The goal is the highlighted box, live pages, discoverable and indexed. First question a crawler asks, "What am I allowed to look at?" That's robots.txt, the bouncer at the door. It waves crawlers toward the pages that exist to be found: job listings, companies, sponsor pages, and turns them away from dashboards, profiles, analytics, and
Metadata: Canonicals and Noindex
[1:10]Auth. Nobody's login flow belongs in Google. Second question, "Where is everything?" That's the sitemap. Not one giant file, but a small index pointing to four specialized lists: jobs, companies, landing pages, and static pages. Splitting matters practically, too. Google caps each sitemap at 50,000 URLs, and the job board alone was already climbing toward that ceiling.
Recap and Next Steps
[1:36]Third question, "Is this the real version, and should I show it at all?" Two tags in the page's metadata. Canonical stops a job from competing with itself across URLs. And the robots line, the moment a listing goes inactive, the page flips to noindex, nofollow, so Google stops sending seekers to a dead end. The snag was timing. That noindex flip only helps if it happens the day a job closes, not whenever the page happens to rebuild. The fix drives the tag straight off the job's own active flag. So, a closed listing goes noindex the same day. A small edge case caught and fixed before it shipped. The recap, robots.txt sets the boundaries. One sitemap index fans out to four, staying under Google's 50,000 cap. Canonical and noindex keep each page honest, the real version and only while it's live. The rule this week, readable isn't findable. A page Google can read still has to be discovered, bounded, and kept fresh. Your turn. Point Claude at your own site and ask the crawlers three questions back. What's allowed? Where's the map? And which pages should quietly drop out when they go stale? Run this and see what a crawler would actually find. Readable isn't findable.





