SETUP GUIDE
IndexNow Key File Hosting Guide
The key verification file must be accessible at https://yourdomain.com/{key}.txt. Here is exactly how to host it on every major platform.
Key File Requirements
| Requirement | Value |
|---|---|
| File name | {your-key}.txt (key string + .txt) |
| URL path | Must be at domain root: https://domain.com/{key}.txt |
| File contents | Exactly the key string no HTML, no newline, no whitespace |
| HTTP status | Must return 200 OK |
| Content-Type | text/plain (recommended) |
| Authentication | Must be publicly accessible no login required |
Next.js / Vercel
- 1Place the file in your /public directory
- 2Name it exactly {your-key}.txt
- 3Deploy Vercel serves /public at the root path automatically
public/d47a82bc1e9f4a3b8c2d5e6f7a8b9c0d.txt
WordPress
- 1FTP or SSH to your server
- 2Navigate to the WordPress root (same folder as wp-config.php)
- 3Upload the key file: /var/www/html/d47a82bc.txt
- 4Do NOT place inside /wp-content/ that is not the web root
/var/www/html/{key}.txt
Shopify
- 1Go to Online Store → Themes → Actions → Edit Code
- 2Under Assets, click "Add a new asset"
- 3Upload the key file as a static asset (it will be at /assets/{key}.txt)
- 4Important: Shopify assets are served at /assets/ not /, use keyFileUrl: "https://domain.myshopify.com/assets/{key}.txt" in your API requests
assets/{key}.txt → https://yourdomain.com/assets/{key}.txt
Netlify
- 1Add the key file to your repository under /public or /static
- 2Or use Netlify's _redirects or _headers to verify
- 3Recommended: place in /public/{key}.txt served at root automatically
public/{key}.txt
Apache (.htaccess)
- 1Upload the key file to your web root (/var/www/html/ or /public_html/)
- 2If .txt files are blocked by your security config, add an exception:
<Files "{key}.txt">
Require all granted
</Files>
Nginx
- 1Copy the file to your web root: /var/www/yourdomain.com/html/
- 2If you have location blocks that block .txt files, add an exception:
location = /{key}.txt {
try_files $uri =404;
}
Verify Your Key File is Accessible
After hosting, test accessibility before submitting any URLs:
curl -I https://yourdomain.com/{key}.txt
# Must return: HTTP/2 200
# Must return: HTTP/2 200