indexnow-submit

Installation
SKILL.md

IndexNow Submit

Get IndexNow working for one property and submit a set of changed URLs to it. The output is the setup status, what was submitted with each URL's response, and what to check later. The user's request may contain a property, a list of URLs, a path prefix or sitemap URL to draw URLs from, and an action hint ("set up", "rotate", "submit", "history"). IndexNow reaches the engines that take part in it (Bing, Yandex, Seznam); it tells Google nothing, so say so when the user's goal is Google indexing and point them to the indexing-tracker skill for that.

Workflow

  1. Resolve the property. If the user's request or the conversation names a property, use it. Site URLs use GSC formats: sc-domain:example.com or https://www.example.com/. Otherwise call list_sites and pick the obvious match. If several plausible properties exist, ask the user which one before continuing. The IndexNow tools take the GSC siteUrl; when the user also cares about the Bing side, list_bing_sites shows which sites Bing has verified (siteDetails[].isVerified), and notConfigured: true there means Bing Webmaster Tools is not connected in the GSC Wizard app.

  2. Check the setup. Call get_indexnow_settings with siteUrl and read indexnowApiKeySet, indexnowApiKeyMasked (the last four characters only), keyFileVerified and keyFileUrl. Both halves must hold before engines accept anything: a key stored, and the key file reachable on the site. Read keyFileVerified as follows:

    • true: ready, go to step 4.
    • false: the file is missing or holds the wrong key, and keyFileUrl names the exact file to publish; hand that to the user before submitting anything.
    • null: the probe was inconclusive (a timeout or a bot rule), which is not a failure and does not block a submission. keySiteUrl, when present, means another of the owner's properties that covers this one already holds the key, so no new key is needed. With no key set at all, go to step 3.
  3. Create, set or rotate the key (write). Say what will happen and ask for confirmation first. Pass siteUrl and exactly one mode to update_indexnow_settings:

    • generateKey: true creates a key and returns keyFileUrl, keyFileUrls (every host of a domain property) and keyFileContent. The user must publish keyFileContent as a plain-text file at each of those URLs before any submission validates; a key generated this moment is not probed, so keyFileVerified reads false until they do. It refuses to replace an existing key.
    • indexnowApiKey (8 to 128 letters, digits and hyphens) sets a key the site already publishes; the file is checked at once and keyFileVerified: true means submissions can start.
    • clear: true removes the key and disables submissions. To rotate, run clear: true, then generateKey: true, then have the file republished. After the user publishes the file, call get_indexnow_settings again and only proceed on keyFileVerified: true (or null). If the write is refused because the connection is read-only, say this step needs write access and continue with the read-only parts (steps 2, 4, 6 and 7).
Installs
2
First Seen
2 days ago