vasilenko.info

Sitemap.xml generator

/en/tool/sitemap-generator/ works crawls a site

Enter a site URL. The server follows internal links, builds a list of pages, removes pages blocked from indexing and broken pages, and adds dates from the server response. Download the completed sitemap as an xml file, xml.gz file, or archive containing parts and an index. The server fetches an existing sitemap from its URL and compares it with the crawl.

promoTwenty years of notes on websitesHow we did it in 2008 and what still works today.Open

Sitemap builder

The server follows internal links and returns a list of pages with response codes. The site URL is sent to our server, but the file itself is built in your browser.

The server returns 100 URLs per pass. Crawling then continues from the pages already found: each additional 100 URLs requires another request, with a limit of 300 requests per hour across all site tools.

The detailed check visits each URL separately and fetches Last-Modified, meta robots, X-Robots-Tag, canonical, and language versions.

Crawling has not started yet. You can also paste the list below manually.

Filled by crawling. Also accepts one URL per line in the “URL → date → priority → frequency” format, separated by tabs, semicolons, or commas; a CSV header; or a complete sitemap pasted in full. A line starting with # is a note and is not included in the file.

Overrides the dates found during the check. Leave empty to use each URL’s own date, if available.

The specification limit is 50,000 URLs and 50 MB. Anything that does not fit goes into the next part, and the parts are listed in an index file.

Priority, priority tag
Update frequency, changefreq tag
What to include and add

robots.txt is read with one request after crawling: URLs blocked by its rules are marked and excluded from the sitemap. The declared sitemap URL is also taken from it and automatically entered into the check below. Images and language versions are collected during the detailed check—images require one additional request per page.

Completed sitemap

sitemap.xml

Done

    URLs in sitemap
    Excluded by check
    Lines in file
    Lines discarded
    Sitemap files
    File size

    Line for robots.txt

    robots.txt

    The file is assembled and downloaded on your device. Only what needs to be read by someone else is sent to the server: the site URL, page URLs during detailed checks, robots.txt, and the URL of the completed sitemap. None of this is saved.

    URLs and their details

    The same report that people run desktop crawlers for: response code, depth, date, and the reason a URL was not added to the sitemap.

    Found URLs: response code, depth, modification date, status, and priority

    Check an existing sitemap

    Our server fetches the sitemap by its URL: it decompresses compressed files and reads index files in parts. Then you see how many URLs it contains, what is broken, and how it differs from the site crawl.

    Leave blank—we'll use /sitemap.xml at the root of the crawled site. After the crawl, this field is automatically filled with the URL declared in robots.txt. Supports xml, xml.gz, index files linking to parts, and text lists at the URL in the field.

    A sitemap.xml, sitemap.xml.gz, or text list will work. Use this when the sitemap has not been published yet.

    An index file lists the parts, and each part requires a separate request to the server. For a site with a hundred parts, there is no need to parse them all: the first few already show how the sitemap is structured.

    Sitemap not analyzed

    URLs in the sitemap
    Rows with issues
    Without lastmod
    Files read
    Found by crawl, not in sitemap
    In sitemap, not found by crawl
    Sitemap analysis: URL, what's wrong with it, and whether the crawl found it
    URL What's wrong Crawl

    Sitemap hasn't been analyzed yet.

    promoCalculate ROI at the same timeCampaign payback based on spend and revenue.Open

    How to use it

    1. Enter the site URL and click “Crawl.” The server follows internal links and returns a list of pages with response codes; the list appears below in a field where you can edit it manually.

    2. Click “Check pages in detail.” Each URL is queried separately. The tool retrieves the Last-Modified date, meta robots, X-Robots-Tag, canonical, and language versions. Pages blocked from indexing, broken pages, and pages whose canonical points to a third-party URL are marked and excluded from the sitemap.

    3. Check the “URLs and their status” table. It shows why each excluded URL was excluded; you can remove individual entries with the button or download the entire table as CSV.

    4. Select a priority and frequency and, if needed, set a common date. If URLs have their own dates and priorities, those take precedence over the common setting, except for “Do not specify.”

    5. Download the file. For one file, the result is sitemap.xml or the compressed sitemap.xml.gz; for more than 50,000 URLs, it is an archive with the parts and the sitemap-index.xml index. An HTML sitemap for visitors and a plain-text list, which Google also accepts, are included alongside them.

    6. Place the file in the site root and add the ready-made Sitemap line to robots.txt. It is printed to the right of the sitemap.

    7. If the sitemap is already on the site, start with the last block: click “Parse,” and the server will fetch it. The index file will be expanded part by part, and .gz will be decompressed. The tool will show the number of URLs, format errors, and—if a crawl was run first—what is missing from the sitemap and what remains in it from the previous version of the site.

    promoBrowser task listNo account required—everything is stored on your device.Open

    Example breakdown: four URLs, with priority based on depth

    The input data is the same as the default field values: you can calculate it mentally and confirm that the tool is telling the truth.

    1. Depth is the number of path segments. The root has zero, \/about\/ has one, and \/blog\/first-post\/ has two.

    2. Priority: 1.0 − 0.2 × depth. This gives 1.0 for the root, 0.8 for \/about\/ and \/blog\/, and 0.6 for the blog post.

    3. Each URL takes four lines: the opening url tag, loc, priority, and the closing url tag.

    4. There are two service lines at the top—the XML declaration and the opening urlset tag—and one closing tag at the bottom.

    The sitemap has 4 URLs and 19 lines: 2 at the top, 4 × 4 = 16 for the URLs, and 1 at the bottom. The counters show exactly this. After crawling a live site, the same lines will also contain dates from the server response, while excluded URLs will move to the table with a reason.

    Frequently asked questions

    promoAll toolsForty-four tools, all running in your browser.Open

    Related tools

    6

    UTM builder

    Builds a tagged URL and keeps your campaign list close at hand.

    Open