So I have been struggling to fix a problem with my sitemap. It was working properly before, until I moved the server.
The problem is I didn’t know up until this morning. I moved my site to the new server two weeks ago.
And Google noticed that too:
That doesn’t look good, does it?
So I, like you guys right now, search the web for a solution. I was running Rankmath. I tried to change to Yoast SEO and other sitemap plugins but still the 404 error persisted.
By the way, my site is on an Nginx server.
Yoast SEO has a post here showing the solution or half of the solution. They provided the code below but didn’t tell where to put the code:
location ~ ([^/]*)sitemap(.*).x(m|s)l$ { ## this rewrites sitemap.xml to /sitemap_index.xml rewrite ^/sitemap.xml$ /sitemap_index.xml permanent; ## this makes the XML sitemaps work rewrite ^/([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 last; rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last; rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last; ## The following lines are optional for the premium extensions ## News SEO rewrite ^/news-sitemap.xml$ /index.php?sitemap=wpseo_news last; ## Local SEO rewrite ^/locations.kml$ /index.php?sitemap=wpseo_local_kml last; rewrite ^/geo-sitemap.xml$ /index.php?sitemap=wpseo_local last; ## Video SEO rewrite ^/video-sitemap.xsl$ /index.php?xsl=video last; }
I put it in the server block, didn’t work.
Then I tried to put this inside the location / block inside the server block and the problem was solved.
Remember to put the configuration block inside location /
And that’s all the fix needed to make your sitemap.xml working again.