{"id":20964,"date":"2026-10-01T18:26:42","date_gmt":"2026-10-01T16:26:42","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=20964"},"modified":"2026-10-01T18:29:42","modified_gmt":"2026-10-01T16:29:42","slug":"sitemap-structures-24-sites-index-splitting-extensions-violations","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/","title":{"rendered":"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations"},"content":{"rendered":"<p>On a small site a sitemap is a list. On a large one it is a building made of files: an index that points to child files, a split by content type, language or running number, and extensions for images, videos, news and language versions. Each of these decisions has a limit in the protocol, and each can go wrong without any page visibly breaking.<\/p>\n<p>For this article the sitemaps of 24 domains were read on 1 October 2026 and checked with the core of the new <a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/sitemap-checker-validator-schema-hreflang-image-video-news\/\">Sitemap Checker &amp; Validator<\/a>: search, infrastructure, news, public administration, retail and travel, in three countries, plus this site.<\/p>\n<figure class=\"lw-diagram\">\n<img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/sitemap-strukturen-en.png\" width=\"1120\" height=\"580\" decoding=\"async\" loading=\"lazy\"\n     alt=\"Five ways sitemaps are built, with examples from the measurement, next to six violations reported by the validator, below a bar with an Ikea file at 95.3 percent of the 50 MB limit and three figures on lastmod, priority and changefreq\"><figcaption>Structures, violations and limits in the sitemaps of 18 readable domains, measured on 1 October 2026.<\/figcaption><\/figure>\n<h2>How the measurement was done<\/h2>\n<p>The sitemap was located the way a crawler finds it: first the first <code>Sitemap:<\/code> line in <code>robots.txt<\/code>, otherwise <code>\/sitemap.xml<\/code> and <code>\/sitemap_index.xml<\/code>. Where the file was an index, three child files were fetched: the first, one from the middle and the last. Compressed files (<code>.gz<\/code>) were decompressed. The check was run by the same code that runs in the tool in the browser, here under Node on this site&#8217;s own server.<\/p>\n<p>Whether the addresses in the sitemaps are reachable was not checked. That is a different question with its own traps, and it is what the <a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/xml-sitemap-auditor-lastmod-index-sample-check\/\">XML Sitemap Auditor<\/a> is for, which fetches a sample of the addresses. This article is about the files themselves: structure, format and the rules of sitemaps.org and Google.<\/p>\n<h2>Six domains without a readable sitemap<\/h2>\n<p>Of 24 domains, 18 delivered a readable sitemap. Four name no sitemap in <code>robots.txt<\/code> and answer 404 at <code>\/sitemap.xml<\/code>, one of them only after a redirect. Two turned the fetching client away with 403, one of them on the very file its own <code>robots.txt<\/code> names.<\/p>\n<p>One case lies in between. heise.de names seven sitemaps in <code>robots.txt<\/code>, and the first of them, <code>\/sitemapindex.xml<\/code>, answers 404. The standard address <code>\/sitemap.xml<\/code>, on the other hand, delivers a file with 10,000 entries. A crawler that reads every line loses nothing; a tool that takes only the first reports a missing sitemap.<\/p>\n<h2>robots.txt as a table of contents<\/h2>\n<p>The protocol allows any number of <code>Sitemap:<\/code> lines, and that is exactly how several large sites work: instead of an index, the list of files sits directly in <code>robots.txt<\/code>.<\/p>\n<table>\n<tr>\n<th>Domain<\/th>\n<th><code>Sitemap:<\/code> lines<\/th>\n<\/tr>\n<tr>\n<td>booking.com<\/td>\n<td>434<\/td>\n<\/tr>\n<tr>\n<td>nytimes.com<\/td>\n<td>25<\/td>\n<\/tr>\n<tr>\n<td>microsoft.com<\/td>\n<td>22<\/td>\n<\/tr>\n<tr>\n<td>otto.de<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>bbc.co.uk<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>wordpress.org<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>heise.de<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>seven more<\/td>\n<td>1 to 5<\/td>\n<\/tr>\n<\/table>\n<p>This has an advantage that no specification spells out: every line is also proof that the operator of the host wants this file. Under sitemaps.org, a sitemap may contain addresses of another host only if that host&#8217;s <code>robots.txt<\/code> points to it.<\/p>\n<h2>Five ways to build a sitemap<\/h2>\n<p>The 18 sitemaps fall into five structures, and some sites mix two of them.<\/p>\n<table>\n<tr>\n<th>Structure<\/th>\n<th>Examples from the measurement<\/th>\n<\/tr>\n<tr>\n<td>one file<\/td>\n<td>heise.de (10,000 entries), lukaswojcik.com (1,006), Cloudflare (933); the news sitemaps of the New York Times, Spiegel and the Guardian, each named first in its <code>robots.txt<\/code><\/td>\n<\/tr>\n<tr>\n<td>index by content type<\/td>\n<td>wordpress.org (pages, images, videos), Otto (49 categories), Airbnb (homes, experiences, destinations, help pages)<\/td>\n<\/tr>\n<tr>\n<td>index by language or market<\/td>\n<td>Ikea with 2,166 files following the pattern <code>prod-et-EE_1.xml<\/code>, MDN with ten languages, Booking with 45 languages per content type, Shopify with 568 files<\/td>\n<\/tr>\n<tr>\n<td>index by running number<\/td>\n<td>gov.uk with 35 files of up to 25,000 addresses each, Airbnb with 140 files for homes alone<\/td>\n<\/tr>\n<tr>\n<td>index of indexes<\/td>\n<td>Apple (47 country indexes, one of them on apple.com.cn), Microsoft (five sub-indexes), one child file at Google<\/td>\n<\/tr>\n<\/table>\n<p>The last structure deserves a second look. sitemaps.org describes an index as a list of sitemaps, and Google&#8217;s guide to large sitemaps says nothing about nesting. An index that points to further indexes therefore relies on behaviour nobody promises. Apple&#8217;s root index also names files on a second host, which under the protocol is covered only by that host&#8217;s <code>robots.txt<\/code>.<\/p>\n<h2>The limit reached first<\/h2>\n<p>A sitemap may contain at most 50,000 addresses and may be at most 50 MB uncompressed. gov.uk stays at half with 25,000 addresses per file; one Airbnb file sits exactly on the limit with 50,000. At Ikea the other limit applies.<\/p>\n<p>The file <code>prod-et-EE_1.xml<\/code> contains only 4,617 addresses but weighs 47.6 MB, 95.3 percent of what is allowed. Each address carries on average 69 <code>xhtml:link<\/code> entries for its language versions, 319,635 in total, plus 22,797 images and 1,585 videos. Around 10.8 KB per entry is no longer the address but its description.<\/p>\n<p>This is the arithmetic hreflang in a sitemap brings with it: every version of a page lists all other versions and itself. Across all files the number of links therefore grows with the square of the language versions, not with the number of pages. For sitemaps with hreflang the byte limit is the better yardstick for splitting than the number of addresses.<\/p>\n<h2>Where the violations sit<\/h2>\n<p>In the core format of <code>loc<\/code>, <code>lastmod<\/code>, <code>changefreq<\/code> and <code>priority<\/code> the validator found little: a few duplicate entries, three addresses with a fragment (<code>#<\/code>) and two on another host at heise.de, and empty child files at Shopify and Ikea. Almost all violations of weight sit in the namespaces and the extensions.<\/p>\n<ul>\n<li><strong>Google root index:<\/strong> it uses the old Google namespace <code>http:\/\/www.google.com\/schemas\/sitemap\/0.84<\/code> instead of <code>http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9<\/code>. Namespaces are compared character by character; to a strict reader this is not a sitemap index.<\/li>\n<li><strong>Gmail sitemap:<\/strong> 166 addresses with 9,075 hreflang links, 165 of them with the code <code>es-419<\/code> for Latin American Spanish. Google&#8217;s help page on localized versions names exactly this code as an example of one that is not supported, because only regions per ISO 3166-1 count. The help page itself lists a version with <code>hreflang=\"es-419\"<\/code> in its HTML head.<\/li>\n<li><strong>Cloudflare:<\/strong> the namespaces for the sitemap and for <code>xhtml<\/code> are written with <code>https:\/\/<\/code>. A namespace is an identifier, not an address; with <code>https<\/code> it is a different identifier, and the 10,263 hreflang links sit in a namespace no reader expects.<\/li>\n<li><strong>wordpress.org:<\/strong> none of the 62 videos in the video sitemap has a <code>video:description<\/code>, which Google lists as a required field. The image sitemap of the same site lists pages several times, once per image, the home page alone 91 times; 521 of the 693 entries repeat an address already listed, although one <code>url<\/code> entry may carry up to 1,000 images.<\/li>\n<li><strong>New York Times:<\/strong> 13 of the 745 entries of the news sitemap carry <code>news:language<\/code> as <code>en-US<\/code>. An ISO 639 code of two or three letters is required, with exceptions only for <code>zh-cn<\/code> and <code>zh-tw<\/code>.<\/li>\n<li><strong>BBC:<\/strong> the index names three sitemaps on the 2014 elections, one of them with 204 addresses, all still on <code>http:\/\/<\/code>.<\/li>\n<\/ul>\n<p>Whether Google discards these cases one by one or reads them generously cannot be measured from outside. What can be shown is that they contradict the formats&#8217; own rules, and that a strict reader fails on them.<\/p>\n<h2>lastmod: one date for everything<\/h2>\n<p>Of the optional fields Google uses only <code>lastmod<\/code>, and only if it is verifiably accurate. Google ignores <code>priority<\/code> and <code>changefreq<\/code>; even so, they appear at 9 of the 18 sites.<\/p>\n<p>At 7 sites at least one file carries the same date on every entry, among them Cloudflare (933 entries, one date), an Ikea file (4,617 entries, one date) and Booking (3,032 entries per language file, one date). Such a value describes the generator run, not the pages. At 6 sites no measured file contains a <code>lastmod<\/code> at all. The values look credible at heise.de (8,913 distinct among 10,000), the New York Times (736 among 745) and wordpress.org (51 among 52).<\/p>\n<p>A case no validator sees within one file turned up on this site. On the day of measurement the Yoast index named 28 September as the last change of <code>post-sitemap.xml<\/code>, while the newest entry in that file carried 1 October. The <code>lastmod<\/code> in the index is meant to describe the change of the child file; checking it requires both files side by side.<\/p>\n<h2>The location rule and the XSD<\/h2>\n<p>Large sites break two rules of the protocol almost across the board. The first is the location rule: under sitemaps.org, a sitemap at <code>\/sitemaps\/sitemap.xml<\/code> may contain only addresses below <code>\/sitemaps\/<\/code>. At ten of the 18 sites at least one measured file violates this rule, mostly because it sits in a subfolder such as <code>\/sitemaps\/<\/code> and lists addresses above it. At gov.uk, Ikea, Otto, MDN and the three news sites this affects every address of the measured files. Google still uses such files if they are submitted in Search Console. The validator therefore reports the location rule as a note, and only when the address of the file is given.<\/p>\n<p>The second is the schema. The sitemaps.org XSD admits elements from other namespaces only with <code>processContents=\"strict\"<\/code>. A correct image sitemap with a single <code>image:image<\/code> therefore fails a plain XSD check; libxml2 2.9.14 reported \u201cNo matching global element declaration available, but demanded by the strict wildcard\u201d. Checking against the XSD means loading the schemas of the extensions as well. The XSD is just as strict about time: <code>2026-10-01T14:05<\/code> without seconds is invalid there, with seconds but without a time zone it is valid, but not in the W3C format that sitemaps.org refers to.<\/p>\n<h2>Checking a sitemap before it is published<\/h2>\n<p>No single command covers the chain of well-formedness, protocol and extensions. The <a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/sitemap-checker-validator-schema-hreflang-image-video-news\/\">Sitemap Checker &amp; Validator<\/a> in the toolbox takes pasted XML or a file, compressed too, and checks in the browser:<\/p>\n<ul>\n<li>well-formedness with line and column, such as an unescaped <code>&amp;<\/code> or a truncated end of file,<\/li>\n<li>namespace, encoding and the limits of 50,000 entries and 50 MB,<\/li>\n<li><code>loc<\/code>, <code>lastmod<\/code>, <code>changefreq<\/code>, <code>priority<\/code> and their order as in the XSD,<\/li>\n<li>hreflang with valid codes, self-reference and return links within the file,<\/li>\n<li>the required fields and limits of the image, video and news extensions, including the deprecated tags,<\/li>\n<li>with the address of the file given, the location rule.<\/li>\n<\/ul>\n<p>The file does not leave the browser. What the addresses answer live, whether they redirect, carry a noindex or a canonical pointing elsewhere, is what the XML Sitemap Auditor checks on the published version.<\/p>\n<h2>Context and limits<\/h2>\n<p>24 domains were measured on one day, three child files per index. Ikea alone has 2,166 files; the measurement says nothing about the rest. Six domains remained unreadable, two of them because of a refusal that a crawler with a known name may not meet. And the measurement describes violations of the formats, not their consequences in search: how lenient Google is with a wrong namespace or an <code>en-US<\/code> is not documented.<\/p>\n<div class=\"lw-faq\">\n<h2>Questions and answers<\/h2>\n<h3>Why does a correct image sitemap fail a check against the sitemaps.org XSD?<\/h3>\n<p>The schema admits elements from other namespaces only with <code>processContents=\"strict\"<\/code>. A strictly checking parser therefore has to find a declaration for <code>image:image<\/code>, and that declaration is not in the sitemap schema but in a separate schema for the extension. Loading only <code>sitemap.xsd<\/code> produces an error for every extension, even when the file is perfectly fine. The remedy is to load the schemas of the extensions in use as well, or to check the extensions against their documented rules instead of the XSD.<\/p>\n<h3>Does hreflang belong in the sitemap or in the head of the page?<\/h3>\n<p>Google accepts language versions in three ways: as a <code>link<\/code> element in the HTML head, as an HTTP header and in the sitemap. For the evaluation the three are equivalent; what differs is the cost.<\/p>\n<p>In the sitemap the number of entries grows with the square of the versions, because every version lists all the others and itself. That is how the measured Ikea file reached 95.3 percent of the 50 MB limit with 4,617 addresses. In return the pages themselves stay lean, and the annotations sit in one place where a validator can check self-references and return links in a single pass.<\/p>\n<p>In the HTML head each page carries only its own group, and the annotations change together with the page. With a few languages that is usually the simpler route; with dozens of markets the sitemap has more in its favour, but then split by bytes rather than by addresses. Maintaining both at once doubles the sources of error, because two lists of the same group can drift apart.<\/p>\n<h3>How is a sitemap with more than 50,000 addresses split cleanly?<\/h3>\n<p>With an index that points to several files. Four rules help:<\/p>\n<ul>\n<li>The child files sit in the index&#8217;s folder or below, as Google requires for indexes.<\/li>\n<li>The split follows a property that does not change constantly, such as content type or language; a running number moves addresses into other files with every rebuild.<\/li>\n<li>The <code>lastmod<\/code> in the index describes the last change of the respective child file and is rewritten together with it.<\/li>\n<li>An index points to sitemaps, not to further indexes, because neither specification promises nesting.<\/li>\n<\/ul>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.sitemaps.org\/protocol.html\" target=\"_blank\" rel=\"noopener noreferrer\">sitemaps.org \u2013 Sitemaps XML format<\/a><\/li>\n<li><a href=\"https:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9\/sitemap.xsd\" target=\"_blank\" rel=\"noopener noreferrer\">sitemaps.org \u2013 sitemap.xsd<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/build-sitemap\" target=\"_blank\" rel=\"noopener noreferrer\">Google Search Central \u2013 Build and submit a sitemap<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/large-sitemaps\" target=\"_blank\" rel=\"noopener noreferrer\">Google Search Central \u2013 Manage your sitemaps with a sitemap index file<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/specialty\/international\/localized-versions\" target=\"_blank\" rel=\"noopener noreferrer\">Google Search Central \u2013 Tell Google about localized versions of your page<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/image-sitemaps\" target=\"_blank\" rel=\"noopener noreferrer\">Google Search Central \u2013 Image sitemaps<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/video-sitemaps\" target=\"_blank\" rel=\"noopener noreferrer\">Google Search Central \u2013 Video sitemaps and alternatives<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/news-sitemap\" target=\"_blank\" rel=\"noopener noreferrer\">Google Search Central \u2013 Create a news sitemap<\/a><\/li>\n<li><a href=\"https:\/\/www.w3.org\/TR\/NOTE-datetime\" target=\"_blank\" rel=\"noopener noreferrer\">W3C \u2013 Date and Time Formats<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The sitemaps of 24 domains were read and checked with a validator: five ways to build them, robots.txt with up to 434 Sitemap lines, an Ikea file at 95.3 percent of the 50 MB limit because of 69 hreflang links per address, and the violations that sit almost entirely in namespaces and extensions.<\/p>\n","protected":false},"author":1,"featured_media":20965,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[148],"tags":[91297,91094,92757],"class_list":["post-20964","post","type-post","status-publish","format-standard","hentry","category-web-development","tag-data-quality","tag-seo","tag-web-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Sitemaps of 24 domains measured: five structures, the 50 MB limit hreflang reaches first, and the namespace and extension errors a validator finds.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Sitemaps of 24 domains measured: five structures, the 50 MB limit hreflang reaches first, and the namespace and extension errors a validator finds.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-01T16:26:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-01T16:29:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations\",\"datePublished\":\"2026-10-01T16:26:42+00:00\",\"dateModified\":\"2026-10-01T16:29:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/\"},\"wordCount\":2093,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png\",\"keywords\":[\"Data Quality\",\"SEO\",\"Web Development\"],\"articleSection\":[\"Web Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/\",\"name\":\"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png\",\"datePublished\":\"2026-10-01T16:26:42+00:00\",\"dateModified\":\"2026-10-01T16:29:42+00:00\",\"description\":\"Sitemaps of 24 domains measured: five structures, the 50 MB limit hreflang reaches first, and the namespace and extension errors a validator finds.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png\",\"width\":1200,\"height\":630,\"caption\":\"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/sitemap-structures-24-sites-index-splitting-extensions-violations\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations | Lukas Wojcik","description":"Sitemaps of 24 domains measured: five structures, the 50 MB limit hreflang reaches first, and the namespace and extension errors a validator finds.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/","og_locale":"en_US","og_type":"article","og_title":"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations | Lukas Wojcik","og_description":"Sitemaps of 24 domains measured: five structures, the 50 MB limit hreflang reaches first, and the namespace and extension errors a validator finds.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-10-01T16:26:42+00:00","article_modified_time":"2026-10-01T16:29:42+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations","datePublished":"2026-10-01T16:26:42+00:00","dateModified":"2026-10-01T16:29:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/"},"wordCount":2093,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png","keywords":["Data Quality","SEO","Web Development"],"articleSection":["Web Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/","name":"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png","datePublished":"2026-10-01T16:26:42+00:00","dateModified":"2026-10-01T16:29:42+00:00","description":"Sitemaps of 24 domains measured: five structures, the 50 MB limit hreflang reaches first, and the namespace and extension errors a validator finds.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-20964-sitemap-structures-24-sites-index-splitting-extensio.png","width":1200,"height":630,"caption":"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/sitemap-structures-24-sites-index-splitting-extensions-violations\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Sitemap Structures Measured at 24 Sites: Indexes, Splitting, Extensions and Violations"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/20964","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=20964"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/20964\/revisions"}],"predecessor-version":[{"id":20976,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/20964\/revisions\/20976"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/20965"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=20964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=20964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=20964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}