Last week, I signed in to Google Search Console to get a report on the search performance of my web sites and was surprised to find that for some of my sites it had tried to index pages that didn't exist. It seems the problem came about because I host several sites at the same ip address and Google Search Console was not sufficiently distinguishing between each site. The solutions is to block queries in the Apache web server to the shared raw ip address of your virtual web sites and only allow named web site queries.
Two files must be changed.
At the top of /etc/apache2/apache2.conf, include a section like this:
<VirtualHost 123.456.789.111:80>
ServerName default
DocumentRoot "/var/www/empty"
<Directory /var/www/empty>
Require all denied
</Directory>
</VirtualHost>
And at the top of /etc/apache2/sites-enabled/apache2-le-ssl.conf, add
<IfModule mod_ssl.c>
<VirtualHost 123.456.789.111:443>
ServerName default-ssl
DocumentRoot "/var/www/empty"
SSLCertificateFile /etc/letsencrypt/live/www.yourwebsitename.xxx/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.yourwebsitename.xxx/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
<Directory /var/www/empty>
Require all denied
</Directory>
</VirtualHost>
</IfModule>
In the files above, you will of course have to substitute the real ip address of your web sites and, for the second file, give the real path to the SSL certificate files shared by your web sites for https.
Finally, create the "empty" directory referred to:
sudo mkdir -p /var/www/empty
and then restart the Apache service:
sudo service apache2 restart
Then test by trying to access your web sites by ip address alone. The changes you have made will tell Apache to block and return a 403 error.
The instructions above are given in the context of the Apache web server setup described in full detail in my two VPS guides. These manuals are not expensive to buy and will save you hours of wasted time and grief trying to get your VPS servers to work reliably and securely.

