Skip to content
Docs menu

Find unindexed sitemap URLs and push them

Goal: of the pages in your sitemap, find the ones Google doesn't show yet, push only those, and get the result in a few days. Cost: 1 check credit per URL checked, plus 1 index credit per URL pushed, used only if it gets indexed (it comes back after 7 days if not).

The story · 3 steps
Get an API keyFree plan: 10 free links to try (once you verify your email), then 100 free checks a month, no card.

Prompt for your agent

1. Collect the URLs

Your agent (or script) reads the sitemap and extracts each <loc>. For a sitemap index, read the child sitemaps too. Keep only canonical, public https URLs; up to 10,000 per job.

2. Check them

json
{
  "name": "check_index",
  "arguments": {
    "urls": [
      "https://example.com/",
      "https://example.com/blog/new-post",
      "https://example.com/pricing"
    ],
    "name": "Sitemap check, October"
  }
}
bash
curl -X POST https://freshlycited.com/api/v1/check -H "Authorization: Bearer ipk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls":["https://example.com/","https://example.com/blog/new-post"],"name":"Sitemap check"}'

Larger checks run in a queue: poll until the job's outcome.stage is check_done.

json
{
  "name": "get_job_status",
  "arguments": {
    "job_id": "job_…",
    "url_limit": 0
  }
}

3. Push only the invisible ones

json
{
  "name": "send_unindexed_to_indexer",
  "arguments": {
    "job_id": "job_…"
  }
}
bash
curl -X POST https://freshlycited.com/api/v1/jobs/job_…/send-unindexed -H "Authorization: Bearer ipk_YOUR_KEY" \
  -H "Content-Type: application/json" -d '{}'

This creates a new push with only the URLs Google didn't show. The check becomes the "before" for the visibility lift. If any of those URLs are on a site you verified for IndexNow, they're also sent to Bing and the other IndexNow engines, free.

Shortcut: skip step 2 and push the whole list with smart: true. FreshlyCited checks first and only pushes, and charges the push for, the URLs Google can't see:

json
{
  "name": "submit_index_job",
  "arguments": {
    "urls": [
      "https://example.com/",
      "https://example.com/blog/new-post"
    ],
    "smart": true,
    "name": "Sitemap: October"
  }
}

4. Read the result

After the day-1, day-3 or day-7 re-check (or any time with check_index and the push's job_id), get_job_status returns an outcome such as "11 of 12 links seen by Google (+2)". Still invisible? Push them again with send_unindexed_to_indexer, or give Google a few more days: FreshlyCited gets pages crawled, but Google decides what it shows.