User-agent: * Allow: / # Signed-in app surfaces: every one of these redirects anonymous crawlers to # /sign-in, so indexing them only produces duplicate sign-in pages. Disallow: /home Disallow: /library Disallow: /feed Disallow: /discover Disallow: /profile Disallow: /notifications Disallow: /settings Disallow: /clubs Disallow: /club/ Disallow: /buddy-read/ Disallow: /buddy-reads Disallow: /quotes Disallow: /save-quote Disallow: /scan-quote Disallow: /barcode-scanner Disallow: /reading-timer Disallow: /challenges Disallow: /achievements Disallow: /advanced-stats Disallow: /lending Disallow: /invitations Disallow: /invite-friends Disallow: /invite-contacts Disallow: /find-friends Disallow: /add-book Disallow: /redeem-code Disallow: /moderation Disallow: /check-username Disallow: /welcome Disallow: /onboarding Disallow: /wrapped Disallow: /label Disallow: /sign-in Disallow: /sign-up Disallow: /forgot-password # /join/ (club invite links) is deliberately NOT disallowed: link-preview # fetchers that obey this file must be able to read the page. It stays out of # indexes with X-Robots-Tag and a robots meta, which a crawler can only see if # it may fetch the page. # Search result pages carry noindex; keep crawl budget for books and authors. Disallow: /search? # An SEO tool's crawler: it sends no readers, and on 2026-10-19 it was most # of the book-page traffic, each page it fetched costing the database a read # of most of the works table. A crawler follows the group naming it and # ignores the * group above, so this is the whole of its rules. User-agent: SemrushBot Disallow: / Sitemap: https://shelfclub.app/sitemap.xml