Run this command in your terminal:
node -e "console.log(crypto.randomUUID())"Copy the output (it will look like: a1b2c3d4-e5f6-7890-abcd-ef1234567890)
Create a new file in the public/ directory with the UUID as the filename:
Example: If your UUID is a1b2c3d4-e5f6-7890-abcd-ef1234567890
# Create the file:
echo "a1b2c3d4-e5f6-7890-abcd-ef1234567890" > public/a1b2c3d4-e5f6-7890-abcd-ef1234567890.txtImportant:
- Filename is:
[YOUR-UUID].txt - Content is:
[YOUR-UUID](same UUID, just the text) - No extra whitespace or line breaks
- Must be in the
public/folder
Add to your .env.local file:
INDEXNOW_KEY=a1b2c3d4-e5f6-7890-abcd-ef1234567890Replace a1b2c3d4-e5f6-7890-abcd-ef1234567890 with your actual UUID.
Add the same environment variable to your production hosting (Vercel):
- Go to Vercel Dashboard → kanadojo project
- Settings → Environment Variables
- Add new variable:
- Name:
INDEXNOW_KEY - Value:
[your-uuid-here] - Environment: Production (and Preview if you want)
- Name:
- Save
# Add the key file to git
git add public/[your-uuid].txt
# Commit
git commit -m "chore(seo): add IndexNow key file"
# Push to deploy
git push-
Check key file is accessible:
https://kanadojo.com/[your-uuid].txtShould return your UUID as plain text
-
Test IndexNow endpoint:
https://kanadojo.com/api/indexnowShould return
{"service":"IndexNow API","configured":true,...} -
Test a submission:
curl -X POST https://kanadojo.com/api/indexnow \ -H "Content-Type: application/json" \ -d '{"url": "https://kanadojo.com"}'
- Go to https://www.bing.com/webmasters
- Add site if not already added:
kanadojo.com - Verify ownership (you already have MS verification token)
- Navigate to Sitemaps & IndexNow section
- Submit your IndexNow API key (the UUID)
- Verify that IndexNow is enabled
Add IndexNow notifications when you publish/update content:
import { notifyPageUpdateAllLocales } from '@/shared/lib/indexnow';
// Example: When publishing a blog post
await notifyPageUpdateAllLocales('/academy/new-post-slug');
// Example: When updating a page
await notifyPageUpdate('/kana');- UUID generated
- Key file created in
public/[uuid].txt - Environment variable added to
.env.local - Environment variable added to Vercel/production
- Changes committed and pushed
- Key file accessible at
https://kanadojo.com/[uuid].txt - IndexNow API endpoint returns
configured: true - Submitted to Bing Webmaster Tools
- Tested a URL submission
- Added to content publishing workflow (optional but recommended)
Your UUID: _______________________________________
(Write it here for reference)
Key file location: public/[your-uuid].txt
Environment variable: INDEXNOW_KEY=[your-uuid]
Verification URL: https://kanadojo.com/[your-uuid].txt
Key file not accessible?
- Make sure it's in the
public/folder - Check the filename exactly matches your UUID
- Verify it's deployed to production
- No extra
.txt.txtextension
API says not configured?
- Check environment variable is set in production (not just locally)
- Redeploy after adding the environment variable
- Check for typos in the variable name
Submissions failing?
- Verify the UUID in your code matches the file
- Ensure URLs use
https://kanadojo.comdomain - Check Bing Webmaster Tools for error messages
⏰ Estimated Time: 10-15 minutes
🎯 Priority: HIGH - Do this ASAP for instant Bing indexing
📖 Full Documentation: See /docs/INDEXNOW_SETUP.md for more details
DELETE THIS FILE after completing all steps.