{"id":10765,"date":"2023-10-14T00:17:25","date_gmt":"2023-10-13T22:17:25","guid":{"rendered":"https:\/\/wajari.com\/blog\/sitemaps-in-wordpress-multisites\/"},"modified":"2023-11-08T19:22:14","modified_gmt":"2023-11-08T18:22:14","slug":"sitemaps-en-multisites-wordpress","status":"publish","type":"post","link":"https:\/\/wajari.com\/en\/blog\/sitemaps-en-multisites-wordpress\/","title":{"rendered":"Sitemaps in WordPress Multisites"},"content":{"rendered":"\n<p>How to fix sitemaps in multisites of languages in WordPress? This will be a very short post because it deals with a limitation I find in the <strong>SEO plugins<\/strong> of the <strong>WordPress<\/strong> ecosystem and I give you my solution for <strong>XML sitemaps<\/strong> by languages.  <\/p>\n\n<p><a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/overview?hl=es\" rel=\"noopener\">Sitemaps<\/a> are one of the most relevant files in terms of SEO because it is a type of content that, as we can see, is frequently visited by search robots.  <\/p>\n\n<p>They provide a list of the main URLs of a site that are submitted for indexing.  <\/p>\n\n<p>Not only can we take advantage of it for content types, but also for images, videos, news. Google&#8217;s documentation is very clear about this. It <strong>helps to better crawl a site<\/strong>.  <\/p>\n\n<p>I tend to be very strict with sitemaps. I think it is a file that we should have 100% in <strong>200 codes<\/strong> and only with the content that we want to be indexed.  <\/p>\n\n<p>Famous SEO plugins such as:  <\/p>\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/es.wordpress.org\/plugins\/wordpress-seo\/\" rel=\"noopener\">Yoast SEO<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/es.wordpress.org\/plugins\/seo-by-rank-math\/\" rel=\"noopener\">RankMath<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/es.wordpress.org\/plugins\/wp-seopress\/\" rel=\"noopener\">SEOPress<\/a> <\/li>\n\n\n\n<li><a href=\"https:\/\/es.wordpress.org\/plugins\/all-in-one-seo-pack\/\" rel=\"noopener\">All in one SEO<\/a> <\/li>\n<\/ul>\n\n<p>They all generate their <strong>own sitemap<\/strong> based on the type of content that you indicate to be indexed in Google.  <\/p>\n\n<p>In the following screenshots we can check some of them:  <\/p>\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"254\" src=\"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image.png\" alt=\"Yoast SEO XML Sitemap\" class=\"wp-image-10665\" srcset=\"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image.png 589w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-300x129.png 300w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><figcaption class=\"wp-element-caption\">Yoast SEO XML Sitemap<\/figcaption><\/figure>\n<\/div>\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"476\" src=\"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-1-1024x476.png\" alt=\"RankMath XML Sitemap\" class=\"wp-image-10667\" srcset=\"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-1-1024x476.png 1024w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-1-300x139.png 300w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-1-768x357.png 768w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-1-1536x714.png 1536w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-1-1200x558.png 1200w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-1.png 1558w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">RankMath XML Sitemap<\/figcaption><\/figure>\n<\/div>\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p>The problem is that for <strong>multi-language websites<\/strong> two limitations are generated depending on the casuistry:  <\/p>\n\n<ol class=\"wp-block-list\">\n<li>A regular <strong>WordPress<\/strong> with any language plugin such as: <a href=\"https:\/\/es.wordpress.org\/plugins\/polylang\/\" rel=\"noopener\">Polylang<\/a>, <a href=\"https:\/\/wpml.org\/\" rel=\"noopener\">WPML<\/a>, <a href=\"https:\/\/es.wordpress.org\/plugins\/weglot\/\" target=\"_blank\" rel=\"noreferrer noopener\">WeGlot<\/a>, <a href=\"https:\/\/es.wordpress.org\/plugins\/translatepress-multilingual\/\" rel=\"noopener\">TranslatePress<\/a>, etc.  <\/li>\n\n\n\n<li>A <a href=\"https:\/\/kinsta.com\/es\/blog\/multisitio-wordpress\/\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress multisite<\/a> with <a href=\"https:\/\/es.wordpress.org\/plugins\/multilingual-press\/\" rel=\"noopener\">MultilingualPress<\/a> where each language is generated in the subfolder of the corresponding language.  <\/li>\n<\/ol>\n\n<p>In the first option, there would be no problem.  <\/p>\n\n<p>One thing I do NOT like about <strong>SEO plugins<\/strong> is that they generate the generic sitemap mixing all languages. It does not seem positive to me. I think that each language should have separate sitemaps.  <\/p>\n\n<p>The only exception is the veteran <strong>All in One SEO<\/strong>, a plugin that from my point of view was left behind in many functionalities offered by more modern SEO plugins.  <\/p>\n\n<p>But just in this functionality, they do better than the rest. See capture:  <\/p>\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"551\" src=\"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-2-1024x551.png\" alt=\"All in One SEO XML Sitemap  \" class=\"wp-image-10669\" srcset=\"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-2-1024x551.png 1024w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-2-300x162.png 300w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-2-768x413.png 768w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-2-1200x646.png 1200w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-2.png 1341w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">All in One SEO XML Sitemap respecting the language order<\/figcaption><\/figure>\n<\/div>\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p>For an order freak, having the languages separated in the sitemap is very nice.  <\/p>\n\n<p>The second option (multisite) is very convenient for many companies because it allows to have each language as a different website. It is scalable, it works well, but it <strong>creates an absurd problem<\/strong>.  <\/p>\n\n<p>Let&#8217;s imagine the following fictitious domain:  <\/p>\n\n<ul class=\"wp-block-list\">\n<li>https:\/\/misexyweb.com\/ &gt; We assign it to the main language, in this case English.  <\/li>\n\n\n\n<li>https:\/\/misexyweb.com\/es\/ &gt; For the Spanish  <\/li>\n\n\n\n<li>https:\/\/misexyweb.com\/fr\/ &gt; For French and so on.<\/li>\n<\/ul>\n\n<p>The problem is that the default <strong>SEO plugins<\/strong> will set a <em>sitemap.xml<\/em> per website.  <\/p>\n\n<p>This means that in Spanish we will have for example:  <\/p>\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;misexyweb.com\/es\/sitemap.xml<\/code><\/pre>\n\n<p>And this, as usual, will show the <strong>sitemap only for the English language<\/strong>.  <\/p>\n\n<p>It is obvious that we can send each sitemap to Google and that&#8217;s it, using the functionality in <a href=\"https:\/\/search.google.com\/search-console\/about\" target=\"_blank\" rel=\"noreferrer noopener\">Search Console<\/a>.  <\/p>\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" src=\"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-3-1024x619.png\" alt=\"Submitting sitemaps.xml to Search Console\" class=\"wp-image-10671\" srcset=\"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-3-1024x619.png 1024w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-3-300x181.png 300w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-3-768x464.png 768w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-3-1200x725.png 1200w, https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/image-3.png 1291w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Submitting <em>sitemaps.xml<\/em> to Search Console<\/figcaption><\/figure>\n<\/div>\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p>But I don&#8217;t think we should rely only on that because <strong>Google<\/strong> or other search engines will default to the <strong>main domain<\/strong> and visit only the sitemap of the main language, in this case English:  <\/p>\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;misexyweb.com\/sitemap.xml<\/code><\/pre>\n\n<p>Therefore they will have no knowledge of the other languages and this is a &#8220;package deal&#8221; in terms of indexing and crawling.  <\/p>\n\n<p>What I usually do in these cases, is to create (manually) a <strong>sitemap of sitemaps<\/strong> on the main domain.  <\/p>\n\n<p>This is useful because it allows us to <strong>override the<\/strong> default <strong>behavior<\/strong> of the SEO plugin. For example, something like this:  <\/p>\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n&lt;sitemapindex    xmlns=\"http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9\">\n\n&lt;sitemap>\n     &lt;loc>https:\/\/misexyweb.com\/sitemap_index.xml&lt;\/loc>\n     &lt;lastmod>2023-08-22 17:00 +02:00&lt;\/lastmod>\n&lt;\/sitemap>\n&lt;sitemap>\n     &lt;loc>https:\/\/misexyweb.com\/es\/sitemap_index.xml&lt;\/loc>\n     &lt;lastmod>2023-08-22 17:00 +02:00&lt;\/lastmod>\n&lt;\/sitemap>\n&lt;sitemap>\n     &lt;loc>https:\/\/misexyweb.com\/it\/sitemap_index.xml&lt;\/loc>\n     &lt;lastmod>2023-08-22 17:00 +02:00&lt;\/lastmod>\n&lt;\/sitemap>\n&lt;sitemap>\n     &lt;loc>https:\/\/misexyweb.com\/fr\/sitemap_index.xml&lt;\/loc>\n     &lt;lastmod>2023-08-22 17:00 +02:00&lt;\/lastmod>\n&lt;\/sitemap>\n&lt;sitemap>\n     &lt;loc>https:\/\/misexyweb.com\/pl\/sitemap_index.xml&lt;\/loc>\n     &lt;lastmod>2023-08-22 17:00 +02:00&lt;\/lastmod>\n&lt;\/sitemap>\n&lt;sitemap>\n     &lt;loc>https:\/\/misexyweb.com\/ru\/sitemap_index.xml&lt;\/loc>\n     &lt;lastmod>2023-08-22 17:00 +02:00&lt;\/lastmod>\n&lt;\/sitemap>\n\n&lt;\/sitemapindex><\/code><\/pre>\n\n<p>As you can see it is very simple, I am just generating an index of the sitemaps of each language. I create the file: <em>\n  <strong>sitemap.xml<\/strong>\n<\/em> and upload it to the root folder.  <\/p>\n\n<p>In this way <strong>each sitemap of each folder<\/strong> is updated by itself. This is actually done by the SEO plugin. The only thing I do is to leave you the complete list and also, ordered by language, which I think is the most positive thing.<\/p>\n\n<p>I hope this solution will help you. If you have another one, I&#8217;ll be happy to read it in the comments.  <\/p>\n\n<p>And I hope this is taken into account by the different WordPress SEO plugins to improve these sitemap functionalities. I will make these observations when I have the opportunity.  <\/p>\n\n<p>Something as simple as a <strong>manual modification of the default sitemap<\/strong> is not feasible nowadays without putting some code, as <strong>Fernando Tellado<\/strong> teaches us for example in his article about <strong>SEOPress<\/strong> and <a href=\"https:\/\/ayudawp.com\/urls-adicionales-mapa-sitio-xml-seopress\/\" target=\"_blank\" rel=\"noreferrer noopener\">how to add additional URLs to the XML sitemap<\/a>.  <\/p>\n\n<p>So the management of the sitemaps by the SEO plugins is frankly good, except for these details, which hopefully can be improved in future editions.  <\/p>\n\n<p>I promise to create an <a href=\"https:\/\/wajari.com\/en\/categoria\/guides\/\">SEO guide<\/a> on sitemaps very soon in video, which I believe is an essential file that we don&#8217;t pay much attention to.  <\/p>\n\n<p>Long live and prosper WordPress!<\/p>\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>How to fix sitemaps in multisites of languages in WordPress? Solution to the problem of SEO plugins that create an XML sitemap per website<\/p>\n","protected":false},"author":1,"featured_media":10674,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[70,74],"tags":[71],"class_list":["post-10765","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo-en","category-wordpress-en","tag-google-en"],"featured_image_urls_v2":{"full":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false],"thumbnail":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite-150x150.png",150,150,true],"medium":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite-300x200.png",300,200,true],"medium_large":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false],"large":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false],"1536x1536":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false],"2048x2048":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false]},"post_excerpt_stackable_v2":"<p>How to fix sitemaps in multisites of languages in WordPress? Solution to the problem of SEO plugins that create an XML sitemap per website<\/p>\n","category_list_v2":"<a href=\"https:\/\/wajari.com\/en\/categoria\/seo-en\/\" rel=\"category tag\">SEO<\/a>, <a href=\"https:\/\/wajari.com\/en\/categoria\/wordpress-en\/\" rel=\"category tag\">WordPress<\/a>","author_info_v2":{"name":"Wajari Vel\u00e1squez","url":"https:\/\/wajari.com\/en\/author\/wajari\/"},"comments_num_v2":"0 comments","jetpack_featured_media_url":"https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png","uagb_featured_image_src":{"full":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false],"thumbnail":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite-150x150.png",150,150,true],"medium":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite-300x200.png",300,200,true],"medium_large":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false],"large":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false],"1536x1536":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false],"2048x2048":["https:\/\/wajari.com\/wp-content\/uploads\/2023\/10\/2023-10-Multisite.png",640,426,false]},"uagb_author_info":{"display_name":"Wajari Vel\u00e1squez","author_link":"https:\/\/wajari.com\/en\/author\/wajari\/"},"uagb_comment_info":0,"uagb_excerpt":"How to fix sitemaps in multisites of languages in WordPress? Solution to the problem of SEO plugins that create an XML sitemap per website","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/posts\/10765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/comments?post=10765"}],"version-history":[{"count":3,"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/posts\/10765\/revisions"}],"predecessor-version":[{"id":10771,"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/posts\/10765\/revisions\/10771"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/media\/10674"}],"wp:attachment":[{"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/media?parent=10765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/categories?post=10765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wajari.com\/en\/wp-json\/wp\/v2\/tags?post=10765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}