Ranked in these QuestionsQuestion Ranking
Pro The ability to create and edit files on the web UI gives GitHub pages the same power as a small CMS
One of GitHub's features is a very powerful web editor which helps users edit or even create files right from the web browser, once the file is saved it's the same as a commit. Coupled with pages, this tool becomes even more powerful, giving users a free CMS that is easy to use and create.
Pro Supports custom domains
A custom domain can be added by creating a CNAME file with the necessary domain in the root of the repository and adding/changing corresponding DNS entries.
Pro Supports Jekyll
A simple, blog-aware static site generator, Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers some other advanced templating features.
Pro Free tier
Static websites can be hosted on GitHub Pages for free as long as the repository is public. Private repositories start at $7/mo.
Con Unable to set cache expiry, must accept GitHub defaults (which are short)
Low cache expires - GitHub sets the cache-control: max-age header to 600 seconds, or ten minutes. Normally, you would set this value to a year so that it stays cached, and then use fingerprinting on your assets. Instead of serving style.css, you would serve something like style-62c887ea7cf54e743ecf3ce6c62a4ed6.css. As it stands now, assets are rarely going to be cached on repeat visits.
This will give a low score on https://developers.google.com/speed/pagespeed/insights with a 'should fix' recommendation around 'Leverage browser caching'.
For a high traffic site this may have implications
Con For a custom domain users still have to use "www"
Due to GitHub's DDoS mitigation technology, users who host their static websites on their servers, cannot have a custom root domain. For example: "example.com" cannot be used, "www.example.com" must be used instead. While in theory the first one is allowed, it greatly affects loading times.