Infrastructure
· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.CIPv6 ReadinessActionNo IPv6 supportREVIEW
IPv6 support is increasingly important for global accessibility. About 40% of internet users have IPv6 connectivity.
No AAAA records — same impact as 'no IPv6 (AAAA) records'; IPv6-preferring clients pay extra latency falling back to IPv4.
Source: Google IPv6 stats
CCrawlabilityActionrobots.txt present, sitemap with 0 URLsREVIEW
Search engines may not be able to parse the sitemap. Fix XML validation errors.
An unparseable sitemap is silently ignored by Google — the URLs it advertises are never queued for crawl.
Learn more ▾ ▴
Google's sitemap parser is strict about XML validity. A single unescaped `&` or unclosed tag invalidates the whole file. Run your sitemap through a validator (Search Console's Sitemaps report flags it) and fix the offending entry. Most generators escape correctly; mistakes usually come from manually-written entries.
Source: sitemaps.org / Google Search Central
An empty sitemap provides no value. Add <url> entries for your pages.
An empty sitemap signals 'no content to index' to Google — actively harmful versus having no sitemap at all.
Learn more ▾ ▴
Google compares URLs in the sitemap against URLs it has crawled. An empty sitemap on a site with thousands of pages signals abandonment. Either populate it correctly (most CMSes auto-generate) or delete the file and let Google crawl normally.
Source: Google Search Central / sitemaps.org
Add a 'Sitemap:' directive to robots.txt so search engines can discover your sitemap.
robots.txt omits Sitemap: directive — crawlers must fetch /sitemap.xml by convention; reliable but missing the explicit hint.
Source: sitemaps.org
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="refresh" content="0; url=https://docs.github.com/pages" />
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link type="text/css" href="/css/pages.css" media="all" rel="stylesheet">
<!-- Begin Jekyll SEO tag v2.8.0 -->
<title>GitHub Pages | Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live.</title>
<meta name="generator" content="Jekyll v3.10.0" />
<meta property="og:title" content="GitHub Pages" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live." />
<meta property="og:description" content="Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live." />
<link rel="canonical" href="https://pages.github.com/" />
<meta property="og:url" content="https://pages.github.com/" />
<meta property="og:site_name" content="GitHub Pages" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="GitHub Pages" />
<meta name="twitter:site" content="@github" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebSite","description":"Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live.","headline":"GitHub Pages","name":"GitHub Pages","url":"https://pages.github.com/"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body class="home ">
<section id="hero-spot" class="hero-spot">
<a href="/"><img src="/images/logo.svg" alt="GitHub Pages" class="logo" /></a>
<h1>Websites for you and your projects.</h1>
<h2>Hosted directly from your <a href="https://github.com">GitHub repository</a>. Just edit, push, and your changes are live.</h2>
<a href="https://help.github.com/pages/" class="help-link">Pages Help</a>
<div id="slideshow">
<img src="/images/slideshow/bootstrap.png" alt="Bootstrap" class="slide active" width="893" />
</div>
</section>
<section id="tutorial" class="tutorial">
<h1>Ready to get started? Build your own site from scratch or generate one for your project.</h1>
<h2>You get one site per GitHub account and organization, <br />and unlimited project sites. Let‘s get started.</h2>
<ul class="tabs">
<li><a href="#user-site" class="selected">User or organization site</a></li>
<li><a href="#project-site">Project site</a></li>
</ul>
<!-- ### Start of tutorials -->
<ul id="user-site" class="tutorial-list wrapper active">
<li id="create-repo-step" class="image-right">
<h4>Create a repository</h4>
<p>Head over to <a href="https://github.com">GitHub</a> and <a data-proofer-ignore="true" href="https://github.com/new">create a new public repository</a> named <em>username</em>.github.io, where <em>username</em> is your username (or organization name) on GitHub.</p>
<p class="details">If the first part of the repository doesn’t exactly match your username, it won’t work, so make sure to get it right.</p>
</li>
<li class="question">
<h4>What git client are you using?</h4>
<ul class="tabs">
<li><a id="option-terminal" href="#terminal-step-1" class="selected">A terminal</a></li>
<li><a id="option-desktop" href="#setup-in-desktop">GitHub Desktop</a></li>
<li><a id="option-newuser" href="#new-user-step-1">I don't know</a></li>
</ul>
</li>
<li id="new-user-step-1" class="option-newuser">
<h4>Download GitHub Desktop</h4>
<p>GitHub Desktop is a great way to use Git and GitHub on macOS and Windows.</p>
<a class="desktop-download" href="https://desktop.github.com"><span class="icon"></span>Download GitHub Desktop</a>
<img src="images/dashboard@2x.png" width="1054" alt="GitHub Desktop screenshot" class="full-size" />
</li>
<li id="terminal-step-1" class="option-terminal">
<h4>Clone the repository</h4>
<p>Go to the folder where you want to store your project, and clone the new repository:</p>
<div class="terminal">
<div class="header"></div>
<div class="shell">
<p><span class="path">~</span><span class="prompt">$</span>git clone https://github.com/<em>username</em>/<em>username</em>.github.io</p>
</div>
</div>
</li>
<li id="setup-in-desktop" class="option-desktop image-right">
<h4>Clone the repository</h4>
<p>Click the "Set up in Desktop" button. When the GitHub desktop app opens, save the project.</p>
<p class="details">If the app doesn't open, launch it and clone the repository from the app.</p>
</li>
<li id="setup-in-desktop" class="option-newuser image-right">
<h4>Clone the repository</h4>
<p>After finishing the installation, head back to GitHub.com and refresh the page. Click the "Set up in Desktop" button. When the GitHub desktop app opens, save the project.</p>
<p class="details">If the app doesn't open, launch it and clone the repository from the app.</p>
</li>
<li class="option-terminal">
<h4>Hello World</h4>
<p>Enter the project folder and add an index.html file:</p>
<div class="terminal">
<div class="header"></div>
<div class="shell">
<p><span class="path">~</span><span class="prompt">$</span>cd <em>username</em>.github.io</p>
<p><span class="path">~</span><span class="prompt">$</span>echo "Hello World" > index.html</p>
</div>
</div>
</li>
<li class="option-desktop option-newuser">
<h4>Create an index file</h4>
<p>Grab your favorite text editor and add an index.html file to your project:</p>
<div class="terminal">
<div class="header">index.html</div>
<code class="shell">
<pre><!DOCTYPE html>
<html>
<body>
<h1>Hello World</h1>
<p>I'm hosted with GitHub Pages.</p>
</body>
</html></pre>
</code>
</li>
<li class="option-terminal">
<h4>Push it</h4>
<p>Add, commit, and push your changes:</p>
<div class="terminal">
<div class="header"></div>
<div class="shell">
<p><span class="path">~</span><span class="prompt">$</span>git add --all</p>
<p><span class="path">~</span><span class="prompt">$</span>git commit -m "Initial commit"</p>
<p><span class="path">~</span><span class="prompt">$</span>git push -u origin main</p>
</div>
</div>
</li>
<li class="option-desktop option-newuser">
<h4>Commit & publish</h4>
<p>Enter the repository, commit your changes, and press the publish button.</p>
<img src="images/desktop-demo@2x.gif" width="841" alt="Demonstration of steps required to create the initial commit and publish the repository in GitHub Desktop" class="macos-drop-shadow" />
</li>
<li class="option-all">
<h4>…and you're done!</h4>
<p>Fire up a browser and go to <strong>https://<em>username</em>.github.io</strong>.</p>
<div class="hero-octicon">
<span class="mega-octicon octicon-check"></span>
</div>
</li>
</ul>
<!-- End of user site tutorial -->
<!-- Project Site tutorial -->
<ul id="project-site" class="tutorial-list wrapper">
<li class="question">
<h4>Use a theme, or start from scratch?</h4>
<p>You have the option to start with one of the pre-built themes,
<br>or to create a site from scratch.
<ul class="tabs">
<li><a id="option-generate" href="#generate-step-1" class="selected">Choose a theme</a></li>
<li><a id="option-vanilla" href="#vanilla-step-1">Start from scratch</a></li>
</ul>
</li>
<li id="generate-step-1" class="option-generate">
<h4>Repository Settings</h4>
<p>Head over to <a href="https://github.com/">GitHub.com</a> and create a new repository, or go to an existing one.
<br><strong>Click on the Settings tab</strong>.</p>
<img src="images/repo-settings@2x.png" width="720" alt="Settings for a repository" />
</li>
<li class="option-generate">
<h4>Theme chooser</h4>
<p>Scroll down to the <strong>GitHub Pages</strong> section. Press <strong>Choose a theme</strong>.</p>
<img src="images/launch-theme-chooser@2x.png" width="720" alt="Automatic Generator button on GitHub.com, Settings" />
</li>
<li class="option-generate">
<h4>Pick a theme</h4>
<p>Choose one of the themes from the carousel at the top.
<br>When you're done, click <strong>Select theme</strong> on the right.</p>
<img src="images/theme-chooser@2x.png" class="full-size" width="720" alt="Choose layout" />
</li>
<li class="option-generate">
<h4>Edit content</h4>
<p>Use the editor to add content to your site.</p>
<img class="full-size" src="images/code-editor@2x.png" width="720" alt="Add content to your GitHub Pages site" />
</li>
<li class="option-generate">
<h4>Commit</h4>
<p>Enter a commit comment and click on <strong>Commit changes</strong> below the editor.</p>
<img class="full-size" src="images/commit-edits@2x.png" width="720" alt="Commit Markdown content to your repository" />
</li>
<!-- Start of vanilla sub tutorial -->
<li id="vanilla-step-1" class="option-vanilla">
<h4>Create an index file</h4>
<p>Head over to <a href="https://github.com/">GitHub.com</a> and <a data-proofer-ignore="true" href="https://github.com/new">create a new repository</a>, or go to an existing one.
<br />Click on the <strong>Create new file</strong> button.</p>
<img src="images/new-create-file@2x.png" width="720" alt="Create a file in your repository" />
</li>
<li class="option-vanilla">
<h4>Hello World</h4>
<p>Name the file <code>index.html</code> and type some HTML content into the editor.</p>
<img
BTLS Certificate Expiry & Recommendations80 days until leaf cert expires — 3 issues to addressREVIEW
Certificate validity
Recommended actions
- Enable HSTS: Strict-Transport-Security: max-age=31536000; includeSubDomains
- Enable DNSSEC on your domain for DNS spoofing protection
- Enable OCSP stapling on your TLS server to remove a CA roundtrip and protect user privacy
A+DNS Records4 A records, 33 ms lookupPASS
| A | 185.199.109.153, 185.199.111.153, 185.199.108.153, 185.199.110.153 |
| AAAA | — |
| CNAME | — |
| NS | dns3.p05.nsone.net, ns-393.awsdns-49.com, ns-692.awsdns-22.net, ns-1339.awsdns-39.org, dns4.p05.nsone.net, ns-1622.awsdns-10.co.uk, dns2.p05.nsone.net, dns1.p05.nsone.net |
| MX | — |
| TXT | SPF v=spf1 a -all |
| CAA | Lookup not available with standard resolver |
CAA record lookup requires a specialized DNS resolver. This check will be available in a future update.
Informational: CAA (Certification Authority Authorization) records weren't checked in this scan.
ARedirect Chain1 redirect(s), 32 ms totalPASS
https://github.io
5 ms · HTTP/1.1
https://pages.github.com/
27 ms · HTTP/1.1 FINAL
| # | URL | Status | Time | Protocol | Server |
|---|---|---|---|---|---|
| 1 | https://github.io | 301 | 5 ms | HTTP/1.1 | Varnish |
| 2 | https://pages.github.com/ | 200 | 27 ms | HTTP/1.1 | GitHub.com |
See the visual redirect chain in the HTTP Probe tab →
A+URL Variantswww/non-www, trailing slash, HTTP→HTTPSPASS
www / non-www
Preferred variant: non-www
HTTP → HTTPS
Consistent
A+Domain Intelligencegithub.io — via MarkMonitor Inc., 13 years, 3 months old, hosted on FastlyPASS
238 days
March 8, 2027
80 days
Issued by Let's Encrypt
13 years, 3 months
Registered March 8, 2013
Status unknown
Protects against DNS spoofing
Fastly
ASN AS54113
185.199.111.153
MarkMonitor Inc.
Expiry timeline
Domain cannot be transferred without explicit unlock from the registrar. This protects against unauthorized transfers.
Registrar lock (clientTransferProhibited et al.) prevents unauthorized domain transfers — strongest defense against domain hijacking.
Source: ICANN / domain-security best practice