jtprogru/indexnow

Submit URLs to the IndexNow protocol (Bing, Yandex, Naver, Seznam, Yep, ...) from a workflow.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 2, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: jtprogru/indexnow@68304252103383611a5ae976218111ad1ba69d46 # v0.7.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
keyIndexNow key (8..128 chars, [A-Za-z0-9-]). Required.yes
urlsNewline-separated list of URLs.no""
filePath (relative to workspace) to a file with one URL per line.no""
sitemapURL or filesystem path to a sitemap.xml (.gz / <sitemapindex> are followed).no""
urls-fromBash snippet whose stdout becomes the URL list (one URL per line; '#'-prefixed lines are comments; blank lines ignored). Runs in $GITHUB_WORKSPACE so `git diff` works against the checked-out repo. Empty output is success — the step exits 0 with submitted-count=0 and submit is not invoked. no""
sitemap-sinceRFC3339 timestamp; drop entries with <lastmod> older than this.no""
sitemap-timeoutPer-request HTTP timeout for sitemap fetches.no""
hostSite host (e.g. example.com). Inferred from first URL if empty.no""
key-locationAbsolute URL to the hosted key file. Derived from host+key if empty.no""
endpointEndpoint alias(es) or full URL(s), comma-separated (api|bing|yandex|naver|seznam|yep).noapi
user-agentHTTP User-Agent header. Defaults to `indexnow/<version>`.no""
fail-onWhen to set non-zero exit — any|4xx|5xx|never.noany
quietSuppress the CLI's stdout in the step log. Outputs/summary still populate.nofalse
verboseEmit slog lifecycle/retry events to stderr.nofalse
dry-runPrint what would be sent and exit without contacting the endpoint.nofalse
max-retriesMaximum retry attempts on 429/5xx/transport.no""
base-backoffInitial retry backoff (Go duration, e.g. 200ms).no""
max-backoffMax retry backoff (Go duration, e.g. 5s).no""
configPath to an indexnow yaml config (relative to $GITHUB_WORKSPACE).no""
versionindexnow release to install. Empty = pinned to the Action's tag; "latest" = newest release.no""
github-tokenToken used to call the GitHub Releases API (avoids unauthenticated rate-limit).no${{ github.token }}
namedescription
exit-codeExit code of `indexnow submit`.
submitted-countSum of urlCount across all batches (0 in dry-run mode).
failed-countNumber of batches that finished non-2xx or with an error (0 in dry-run mode).
reportOne-line human summary; also written to $GITHUB_STEP_SUMMARY.