How to Submit a Sitemap and Check Indexed Pages
Submit a sitemap in minutes, then use the per sitemap filter in the Page indexing report to see exactly which of your submitted URLs got indexed.

You can submit a sitemap in about ninety seconds. Working out which of those URLs actually made it into the index takes longer, and it's the half most guides skip. This post covers the submission itself, then the report filter that turns a vague site-wide indexing number into a precise answer for the exact URLs you submitted.
What a sitemap actually does
A sitemap is a list of URLs you would like a search engine to know about, plus optional metadata about each one. That is the whole job. It's a discovery aid, and submitting it creates no obligation for anyone to crawl, store or rank a single line in it.
| A sitemap does | A sitemap does not |
|---|---|
| Tell an engine that a URL exists | Force a crawl of that URL |
| Help pages that few internal links point to | Force indexing of anything |
| Signal which URLs you consider canonical | Override a `noindex` tag |
| Give a `lastmod` hint for recrawl priority | Override a robots.txt block |
| Give you a filterable cohort in Search Console | Improve the ranking of a page |
The value swings a lot by site. A new site with almost no external links, a large catalog where deep pages sit five clicks from the home page, or a section that nothing links to yet: those are cases where a sitemap genuinely changes what gets found. A twenty page site with a clean navigation and a footer that links everything is already fully discoverable, and the sitemap adds close to nothing for discovery.
It still earns its place on that small site for a different reason. Once the file exists and is submitted, Search Console will report indexing status scoped to exactly the URLs in it, which is the diagnostic covered further down and the real payoff of this whole exercise.
What belongs in the file
Every URL in a sitemap should be one you would be happy to see in search results tomorrow. That single rule resolves most of the arguments.
Run this checklist against your file before you submit it. A URL belongs only if all six are true.
- It returns a
200status, not a redirect and not a 404. - It is the canonical version, and its
rel=canonicalpoints at itself. - It is not blocked in robots.txt.
- It carries no
noindexdirective. - It is on the same site as the sitemap file (or you have verified the other host).
- It's a page you would want a searcher to land on.
Mixed signals are the common failure. A sitemap saying "here is a URL worth knowing about" while the page itself says noindex is a contradiction, and the page-level directive wins every time. You gain nothing and you spend credibility: an engine that repeatedly finds excluded and redirected URLs in your file has less reason to treat the rest of it as a considered list. If you are unsure which tool keeps a page out of results, robots.txt and noindex do different jobs and they are not interchangeable.
Formats and limits are worth knowing before you generate anything.
| Format | Extension | Good for | Notes |
|---|---|---|---|
| XML sitemap | `.xml` | Almost every site | The only format that supports image, video and news extensions |
| Sitemap index | `.xml` | Sites over the per-file limit, or anyone splitting by section | A sitemap that lists other sitemaps |
| Plain text | `.txt` | Quick URL dumps | One URL per line, no metadata at all |
| RSS or Atom feed | `.xml` | Recently changed content only | Most feeds carry only the latest entries, so it's a supplement, not a replacement |
One sitemap file holds a maximum of 50,000 URLs and 50MB uncompressed. Gzip compression is allowed and the 50MB ceiling applies to the uncompressed size. A sitemap index file can reference up to 50,000 sitemaps, which puts the practical ceiling far beyond what most sites will ever need.
Stuck on page two?
Real human clicks that lift your CTR and move you up the rankings.
How to submit a sitemap in Google Search Console
Eight steps, and the last two are the ones people get wrong.
- Publish the file at a stable URL. Most platforms generate one automatically at the root, for example
https://www.sparkcliks.com/sitemap.xml. Keep the path fixed. Moving it later means the history in the Sitemaps report starts over. - Open it in a private browser window. You are checking that it returns
200, that it's not behind authentication, and that it isn't returning an HTML error page with a 200 status. A sitemap that only loads while you're logged in is invisible to a crawler. - Add the pointer to robots.txt. One line, anywhere in the file:
Sitemap: https://www.sparkcliks.com/sitemap.xml. Every major crawler reads this, including ones that have no submission interface at all. Thirty seconds of work, and it keeps paying out on engines you will never log into. - Pick the right property in Search Console. A Domain property covers every subdomain and both protocols. A URL-prefix property covers only the exact prefix, so a sitemap submitted under
https://www.sparkcliks.com/will not report on URLs at a baresparkcliks.com. If your data looks empty, this mismatch is the first thing to check. - Go to Indexing, then Sitemaps in the left navigation.
- Enter the path in the "Add a new sitemap" field. The field is relative to the property root, so you type
sitemap.xml, not the full URL. Click Submit. - Wait for the status to change. It will read
Couldn't fetchat first in many cases, which usually means "not read yet" rather than "broken". Give it a day before treating it as a fault.Successmeans the file was fetched and parsed, and nothing more than that. - Do not resubmit it on a schedule. Once a sitemap is registered, engines refetch it on their own. Resubmitting the same URL daily changes nothing and hides real status changes in a wall of activity.
Submit the sitemap index file if you have one, not each child file individually. Search Console will expand it and report on the children, and you keep a single row that summarizes the whole site.
Submitting to Bing and the rest
Bing Webmaster Tools has the same feature under Sitemaps, and it also offers a direct import from Search Console that carries your verified properties and sitemaps across in one step. If you have never set it up, the import is the fastest route.
Beyond that, IndexNow is a separate mechanism worth knowing about. Instead of publishing a list and waiting for a fetch, you send a URL the moment it changes. Bing, Yandex, Naver and Seznam consume IndexNow submissions. Google has not adopted it for indexing, so it complements a sitemap rather than replacing one.
| Method | Who reads it | What it's for |
|---|---|---|
| `Sitemap:` line in robots.txt | Every major crawler | Passive discovery, set once |
| Search Console submission | Google only | Discovery plus the per sitemap reporting below |
| Bing Webmaster Tools submission | Microsoft Bing | Same, on Bing's index |
| IndexNow | Bing, Yandex, Naver, Seznam | Immediate notice that one URL changed |
The ping URL is gone
Older tutorials tell you to fetch google.com/ping?sitemap= after every deploy. Google deprecated that endpoint in 2023 and has since retired it, on the stated grounds that the pings were not producing useful signal. Some plugins and build scripts still call it. If yours does, it's a no-op, and it isn't hurting anything either.
Bing has likewise moved away from anonymous sitemap pings and points publishers to IndexNow. The current answer for both engines is the same: keep the Sitemap: line in robots.txt, submit once in each webmaster tool, and let the recrawl schedule do its job.
Reading the Sitemaps report without misreading it
Three different numbers get conflated here, and the confusion sends people chasing problems that don't exist.
| Number | Where you see it | What it counts | What it does not mean |
|---|---|---|---|
| URLs in your file | Your own generator | Lines you published | That any engine has seen them |
| Discovered pages | Sitemaps report | URLs parsed out of the file | That they were crawled or indexed |
| Indexed | Page indexing report | URLs stored in the index | Nothing beyond that, but this is the one that matters |
That middle row is the trap. The Sitemaps report's "Discovered pages" column is a parse count. It tells you the file was read and how many URLs came out of it. A row showing Success and 4,200 discovered pages is fully compatible with 300 of those pages being indexed and 3,900 not. Nothing on the Sitemaps screen answers the indexing question at all.
Status values you will see in that report:
| Status | Meaning | Action |
|---|---|---|
| `Success` | Fetched and parsed | None |
| `Has errors` | Parsed, with some URLs rejected | Open the row and read the specific errors |
| `Couldn't fetch` | Not retrieved | Check the URL loads publicly, then wait a day before investigating further |
The indexing answer lives one report over.
Worked example: check which pages got indexed
This is the walkthrough that most sitemap guides leave out, and it takes about five minutes.
Step one. In Search Console, open Indexing, then Pages. This is the Page indexing report, called Index Coverage in older documentation.
Step two. At the top of the report there is a dropdown that defaults to All known pages. Open it. You can switch to All submitted pages, or select one specific sitemap file by name. Choose your sitemap.
That single click is the whole trick. Every number below now describes only the URLs in that file, rather than every URL the engine has ever encountered on your host, which includes parameter junk, old URLs, and pages you never intended to submit. Site-wide indexing percentages are close to meaningless for that reason. Sitemap-scoped ones are actionable.
Step three. Read the two totals at the top: indexed, and not indexed. Then read the reason table underneath, which groups every unindexed URL by why it was excluded.
Step four. Export. The button is at the top right, and Google Sheets or CSV both work. You get the URL list per reason. Sort by reason, then by path prefix. Patterns show up immediately at that point, because indexing problems are almost always template problems rather than page problems.
Step five. Spot check individual URLs with the URL Inspection tool. Paste a URL into the search bar at the top of Search Console and read four fields:
| Field | What to look for |
|---|---|
| Presence on Google | "URL is on Google" or "URL is not on Google" |
| Sitemaps | Names the sitemap file that referenced this URL, confirming the association was made |
| Last crawl | Empty means never fetched, which is a different problem from fetched and declined |
| Google-selected canonical | If it differs from your declared canonical, this URL will never be indexed as itself |
That last row catches a failure mode people miss for months. A URL can be perfectly crawlable, perfectly submitted, and still never appear as itself because the engine folded it into a near-identical page. The sitemap is not the problem in that case and no amount of resubmitting will change it.
Here is what a healthy read looks like, using example figures for illustration rather than data from any particular site:
| Reading | Example value | Verdict |
|---|---|---|
| Submitted in sitemap | 1,412 | Baseline |
| Indexed | 1,338 | 95% of submitted |
| Excluded by `noindex` | 41 | Should not be in the file, fix the generator |
| Crawled, currently not indexed | 23 | Genuine selection decisions, worth reviewing |
| Duplicate, engine chose different canonical | 10 | Consolidate or differentiate |
Split your sitemap into a measurement instrument
Because the Page indexing report can be filtered to a single sitemap file, the way you split your sitemaps decides which questions you're able to answer later. This reframes sitemap segmentation from housekeeping into measurement design, and it's the part almost no guide covers.
One monolithic sitemap.xml gives you exactly one number for the whole site. Split the same URLs by template into an index file with children, and each child becomes a cohort with its own indexing rate.
| Sitemap file | Submitted | Indexed | Rate |
|---|---|---|---|
| `sitemap-blog.xml` | 214 | 205 | 96% |
| `sitemap-products.xml` | 1,180 | 1,131 | 96% |
| `sitemap-locations.xml` | 940 | 212 | 23% |
| `sitemap-tags.xml` | 3,400 | 118 | 3% |
Example figures again, but the shape is one you will recognize. The blended site-wide rate across those four files is roughly 29%, a number that would send you on a site-wide technical hunt for nothing. The split version diagnoses itself in one glance: two templates are healthy, the location pages have a serious quality problem, and the tag archives should probably not be in a sitemap at all.
Rules for splitting that keep the data usable:
- Split by template or section, never alphabetically or by arbitrary chunk. A cohort is only meaningful if its members share the thing you might change.
- Keep the file names and boundaries stable. If a URL moves between sitemaps every build, week to week comparison is worthless.
- Give any template you suspect its own file, even a small one. That's how you get a rate for it.
Once the cohorts exist, you can run an actual before and after test on a template fix rather than guessing.
- Baseline: record indexed and submitted per sitemap once a week for four weeks before touching anything. You need to see the normal week to week wobble before you can recognize a real move.
- Change window: fix one template only. For the location pages above, that might mean adding genuinely unique content per location and cutting the near-duplicate boilerplate.
- Control: leave a comparable template completely untouched for the whole period. Products or blog would serve here.
- Metric: indexing rate for the changed sitemap, read against the control's rate over the same weeks.
- What counts as signal: the changed cohort moves by more than its own baseline wobble, the control does not move with it, and the move holds across two consecutive weekly readings. A handful of URLs flipping in either direction is normal churn, not a result.
- Timeline: allow weeks, not days. A thousand URL template does not get recrawled overnight, and the recrawl has to happen before the reindex decision can change.
Without split sitemaps none of that is measurable, because a site-wide number moves for a dozen reasons at once. This is the argument for splitting even on sites that are nowhere near the 50,000 URL limit.
The lastmod problem
Plenty of sitemap generators stamp every URL with the build timestamp. Deploy a CSS change on Tuesday, and the file now claims all 4,000 pages were modified on Tuesday. They were not.
Google has said it uses lastmod only where the value is consistently accurate, and a file that reports every page as freshly changed on every deploy fails that test. The field then gets ignored, and you have thrown away a genuinely useful recrawl hint on a template you could have fixed. Emit the content's real modified date, or leave the element out entirely. Omitting it is better than lying with it.
| Element | Status | Worth your time? |
|---|---|---|
| `` | Required | Yes, it's the whole point |
| `` | Used if trustworthy | Yes, if it reflects real content changes |
| `` | Ignored by Google | No |
| `` | Ignored by Google | No |
The last two rows save a recurring argument. Neither element influences anything at Google, and tuning priority values across a site is time with no return.
What to do with the URLs that are not indexed
Group by reason from that export, then apply the response. Most reasons are not faults.
| Reason in the report | What it means | The actual fix |
|---|---|---|
| Excluded by `noindex` tag | You told it not to index | Intended? Remove the URL from the sitemap. Not intended? Remove the tag |
| Alternate page with proper canonical | Working exactly as designed | Remove from the sitemap, nothing else to do |
| Duplicate, engine chose a different canonical | Your declared canonical was overruled | Differentiate the page, or accept the consolidation |
| Page with redirect | The URL forwards elsewhere | Put the destination URL in the sitemap instead |
| Soft 404 | Returns 200 but reads as empty | Add real content, or return a real 404 |
| Discovered, currently not indexed | Never fetched | Internal linking and crawl budget, not a sitemap issue |
| Crawled, currently not indexed | Fetched, then declined | A value judgment about the page. [What that status really means](/blog/crawled-but-not-indexed/) covers the diagnosis |
A large share of "not indexed" URLs in a typical report are correct decisions the engine made about pages you never wanted indexed in the first place. Chasing 100% is the wrong target. The right target is that every URL you deliberately submitted is either indexed or has a reason attached that you actively agree with.
What a sitemap will not fix
A sitemap is a discovery mechanism. It doesn't make a page rank, doesn't compel indexing, doesn't repair thin content, and doesn't override a noindex tag or a robots.txt block. If your pages are being crawled and declined, the file is not where the problem is, and rebuilding it will not help. Broader crawl and index plumbing is covered in what technical SEO actually includes.
There's a limit worth being direct about here, because SparkCliks sells click and traffic services. A page that isn't indexed has no listing, so it collects no impressions and there's no result for anyone to click. Click work such as SERP Clicks applies to pages already ranking and already showing rows in the Performance report. Getting a URL indexed is upstream of all of it, and it's a content, architecture and crawlability job. SparkCliks' own FAQ says it plainly: there are no guarantees in SEO unless you happen to own the search engine, and most sites should get traditional SEO right before reaching for anything else.
Submit the file, scope the report to it, fix what the reasons tell you to fix. That sequence resolves more indexing questions than any amount of resubmitting.
Frequently asked questions
FAQ
There's no fixed interval. The file is usually fetched within a day or two, and Search Console will show Success at that point, but crawling and the indexing decision for each URL happen on their own schedule after that. Small sites often see movement within a week, while large templates can take several weeks to work through.
No. A sitemap is a discovery hint, not an indexing request, and search engines are explicit that they select which crawled pages to store. Submission gets your URLs known and gives you a filterable cohort in the Page indexing report, which is a measurement benefit rather than a ranking or indexing one.
Most often it just means the file has not been read yet, and the status resolves on its own within a day. If it persists, load the sitemap URL in a private browser window and confirm it returns a real XML document with a 200 status, then check that you submitted a path relative to the property root rather than the full URL.
Open Indexing, then Pages in Search Console, and change the dropdown at the top from "All known pages" to your specific sitemap file. Every count below then describes only the URLs in that file, and the export button gives you the full list grouped by exclusion reason.
Several, in almost every case. Because the Page indexing report can be filtered per sitemap file, splitting by template gives you an indexing rate for each section of the site instead of one blended number, which is the difference between diagnosing a problem and knowing only that you have one.
No. Once a sitemap is registered, engines refetch it on their own schedule and pick up new URLs from it. Resubmitting the same file repeatedly changes nothing and clutters the status history you would otherwise use to spot a real fetch failure.
Related articles

Crawled but Not Indexed: What the Status Really Means
Crawled but not indexed means a search engine fetched your page and declined to store it. Here is what that verdict means and how to diagnose it.

Robots.txt vs Noindex: Which Keeps a Page Out of Search
Robots.txt vs noindex: one blocks crawling, the other blocks indexing, and using both at once keeps the page in search. Here is how to pick correctly.

What Is Technical SEO and Why It Comes First
Technical SEO is what lets a search engine find, crawl, render and index your pages. Here is what it covers, why it comes first, and how to audit it.
