You can try the encryption route. Here, the name staticrypt really says everything (I have a demo here). It allows you to create a password for each page for your website. It used AES-256 encryption, so as far as I am concerned, a long password should suffice. You will be the only one to view the webpage. You can also have js on the webpage etc., so I believe you can maintain whatever you have on your website, (the address, format, etc.) while restricting access.
In the readme.md of staticrypt
:
Disclaimer if you have extra sensitive banking data you should
probably use something else!
StatiCrypt generates a static, password protected page that can be
decrypted in-browser: just send or upload the generated page to a
place serving static content (github pages, for example) and you're
done: the javascript will prompt users for password, decrypt the page
and load your HTML.
It basically encrypts your page and puts everything with a
user-friendly way to use a password in the new file.
AES-256 is state of the art but brute-force/dictionary attacks would
be trivial to do at a really fast pace: use a long, unusual
passphrase.
To do that, first, generate your webpage as an HTML file and use this link (or locally) to encrypt your HTML file. Download the HTML file and upload it to your server.
I don't think GitHub allows you to make a "private" Github-pages.