# As a condition of accessing this website, you agree to abide by the following # content signals: # (a) If a Content-Signal = yes, you may collect content for the corresponding # use. # (b) If a Content-Signal = no, you may not collect content for the # corresponding use. # (c) If the website operator does not include a Content-Signal for a # corresponding use, the website operator neither grants nor restricts # permission via Content-Signal with respect to the corresponding use. # The content signals and their meanings are: # search: building a search index and providing search results (e.g., returning # hyperlinks and short excerpts from your website's contents). Search does not # include providing AI-generated search summaries. # ai-input: inputting content into one or more AI models (e.g., retrieval # augmented generation, grounding, or other real-time taking of content for # generative AI search answers). # ai-train: training or fine-tuning AI models. # use: how AI systems may consume the content (immediate, reference, or full). # ANY RESTRICTIONS EXPRESSED VIA CONTENT SIGNALS ARE EXPRESS RESERVATIONS OF # RIGHTS UNDER ARTICLE 4 OF THE EUROPEAN UNION DIRECTIVE 2019/790 ON COPYRIGHT # AND RELATED RIGHTS IN THE DIGITAL SINGLE MARKET. # BEGIN Cloudflare Managed content User-agent: * Content-Signal: search=yes,ai-train=no,use=reference Allow: / User-agent: Amazonbot Disallow: / User-agent: Applebot-Extended Disallow: / User-agent: Bytespider Disallow: / User-agent: CCBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: CloudflareBrowserRenderingCrawler Disallow: / User-agent: Google-Extended Disallow: / User-agent: GPTBot Disallow: / User-agent: meta-externalagent Disallow: / # END Cloudflare Managed Content User-agent: * # Core public routes Allow: / Allow: /about Allow: /contact Allow: /shuleni/privacy Allow: /shuleni/terms Allow: /shuleni/disclaimer Allow: /shuleni/advertise Allow: /matokeo Allow: /tie-books # Shuleni - primary public content (schools, regions, subjects, etc.) Allow: /shuleni/ # Faceted "shule-zote" filter permutations are an infinite, thin/duplicate crawl # trap: every stacked filter combination (ownership × level × boarding × sex × # comb × subject …) is a filtered subset of the parent location hub, which is # already indexed. They also render on-demand (~4s each), so crawling them wastes # both crawl budget and origin CPU. Block the filtered depth; the unfiltered # "shule-zote" listing and all location hubs remain crawlable. Shallow (≤2) facet # pages that the app still indexes keep their value via canonical/noindex in the # page metadata — this only stops the wasteful crawl, not the useful hubs. Disallow: /shuleni/region/*/shule-zote/* Disallow: /shuleni/council/*/shule-zote/* Disallow: /shuleni/ward/*/shule-zote/* # Crawlers must not walk the sorted-filter query variants either Disallow: /shuleni/*/shule-zote/*?* # Disallow protected/internal routes Disallow: /admin/ Disallow: /dashboard/ Disallow: /api/ Disallow: /fees/ Disallow: /exametrics/ Disallow: /onboarding/ Disallow: /s/ Disallow: /hub/ Disallow: /shuleyetu/ Disallow: /necta-portal/ Disallow: /school-info/ # Sitemap Sitemap: https://shuleyetu.co.tz/sitemap.xml