Now livePublishes straight intoWordPress,Shopify,Wix, Webflow and Ghost. Any other site, hosted on your own domain →

Auto-Submit Every New Post: Setting Up the Google Indexing API and IndexNow on Publish

24 September 2026. Written by Helio.

You can make your site tell Google and Bing about every new article the moment it goes live, with no one opening Search Console. The setup takes about an hour for Google and ten minutes for Bing. Before you start, you need to know one thing about using the Google Indexing API for blog posts: Google says it is not meant for them.

This guide covers the full walkthrough, the caveat, and a no-code route for anyone who would rather not write a script. If you have not yet sorted the basics, such as sitemaps and manual URL inspection, start with our guide on how to get new blog posts indexed faster. This is the advanced step that comes after it.

The honest caveat about the Google Indexing API and blog posts

Google's documentation states that the Indexing API is only for pages containing JobPosting or BroadcastEvent structured data, meaning job adverts and livestream videos. A normal blog post is neither.

In practice, many site owners submit ordinary articles through it anyway, and Google often crawls those URLs quickly afterwards. What the API guarantees is a crawl request being received, not indexing. Google has also said it may ignore submissions that fall outside the supported types, and it has tightened spam controls on the API over time. So treat it as a nudge that sometimes helps, not a switch.

Rule of thumb: the Indexing API can speed up discovery, but it cannot make Google index a page it does not think is worth indexing. Content quality and internal links still decide the outcome.

If you are uncomfortable using an API outside its stated purpose, skip to the IndexNow section. That route is fully supported for all content.

Step 1: create a Google Cloud service account

A service account is a robot user that your script logs in as. Setting it up looks fiddly but is mostly clicking.

  1. Open the Google Cloud Console and create a new project, named something like "blog-indexing".
  2. Go to APIs and Services, then Library, search for "Web Search Indexing API" and enable it.
  3. Go to IAM and Admin, then Service Accounts, and create a service account. No roles are needed at this stage.
  4. Open the new account, choose Keys, add a key and select JSON. A file downloads. Keep it private; anyone with it can submit URLs as you.
  5. Copy the service account's email address, which ends in iam.gserviceaccount.com.

Step 2: grant it owner access in Search Console

Google only accepts submissions from an account that owns the property. Open Search Console, choose your property, go to Settings, then Users and permissions, and add the service account email as an Owner. Full user is not enough, and this is the step people most often get wrong.

If you have not verified your site yet, our Search Console setup guide walks through it.

Step 3: call the API when a post is published

Each call sends one URL with a type of URL_UPDATED. Here is a minimal Node.js version using the official googleapis package:

const { google } = require('googleapis');
const key = require('./service-account.json');
const auth = new google.auth.JWT(key.client_email, null, key.private_key, ['https://www.googleapis.com/auth/indexing']);
const indexing = google.indexing({ version: 'v3', auth });
await indexing.urlNotifications.publish({ requestBody: { url: 'https://example.com/new-post', type: 'URL_UPDATED' } });

Run it from whatever fires on publish: a WordPress hook on post status changing to published, a Ghost or Webflow webhook, or a Shopify flow. A successful response returns the URL and a timestamp. A 403 error almost always means the owner permission from step 2 is missing.

Quota numbers to plan around

  • 200 publish requests per day per project by default.
  • Around 600 requests per minute for all endpoints combined.
  • Higher quotas need a request form, and Google reviews them against the supported content types.

For a small business publishing one post a day, 200 is far more than you will use. Resist resubmitting old URLs in bulk; that is exactly the behaviour spam controls look for.

The no-code route: Zapier or n8n webhooks

If code is not your thing, an automation tool can do the same job.

  1. Create a workflow triggered by a new published post. Most platforms offer this directly, or via RSS as a fallback.
  2. In n8n, add an HTTP Request node pointed at https://indexing.googleapis.com/v3/urlNotifications:publish, using a Google service account credential with the indexing scope.
  3. Set the method to POST and the body to the post URL with type URL_UPDATED.
  4. Add a second HTTP node for IndexNow, covered below.

n8n handles service account authentication more cleanly than Zapier, which often needs a code step for it. We compare the tools in more depth in Zapier vs n8n vs Nuelink.

IndexNow: the supported route for Bing and others

IndexNow is an open protocol backed by Bing, Yandex, Seznam and others. Submitting to one participating engine shares the URL with the rest. Google does not take part, but Bing's index feeds several AI assistants, so it matters more than its search share suggests.

Generate and host your key

  1. Create a key: any string of 8 to 128 letters, numbers or hyphens. A random 32-character string is typical.
  2. Save it in a text file named after the key, for example abc123.txt, containing only the key.
  3. Upload it to your site root, so it loads at https://example.com/abc123.txt.

Ping on publish

The simplest call is a GET request:

https://api.indexnow.org/indexnow?url=https://example.com/new-post&key=abc123

A 200 or 202 response means it was accepted. You can also POST a list of up to 10,000 URLs in one go. WordPress users can skip all of this: Bing's own IndexNow plugin and several SEO plugins handle it automatically.

Realistic time to index, with and without submission

These are typical ranges for a small site in reasonable health, not promises. Established sites with frequent publishing usually sit at the faster end.

MethodTypical time to first crawlNotes
Sitemap only, no submissionDays to a few weeksDepends heavily on how often Google visits your site
Manual URL inspection requestHours to a few daysLimited daily requests, not automatable
Google Indexing APIOften minutes to hoursCrawl is not indexing; unsupported for blog posts
IndexNow (Bing)Often minutes to hoursOfficially supported for all content

If pages are crawled but still not indexed after a couple of weeks, submission is not the problem. Work through why a blog post is not showing up on Google instead.

Do you need this at all?

Probably not if you publish once a month and your site is already crawled regularly. A sitemap does the job. Automated submission earns its keep when you publish often, when content is time-sensitive, or when you want new posts visible in Bing-backed AI answers quickly.

Where Helio SEO fits in

Helio SEO submits every article it publishes to search engines straight away, so this wiring comes built in. If you have followed the steps above and they are working, you do not need us for this part. You can read more about how Helio publishes if the rest of the job appeals.

Where Helio SEO fits in. This article was planned, written and published by Helio SEO, doing for our website exactly what it does for customers: a high-quality article every day, targeting a real search your buyers make, in your voice. 7 days free, no card, from £29 a month, cancel anytime.

All articles

Your first article can be live today.

Sign up, point Helio at your website, and approve your first draft this afternoon. 7 days free, no card, from £29 a month, cancel any time.

Keeping your LinkedIn consistent too? Helio Posts turns your team's notes into on-brand LinkedIn posts and holds the cadence. Same Helio, different job.

Helio, the smiling eclipse