Troubleshooting
Solutions for common SitemapHost issues including sitemaps not loading, missing URLs, rate limits, and error codes
This page covers the most common issues you may encounter with SitemapHost and how to resolve them. For domain-specific problems, see the dedicated DNS Troubleshooting and SSL Troubleshooting pages.
Sitemap Not Loading
Symptom: Visiting https://sitemap.yoursite.com/sitemap.xml returns a 404 or connection error.
Check domain status
Verify your domain is active in the dashboard or via the API:
curl https://dash.sitemaphost.app/api/domains \
-H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Look for the status and sslStatus fields:
| Status | Action Needed |
|---|---|
pending_verification | DNS not verified yet. Configure your CNAME and click Verify |
verified / sslStatus: provisioning | SSL is being provisioned. Wait 1-5 minutes |
active / sslStatus: active | Domain is ready. Check if a sitemap has been uploaded |
failed | Check SSL troubleshooting |
Check sitemap upload
If your domain is active but returns 404, you may not have uploaded a sitemap yet. Upload URLs:
curl -X POST https://dash.sitemaphost.app/api/sitemap/generate \
-H "Content-Type: application/json" \
-H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d '{
"domain": "sitemap.yoursite.com",
"urls": [{"loc": "https://yoursite.com/"}]
}'Check the correct URL
If you use named sitemaps, the URL will include the name:
- Default sitemap:
https://sitemap.yoursite.com/sitemap.xml - Named sitemap:
https://sitemap.yoursite.com/sitemap-pages.xml - Sitemap index:
https://sitemap.yoursite.com/sitemap-index.xml
URLs Not Appearing in Sitemap
Symptom: You uploaded URLs but some are missing from the generated sitemap.
Check validation errors
The upload endpoint validates every URL. Check the API response for errors:
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid URL: 'yoursite.com/page' is not a valid absolute URL."
}
}Common validation issues:
| Issue | Example | Fix |
|---|---|---|
| Missing protocol | yoursite.com/page | Use https://yoursite.com/page |
| Relative URL | /page | Use full absolute URL |
| URL too long | 2,048+ characters | Shorten the URL |
| Invalid lastmod | Jan 15, 2024 | Use ISO 8601: 2024-01-15 |
| Invalid priority | 2.0 | Use a value between 0.0 and 1.0 |
Check URL budget
Your plan has a URL limit. If you exceed it, the upload will be rejected:
| Plan | URL Limit |
|---|---|
| Free | 2,000 |
| Starter | 50,000 |
| Pro | 500,000 |
| Business | 5,000,000 |
| Enterprise | Unlimited |
Check your current usage in the dashboard or contact support to upgrade.
Check named sitemap behavior
When using named sitemaps, each upload replaces the entire named sitemap. If you upload 100 URLs to the "blog" sitemap today and 50 URLs tomorrow, the sitemap will contain only 50 URLs.
To add URLs incrementally, fetch the existing URLs and include them in your next upload.
Rate Limit Errors
Symptom: API returns 429 Too Many Requests.
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please retry after 30 seconds."
}
}Check your plan's limits
| Plan | Requests per Minute |
|---|---|
| Free | 5 |
| Starter | 20 |
| Pro | 100 |
| Business | 500 |
| Enterprise | 1,000 |
Reduce request frequency
- Batch URLs: Send all URLs in a single request rather than one URL per request. The upload endpoint accepts up to 50,000 URLs in one call.
- Use the Retry-After header: The
429response includes aRetry-Afterheader indicating how many seconds to wait. - Implement exponential backoff: Start with the
Retry-Aftervalue and double the wait time on consecutive failures.
async function pushWithRetry(payload, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(
"https://dash.sitemaphost.app/api/sitemap/generate",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.SITEMAPHOST_API_KEY,
},
body: JSON.stringify(payload),
}
);
if (response.status === 429) {
const retryAfter = parseInt(response.headers.get("Retry-After") || "30");
console.log(`Rate limited. Waiting ${retryAfter}s...`);
await new Promise((r) => setTimeout(r, retryAfter * 1000));
continue;
}
return response.json();
}
throw new Error("Max retries exceeded");
}404 Not Found Errors
Symptom: API endpoints return 404.
Check the base URL
All API requests go to https://dash.sitemaphost.app/api/.... Common mistakes:
| Incorrect | Correct |
|---|---|
https://sitemaphost.app/api/... | https://dash.sitemaphost.app/api/... |
https://www.sitemaphost.app/api/... | https://dash.sitemaphost.app/api/... |
http://dash.sitemaphost.app/api/... | https://dash.sitemaphost.app/api/... |
Check the endpoint path
Verify you are using the correct endpoint:
| Action | Endpoint |
|---|---|
| Upload sitemap | POST /api/sitemap/generate |
| Add domain | POST /api/domains |
| List domains | GET /api/domains |
| Verify domain | POST /api/domains/:id/verify |
| Delete domain | DELETE /api/domains/:id |
Check the domain ID format
Domain IDs use the format domain_xxxxx. If you pass the hostname instead of the ID, you will get a 404:
# Wrong: using hostname
curl -X POST https://dash.sitemaphost.app/api/domains/sitemap.yoursite.com/verify
# Correct: using domain ID
curl -X POST https://dash.sitemaphost.app/api/domains/domain_abc123/verifyAuthentication Errors
Symptom: API returns 401 Unauthorized.
See the Authentication page for details on creating and using API keys.
Quick checklist:
- Is the API key included in the request? (Check
X-API-KeyorAuthorizationheader) - Is the key correct? (No extra whitespace or newlines)
- Has the key been revoked? (Check the dashboard)
- Are you using the right account? (The key must belong to the account that owns the domain)
Sitemap Not Being Indexed
Symptom: Your sitemap is live but Google is not indexing the URLs.
This is usually not a SitemapHost issue, but here are some checks:
- Submit to GSC -- Add your sitemap URL to Google Search Console
- Check robots.txt -- Ensure your
robots.txtincludes the sitemap URL and does not block search engines - Verify sitemap content -- Visit the sitemap URL in your browser and confirm URLs are present
- Connect Google Search Console -- Enable GSC integration for automatic sitemap submission
- Enable IndexNow -- Check that IndexNow is enabled for faster Bing/Yandex indexing
- Check GSC for errors -- Google Search Console may report sitemap parsing errors
# Correct robots.txt
User-agent: *
Allow: /
Sitemap: https://sitemap.yoursite.com/sitemap.xmlGetting Help
If you cannot resolve your issue:
- Check the specific troubleshooting pages: DNS and SSL
- Review the API Reference for correct endpoint usage
- Contact support at support@sitemaphost.app with:
- Your domain name
- The API response you received
- Steps to reproduce the issue