Submit URLs automatically with IndexNow

🚀

Turn this on and Creght automatically tells search engines which URLs changed every time you publish or edit content. No more submitting by hand.

It covers Bing, Yandex, Seznam and Naver, which share the IndexNow protocol. Google does not support it and still relies on your sitemap and Search Console.

What it does for you

Without it, search engines find new pages on their own schedule, which usually takes days to weeks. With it, they hear about the change within minutes of publishing.

The clearest win is new pages: a new article, a new product, a new landing page all get indexed much sooner.

Turning it on

  1. Make sure the site has a custom domain and has been published. Without a domain the option does not appear, because search engines do not index preview addresses.
  2. Open SEO → Search engine indexing in the editor.
  3. Switch on Automatic submission (IndexNow).

That is the whole setup. No account to register, no key to fetch from a search engine dashboard.

What happens right after you switch it on

Creght runs once immediately and submits your most recently updated URLs, up to 1000 of them. Older pages are left to normal sitemap indexing: IndexNow exists to say "this just changed", not to push your whole archive again.

Reading the panel

FieldMeaning
Last syncWhen the last submission happened and how many URLs it carried. It answers "is this still working"
TotalHow many URLs have been submitted since you turned it on
Verification fileA small file at your site root that proves to search engines you own the site. If opening it shows a string of characters, it is working

When a submission fails, the error appears here in red and usually says exactly what to fix.

When it submits

Three things trigger it: publishing the site, editing CMS content, and a daily sweep that catches anything the first two missed.

Rapid edits do not cause repeat submissions: changes within a minute of each other are merged into one run.

Common questions

Will it submit drafts or unpublished pages?

No. The list comes from your site's sitemap.xml, which only holds URLs search engines can already see. Preview and system addresses are never submitted.

Does the string in the verification file need to be kept secret?

No. The protocol requires it to be public. All it proves is that you control the site, and anyone who has it can still only submit URLs belonging to your own site. There is no need to rotate it.

I edited the home page five times. Does that mean five submissions?

Usually not. Creght compares your current sitemap against what it already submitted and sends only the URLs that actually changed. Editing the same page repeatedly in one day normally produces a single submission.

Why does it say "0 URLs" after I edited a page?

Most often because the change has not been published yet. Edits in the editor reach the live site, and the submission queue, only when you publish.

Two other cases also show 0:

  • Repeated edits to the same page on the same day. Changes are judged per day, so after the first publish of the day that page is not submitted again.
  • A publish with nothing actually changed. Republishing as-is creates no new version, so nothing counts as changed.

How does the platform know when a page changed?

Two different sources:

  • Content pages (articles, products and other CMS-driven detail pages) use the content record's own update time, precise to the individual item.
  • Code pages (the home page, feature pages) use the time this version of the site was published.

Code pages are not dated per file because pages reference each other: the home page uses a component, the component changes, the home page looks different, but the home page's own file never moved. Dating by file misses that and still looks correct. The publish time is coarser, since any change marks every code page as changed, but it never under-reports.

How do I get content updates detected?

Ask the AI:

Add generateStaticParams to the dynamic route pages, returning the content list with lastModified taken from each record's updated_at.

This also fixes something more serious: without that function, the detail pages under a dynamic route never appear in the sitemap at all, so search engines cannot find them. If the SEO page shows an amber warning saying those routes have no pages in the sitemap, fix that first.

If I write my own sitemap.ts, does that solve it?

Yes, and you do not have to supply the times.

The rule is simple: where you set lastModified yours is used, and where you leave it out the platform fills in the publish time of the current version. So set it only where you genuinely know the date, such as a CMS record's updated_at, and leave the rest alone.

Do not write new Date()

A Creght sitemap is generated on every request, so new Date() differs every time and the platform concludes the whole site keeps changing, resubmitting it over and over.

This differs from Next.js, where the sitemap is generated once at build time and new Date() conveniently equals the deploy time, which is why the official example uses it. Copying that here breaks quietly, with no error anywhere.

What happens if I turn it off?

Nothing is submitted any more, and everything already submitted is unaffected. You can switch it back on at any time; the record is kept.

What about Google?

Google does not support IndexNow. It crawls your sitemap on its own, and you can still use the "Submit" button on the same page to file a manual request in Google Search Console.

Render diagnostics