Infrastructure
· 17 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.BDNSSECUnsigned (DNSSEC not deployed)REVIEW
BReverse DNS0/1 IPs match cert SANREVIEW
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
BTLS Certificate Expiry & Recommendations34 days until leaf cert expires — 2 issues to addressREVIEW
Certificate validity
Recommended actions
- 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
CCDN & DeliveryActionAssets on Fastly (host github.githubassets.com, 66 assets); document served directly from originREVIEW
Asset hosts on a CDN
- github.githubassets.com — Fastly · assets: 66 · Cache Status: HIT, HIT
- avatars.githubusercontent.com — Fastly · assets: 3 · Cache Status: HIT
The heavy static files already ride an edge network, but every visitor still waits on the origin for the HTML itself. Routing the document through the same CDN is usually a config change rather than a migration: a short edge TTL with stale-while-revalidate for cacheable HTML, or edge TLS termination alone when the response is per-user.
BCDN Cache ObservabilityNo CDN cache-status headers in the responseREVIEW
A+DNS Records1 A records, 38 ms lookupPASS
| A | 140.82.121.3 |
| AAAA | — |
| CNAME | — |
| NS | dns1.p08.nsone.net, dns2.p08.nsone.net, ns-421.awsdns-52.com, ns-1707.awsdns-21.co.uk, ns-1283.awsdns-32.org, dns4.p08.nsone.net, ns-520.awsdns-01.net, dns3.p08.nsone.net |
| MX | 0 github-com.mail.protection.outlook.com |
| TXT | 00Dd0000000hHE0=1TBKg000000TN2r TAILSCALE-xOzoDvFUzZr5YYVCQFuD loom-site-verification=f3787154f1154b7880e720a511ea664d adobe-idp-site-verification=b92c9e999aef825edc36e0a3d847d2dbad5b2fc0e05c79ddd7a1... apple-domain-verification=RyQhdzTl6Z6x8ZP4 SPF v=spf1 ip4:192.30.252.0/22 include:spf.protection.outlook.com include:_netblocks... MS=ms58704441 anthropic-domain-verification-4az7qn=if8YWuRRqwLycGJDooumzHtxm stripe-verification=f88ef17321660a01bab1660454192e014defa29ba7b8de9633c69d6b4912... shopify-verification-code=t1YPwcmvnxZyBycaCpk1MPyWoFs72o krisp-domain-verification=ZlyiK7XLhnaoUQb2hpak1PLY7dFkl1WE openai-domain-verification=dv-3nh33eQwdkotMIAzLrIDVZo1 serval-domain-verification-ydryhj=qbkiEakpwEpTvHh5fIiCqtaue calendly-site-verification=at0DQARi7IZvJtXQAWhMqpmIzpvoBNF7aam5VKKxP atlassian-domain-verification=jjgw98AKv2aeoYFxiL/VFaoyPkn3undEssTRuMg6C/3Fp/iqhk... miro-verification=d2e174fdb00c71e0bcf58f8e58c3da2dd80dcfa9 cursor-domain-verification-gtfwmt=1rfLOtiTngX5QSxD5HvNKTvm3 MS=ms44452932 google-site-verification=82Le34Flgtd15ojYhHlGF_6g72muSjamlMVThBOJpks jamf-site-verification=XtaPNIYghF_e_xRDI8CjgQ docusign=087098e3-3d46-47b7-9b4e-8a23028154cd MS=6BF03E6AF5CB689E315FB6199603BABF2C88D805 google-site-verification=UTM-3akMgubp6tQtgEuAkYNYLyYAvpTnnSrDMWoDR3o facebook-domain-verification=39xu4jzl7roi7x0n93ldkxjiaarx50 |
| CAA | Lookup not available with standard resolver |
Multiple A records provide failover if one server goes down.
Single A record means a single point of failure — if that IP goes down, your site is unreachable until DNS TTL expires.
Learn more ▾ ▴
Add multiple A records for round-robin failover, or use a managed DNS provider with health-checked failover (Route 53, Cloudflare, NS1). Short TTL (60-300s) lets clients recover faster on outages.
Source: SRE practice / DNS architecture
A+Subdomain TakeoverNo subdomain takeover risk detectedPASS
ACAA Recordsissue: digicert.com, globalsign.com, letsencrypt.org, sectigo.com | issuewild: digicert.com, letsencrypt.org, sectigo.comPASS
A+Multi-Resolver DNS SpeedMean 19ms across 3 resolvers (spread 40ms)PASS
A+Redirect ChainNo redirects — direct accessPASS
https://github.com/abidullahafridi/Autom...
80 ms · HTTP/1.1 FINAL
| # | URL | Status | Time | Protocol | Server |
|---|---|---|---|---|---|
| 1 | https://github.com/abidullahafridi/Autom... | 200 | 80 ms | HTTP/1.1 | github.com |
A+Crawlabilityrobots.txt present, sitemap with 376 URLsPASS
# If you would like to crawl GitHub contact us via https://support.github.com?tags=dotcom-robots
# We also provide an extensive API: https://docs.github.com
Sitemap: https://github.com/sitemap_marketing.xml
User-agent: GPTBot
User-agent: OAI-SearchBot
User-agent: ClaudeBot
User-agent: anthropic-ai
User-agent: PerplexityBot
Crawl-delay: 1
Allow: /*?tab=achievements&achievement=*
Allow: /marketplace/*?tab=readme$
Allow: /marketplace/*?tab=transparency$
Disallow: /account-login
Disallow: /copilot/
Disallow: /copilot/c/
Disallow: /ekansa/Open-Context-Data
Disallow: /ekansa/opencontext-*
Disallow: /Explodingstuff/
Disallow: /gist/
Disallow: /search/advanced
Disallow: /search$
Disallow: /*/*/pulse_committer_data.json$
Disallow: /*/*/pulse_committer_data.json?*
Disallow: /*/archive/
Disallow: /*/blame/
Disallow: /*/cache/
Disallow: /*/raw/
Disallow: /*/tree/
Disallow: */tarball/
Disallow: */zipball/
Disallow: /.git/
Disallow: */.git/
Disallow: /*.git$
Disallow: /*.atom$
Disallow: /*report-abuse?report=*
Disallow: /*/*/commits/
Disallow: /marketplace/*/*?tab=readme$
Disallow: /marketplace/*/*?tab=transparency$
Disallow: /marketplace/*?*?tab=readme$
Disallow: /marketplace/*?*?tab=transparency$
Disallow: /marketplace/actions?tab=readme$
Disallow: /marketplace/actions?tab=transparency$
Disallow: /marketplace/free-trials?tab=readme$
Disallow: /marketplace/free-trials?tab=transparency$
Disallow: /marketplace/manage?tab=readme$
Disallow: /marketplace/manage?tab=transparency$
Disallow: /marketplace/models?tab=readme$
Disallow: /marketplace/models?tab=transparency$
Disallow: /marketplace/new?tab=readme$
Disallow: /marketplace/new?tab=transparency$
Disallow: /marketplace/publishers?tab=readme$
Disallow: /marketplace/publishers?tab=transparency$
Disallow: /marketplace/recently-added?tab=readme$
Disallow: /marketplace/recently-added?tab=transparency$
Disallow: /biztools$
Disallow: /biztools?*
Disallow: /biztools/*
Disallow: /businesses$
Disallow: /businesses?*
Disallow: /businesses/*
Disallow: /enterprises$
Disallow: /enterprises?*
Disallow: /enterprises/*
Disallow: /organizations$
Disallow: /organizations?*
Disallow: /organizations/*
Disallow: /settings$
Disallow: /settings?*
Disallow: /settings/*
Disallow: /stafftools$
Disallow: /stafftools?*
Disallow: /stafftools/*
Disallow: /users/*/billing$
Disallow: /users/*/billing?*
Disallow: /users/*/billing/*
Disallow: /writing$
Disallow: /writing?*
Disallow: /writing/*
Disallow: /*/*/branches$
Disallow: /*/*/branches?*
Disallow: /*/*/branches/*
Disallow: /*/*/comments$
Disallow: /*/*/comments?*
Disallow: /*/*/comments/*
Disallow: /*/*/compare$
Disallow: /*/*/compare?*
Disallow: /*/*/compare/*
Disallow: /*/*/contributors$
Disallow: /*/*/contributors?*
Disallow: /*/*/contributors/*
Disallow: /*/*/contributors_list$
Disallow: /*/*/contributors_list?*
Disallow: /*/*/contributors_list/*
Disallow: /*/*/contributors-list$
Disallow: /*/*/contributors-list?*
Disallow: /*/*/contributors-list/*
Disallow: /*/*/download$
Disallow: /*/*/download?*
Disallow: /*/*/download/*
Disallow: /*/*/forks$
Disallow: /*/*/forks?*
Disallow: /*/*/forks/*
Disallow: /*/*/graphs$
Disallow: /*/*/graphs?*
Disallow: /*/*/graphs/*
Disallow: /*/*/issues/new$
Disallow: /*/*/issues/new?*
Disallow: /*/*/issues/new/*
Disallow: /*/*/issues/search$
Disallow: /*/*/issues/search?*
Disallow: /*/*/issues/search/*
Disallow: /*/*/milestones/new$
Disallow: /*/*/milestones/new?*
Disallow: /*/*/milestones/new/*
Disallow: /*/*/network$
Disallow: /*/*/network?*
Disallow: /*/*/network/*
Disallow: /*/*/projects$
Disallow: /*/*/projects?*
Disallow: /*/*/projects/*
Disallow: /*/*/pulse$
Disallow: /*/*/pulse?*
Disallow: /*/*/pulse/*
Disallow: /*/*/pulse-new$
Disallow: /*/*/pulse-new?*
Disallow: /*/*/pulse-new/*
Disallow: /*/*/pulse_committer_data$
Disallow: /*/*/pulse_committer_data?*
Disallow: /*/*/pulse_committer_data/*
Disallow: /*/*/pulse_diffstat_summary$
Disallow: /*/*/pulse_diffstat_summary?*
Disallow: /*/*/pulse_diffstat_summary/*
Disallow: /*/*/revisions$
Disallow: /*/*/revisions?*
Disallow: /*/*/revisions/*
Disallow: /*/*/stargazers$
Disallow: /*/*/stargazers?*
Disallow: /*/*/stargazers/*
Disallow: /*/*/tags$
Disallow: /*/*/tags?*
Disallow: /*/*/tags/*
Disallow: /*/*/watchers$
Disallow: /*/*/watchers?*
Disallow: /*/*/watchers/*
Disallow: /*?source=*
Disallow: /*&source=*
Disallow: /*?ref_cta=*
Disallow: /*&ref_cta=*
Disallow: /*?plan=*
Disallow: /*&plan=*
Disallow: /*?return_to=*
Disallow: /*&return_to=*
Disallow: /*?ref_loc=*
Disallow: /*&ref_loc=*
Disallow: /*?setup_organization=*
Disallow: /*&setup_organization=*
Disallow: /*?source_repo=*
Disallow: /*&source_repo=*
Disallow: /*?ref_page=*
Disallow: /*&ref_page=*
Disallow: /*?referrer=*
Disallow: /*&referrer=*
Disallow: /*?report=*
Disallow: /*&report=*
Disallow: /*?author=*
Disallow: /*&author=*
Disallow: /*?since=*
Disallow: /*&since=*
Disallow: /*?until=*
Disallow: /*&until=*
Disallow: /*?tab=*
Disallow: /*&tab=*
Disallow: /*?q=*
Disallow: /*&q=*
User-agent: Bytespider
Disallow: /
User-agent: AdsBot-Google
User-agent: AdsBot-Google-Mobile
Disallow: /account-login
Disallow: /copilot/
Disallow: /copilot/c/
Disallow: /ekansa/Open-Context-Data
Disallow: /ekansa/opencontext-*
Disallow: /Explodingstuff/
Disallow: /gist/
Disallow: /search/advanced
Disallow: /search$
Disallow: /*/*/pulse_committer_data.json$
Disallow: /*/*/pulse_committer_data.json?*
Disallow: /*/archive/
Disallow: /*/blame/
Disallow: /*/cache/
Disallow: /*/raw/
Disallow: /*/tree/
Disallow: */tarball/
Disallow: */zipball/
Disallow: /.git/
Disallow: */.git/
Disallow: /*.git$
Disallow: /*.atom$
Disallow: /*report-abuse?report=*
Disallow: /*/*/commits/
Disallow: /marketplace/*/*?tab=readme$
Disallow: /marketplace/*/*?tab=transparency$
Disallow: /marketplace/*?*?tab=readme$
Disallow: /marketplace/*?*?tab=transparency$
Disallow: /marketplace/actions?tab=readme$
Disallow: /marketplace/actions?tab=transparency$
Disallow: /marketplace/free-trials?tab=readme$
Disallow: /marketplace/free-trials?tab=transparency$
Disallow: /marketplace/manage?tab=readme$
Disallow: /marketplace/manage?tab=transparency$
Disallow: /marketplace/models?tab=readme$
Disallow: /marketplace/models?tab=transparency$
Disallow: /marketplace/new?tab=readme$
Disallow: /marketplace/new?tab=transparency$
Disallow: /marketplace/publishers?tab=readme$
Disallow: /marketplace/publishers?tab=transparency$
Disallow: /marketplace/recently-added?tab=readme$
Disallow: /marketplace/recently-added?tab=transparency$
Disallow: /biztools$
Disallow: /biztools?*
Disallow: /biztools/*
Disallow: /businesses$
Disallow: /businesses?*
Disallow: /businesses/*
Disallow: /enterprises$
Disallow: /enterprises?*
Disallow: /enterprises/*
Disallow: /organizations$
Disallow: /organizations?*
Disallow: /organizations/*
Disallow: /settings$
Disallow: /settings?*
Disallow: /settings/*
Disallow: /stafftools$
Disallow: /stafftools?*
Disallow: /stafftools/*
Disallow: /users/*/billing$
Disallow: /users/*/billing?*
Disallow: /users/*/billing/*
Disallow: /writing$
Disallow: /writing?*
Disallow: /writing/*
Disallow: /*/*/branches$
Disallow: /*/*/branches?*
Disallow: /*/*/branches/*
Disallow: /*/*/comments$
Disallow: /*/*/comments?*
Disallow: /*/*/comments/*
Disallow: /*/*/compare$
Disallow: /*/*/compare?*
Disallow: /*/*/compare/*
Disallow: /*/*/contributors$
Disallow: /*/*/contributors?*
Disallow: /*/*/contributors/*
Disallow: /*/*/contributors_list$
Disallow: /*/*/contributors_list?*
Disallow: /*/*/contributors_list/*
Disallow: /*/*/contributors-list$
Disallow: /*/*/contributors-list?*
Disallow: /*/*/contributors-list/*
Disallow: /*/*/download$
Disallow: /*/*/download?*
Disallow: /*/*/download/*
Disallow: /*/*/forks$
Disallow: /*/*/forks?*
Disallow: /*/*/forks/*
Disallow: /*/*/graphs$
Disallow: /*/*/graphs?*
Disallow: /*/*/graphs/*
Disallow: /*/*/issues/new$
Disallow: /*/*/issues/new?*
Disallow: /*/*/issues/new/*
Disallow: /*/*/issues/search$
Disallow: /*/*/issues/search?*
Disallow: /*/*/issues/search/*
Disallow: /*/*/milestones/new$
Disallow: /*/*/milestones/new?*
Disallow: /*/*/milestones/new/*
Disallow: /*/*/network$
Disallow: /*/*/network?*
Disallow: /*/*/network/*
Disallow: /*/*/projects$
Disallow: /*/*/projects?*
Disallow: /*/*/projects/*
Disallow: /*/*/pulse$
Disallow: /*/*/pulse?*
Disallow: /*/*/pulse/*
Disallow: /*/*/pulse-new$
Disallow: /*/*/pulse-new?*
Disallow: /*/*/pulse-new/*
Disallow: /*/*/pulse_committer_data$
Disallow: /*/*/pulse_committer_data?*
Disallow: /*/*/pulse_committer_data/*
Disallow: /*/*/pulse_diffstat_summary$
Disallow: /*/*/pulse_diffstat_summary?*
Disallow: /*/*/pulse_diffstat_summary/*
Disallow: /*/*/revisions$
Disallow: /*/*/revisions?*
Disallow: /*/*/revisions/*
Disallow: /*/*/stargazers$
Disallow: /*/*/stargazers?*
Disallow: /*/*/stargazers/*
Disallow: /*/*/tags$
Disallow: /*/*/tags?*
Disallow: /*/*/tags/*
Disallow: /*/*/watchers$
Disallow: /*/*/watchers?*
Disallow: /*/*/watchers/*
Disallow: /*?source=*
Disallow: /*&source=*
Disallow: /*?ref_cta=*
Disallow: /*&ref_cta=*
Disallow: /*?plan=*
Disallow: /*&plan=*
Disallow: /*?return_to=*
Disallow: /*&return_to=*
Disallow: /*?ref_loc=*
Disallow: /*&ref_loc=*
Disallow: /*?setup_organization=*
Disallow: /*&setup_organization=*
Disallow: /*?source_repo=*
Disallow: /*&source_repo=*
Disallow: /*?ref_page=*
Disallow: /*&ref_page=*
Disallow: /*?referrer=*
Disallow: /*&referrer=*
Disallow: /*?report=*
Disallow: /*&report=*
Disallow: /*?author=*
Disallow: /*&author=*
Disallow: /*?since=*
Disallow: /*&since=*
Disallow: /*?until=*
Disallow: /*&until=*
Disallow: /*?tab=*
Disallow: /*&tab=*
Disallow: /*?q=*
Disallow: /*&q=*
User-agent: bingbot
User-agent: adidxbot
User-agent: BingPreview
Disallow: /ekansa/Open-Context-Data
Disallow: /ekansa/opencontext-*
Disallow: /account-login
Disallow: */tarball/
Disallow: */zipball/
Disallow: /Explodingstuff/
Disallow: /copilot/
Disallow: /copilot/c/
User-agent: baidu
crawl-delay: 1
User-agent: *
Allow: /*?tab=achievements&achievement=*
Allow: /marketplace/*?tab=readme$
Allow: /marketplace/*?tab=transparency$
Disallow: /account-login
Disallow: /copilot/
Disallow: /copilot/c/
Disallow: /ekansa/Open-Context-Data
Disallow: /ekansa/opencontext-*
Disallow: /Explodingstuff/
Disallow: /gist/
Disallow: /search/advanced
Disallow: /s
AURL Variantswww/non-www, trailing slash, HTTP→HTTPSPASS
www / non-www
Preferred variant: non-www
Trailing Slash
Inconsistent — duplicate content risk
HTTP → HTTPS
Consistent
A+Domain Intelligencegithub.com — via MarkMonitor Inc., 19 years, 3 months old, hosted on GitHub PagesPASS
714 days
October 9, 2028
34 days
Issued by Sectigo Limited
19 years, 3 months
Registered October 9, 2007
Not enabled
Protects against DNS spoofing
GitHub Pages
ASN AS36459
140.82.121.4
MarkMonitor Inc.
Expiry timeline
Recommended actions
- Enable DNSSEC to protect visitors from DNS spoofing
- Enable registrar lock (clientTransferProhibited) to block unauthorized domain transfers
DNSSEC protects against DNS spoofing attacks. While not required, enabling DNSSEC adds an additional layer of security. Contact your DNS provider to enable it.
Without DNSSEC, an attacker who can poison your DNS can hijack your domain — and SSL certs alone don't stop them.
Learn more ▾ ▴
DNSSEC adds cryptographic signatures to DNS records, preventing forged responses from poisoning resolver caches. Without it, an attacker who controls the network path can redirect your domain to a malicious server before any HTTPS handshake happens. Most modern registrars (Cloudflare, Google Domains, Route 53) enable it with one toggle.
Source: ICANN / RFC 4033
The domain can be transferred without an unlock step. Enable registrar lock (clientTransferProhibited) in your registrar's control panel to protect against unauthorized or accidental transfers.
Without registrar lock, an attacker who phishes your registrar credentials can transfer the domain in minutes — total brand hijack.
Learn more ▾ ▴
Registrar lock (clientTransferProhibited, clientUpdateProhibited, clientDeleteProhibited) requires extra verification before any transfer/update/delete. Every major registrar offers it free. Combined with 2FA on your registrar account, it's the strongest defense against domain hijacking.
Source: ICANN / domain-security best practice