Getting WordPress 5.5 Sitemaps Working with Nginx

Written by James McDonald

August 17, 2020

Using the nginx recommended config from https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/

The following config works. Please note the following considerations

  • You need to tell Nginx to send all requests for /robots.txt and /wp-sitemap*.xml to WordPress
  • Make sure you don’t put your blocks for adding expires headers for xml before the location ~* /[wp\-]*sitemap.*\.xml { block otherwise you will see a raw Nginx File not found error.
# Upstream to abstract backend connection(s) for php
upstream php {
    server unix:/var/run/php-fpm/cgi.sock;
}
 
server {
    ## Your website name goes here.
    server_name domain.tld;
    ## Your only path reference.
    root /var/www/wordpress;
    ## This should be in your http block and if it is, it's not needed here.
    index index.php;
 
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }
 
    location ~* /[wp\-]*sitemap.*\.xml {
        try_files $uri $uri/ /index.php$is_args$args;
        # return 200 "Match found \n";
        allow all;
        log_not_found off;
        access_log off;
    }
 
    location = /robots.txt {
        try_files $uri $uri/ /index.php$is_args$args;
        allow all;
        log_not_found off;
        access_log off;
    }
 
    location / {
        # This is cool because no php is touched for static content.
        # include the "?$args" part so non-default permalinks doesn't break when using query string
        try_files $uri $uri/ /index.php$is_args$args;
    }
 
    location ~ \.php$ {
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_pass php;
        #The following parameter can be also included in fastcgi_params file
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
 
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.

You May Also Like…

Squarespace Image Export

To gain continued access to your Squarespace website images after cancelling your subscription you have several...

MySQL 8.x GRANT ALL STATEMENT

-- CREATE CREATE USER 'tgnrestoreuser'@'localhost' IDENTIFIED BY 'AppleSauceLoveBird2024'; GRANT ALL PRIVILEGES ON...

Exetel Opt-Out of CGNAT

If your port forwards and inbound and/or outbound site-to-site VPN's have failed when switching to Exetel due to their...