Accelerate URL Indexing: Google API & IndexNow Protocol Integration Guide
June 14, 2026
Step 4 provides a google-submit.sh script that uses the token to post URL_UPDATED notifications to Google's Indexing API for each URL in urls.txt.
Step 1 describes provisioning the Droplet and installing essential tools (curl, openssl, jq) and creating a secure working directory.
Step 2 covers creating and configuring a Google service account, generating a JSON key, converting it to PEM, and granting the service account Owner access in Search Console.
Step 7 explains scheduling both jobs with cron and jitter wrappers (run-indexnow.sh and run-google.sh) to stagger submissions, including crontab entries and logging practices.
Step 6 demonstrates bulk submission to Bing/Yandex via the IndexNow protocol, including generating a hosted key file and constructing the indexnow Submit payload with host, key, keyLocation, and urlList.
The article presents a complete, self-contained workflow to accelerate URL indexing by combining Google Indexing API with the IndexNow protocol, using a pure Bash toolchain on a DigitalOcean Droplet.
Troubleshooting guidance covers common error codes (429, 403, 422, 400), clock drift issues, and potential causes for null tokens or misconfigurations.
Prerequisites include an Ubuntu Droplet, a domain, Google Search Console ownership, a Google Cloud project, a small key-file, and a URLs list, with the URLs stored in a plain text file.
Conclusion emphasizes the trade-offs between IndexNow and Google Indexing API, and suggests potential enhancements like diffing sitemaps, handling URL_DELETED notifications, and monitoring/logging improvements.
Step 5 introduces a quota-tracking mechanism with a progress.json file to respect Google's 200 URL submissions per day per project, updating progress after each successful submission.
Step 3 explains signing a Google OAuth2 JWT in Bash to obtain an access token, detailing the JWT header/payload/signature construction and token exchange.
Summary based on 1 source
