{
  "id": 14173857,
  "title": "Two paths announce our pages to Bing, and one Redis hash keeps them from announcing twice",
  "url": "https://urgent.news/2026/10/13/two-paths-announce-our-pages-to-bing-and-one-redis-hash-keeps-them",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-13T10:08:21.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/daniel_pertu/two-paths-announce-our-pages-to-bing-and-one-redis-hash-keeps-them-from-announcing-twice-3bel"
  },
  "original_language": "en",
  "account": "Nakodo's website has 76 public pages, ranging from the homepage and pricing information to content families like guides and niche-specific pages. Unlike Google, Bing, Yandex, Seznam, and Naver rely on a push protocol to discover new content. This protocol involves a single POST request with a host, key, and list of URLs to api.indexnow.org/indexnow. The key is made public by exporting it in a file named key.txt, which is checked in and readable by the engines. A test verifies the key's validity and accessibility.\n\nThe framework uses the sitemap to determine which pages have changed, been submitted, or removed. The sitemap entries include a date representing the last content change, rather than the build date. The pendingUrls function identifies changed and removed pages based on the submitted hash and live sitemap. The livePages function fetches the live sitemap using the absolute URL of the sitemap.xml file. Announcing a newly deployed page sends search engines to a page that redirects to the login form, while reading the live sitemap prevents this issue.",
  "summary": "Nakodo has 76 public pages. You can count them yourself in the sitemap : the home page, the pricing and method pages, and then the content families, like the guides hub and the per-niche pages under /youtubers . Google finds changes on those pages by reading the sitemap when it feels like it. Bing, Yandex, Seznam and Naver will take a push instead: one POST to api.indexnow.org/indexnow with a…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}