Skip to content
https://ubuntu.com

Infrastructure

· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.
SCORE
86
GRADE
B
FIX
3
REVIEW
0
PASS
6
INFO
0
Probed from Santa Clara, United States
200 OK
Checks
9
6 PASS 3 FIX
F
IPv6 Readiness
Action
IPv6 records exist but unreachable
FIX
IPv6 records exist but unreachable
Warning::
IPv6 DNS records exist but server is not reachable
Having AAAA records but an unreachable server is worse than no AAAA — clients may experience delays before falling back to IPv4.
Got: 2620:2d:4000:1::27, 2620:2d:4000:1::28, 2620:2d:4000:1::26
Info::
IPv6 connection error
Got: dial tcp6 [2620:2d:4000:1::27]:443: connect: network is unreachable
IPv6 Misconfigured
AAAA Records 2620:2d:4000:1::27, 2620:2d:4000:1::28, 2620:2d:4000:1::26 Connection UNREACHABLE

Having AAAA records but an unreachable server is worse than no AAAA — clients may experience delays before falling back to IPv4.

Why this matters

Advertising IPv6 (AAAA records) without a reachable server means IPv6-preferring clients silently fail every connection.

Learn more

Modern browsers prefer IPv6 if AAAA exists (Happy Eyeballs algorithm). If the IPv6 server isn't reachable, browsers fall back to IPv4 — but with seconds of added latency per request. Either fix IPv6 reachability or remove the AAAA records.

Source: RFC 8305 (Happy Eyeballs)

D
TLS Certificate Expiry & Recommendations
Action
13 days until leaf cert expires — 6 issues to address
FIX

Certificate validity

13
days left
0d 30d 60d 90d+
Renew urgently — under 14 days remaining

Recommended actions

  • Renew certificate — 13 days remaining
  • Extend HSTS max-age to at least 31536000 (1 year) to meet the preload list criteria
  • Add includeSubDomains to the HSTS directive
  • Add the preload directive and submit to hstspreload.org once max-age + includeSubDomains are in place
  • 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
D
CDN & Delivery
Action
No CDN detected
FIX
No CDN detected
Warning::
No CDN detected
A CDN can significantly improve load times for users around the world by caching content at edge nodes closer to them.
No CDN detected

Consider using a CDN to improve global delivery speed and reduce origin load.

A+
DNS Records
3 A records, 144 ms lookup
PASS
3 A records, 144 ms lookup
Info::
Resolves to 3 IPv4 address(es)
Got: 185.125.190.29, 185.125.190.21, 185.125.190.20
Info::
Has 3 IPv6 (AAAA) record(s)
Got: 2620:2d:4000:1::27, 2620:2d:4000:1::28, 2620:2d:4000:1::26
Info::
3 nameserver(s) configured
Got: ns3.canonical.com, ns1.canonical.com, ns2.canonical.com
Info::
1 mail exchanger(s) configured
Info::
CAA records not checked
CAA record lookup requires a specialized DNS resolver. This check will be available in a future update.
Info::
SPF record present in TXT
Info::
DNS resolution time: 144 ms
Got: 144 ms
A185.125.190.29, 185.125.190.21, 185.125.190.20
AAAA2620:2d:4000:1::27, 2620:2d:4000:1::28, 2620:2d:4000:1::26
CNAME
NSns3.canonical.com, ns1.canonical.com, ns2.canonical.com
MX
10 mx.ubuntu.com
TXT
forward-email-site-verification=6IsURgl2t7
google-site-verification=8CcvY6fsgRbiFk2nyEaiA9rE-ykXOcWUPjJKlO6P4vk
SPF v=spf1 include:_spf.canonical.com include:spf.forwardemail.net ~all
CAALookup not available with standard resolver
Resolved in 144 ms

CAA record lookup requires a specialized DNS resolver. This check will be available in a future update.

Why this matters

Informational: CAA (Certification Authority Authorization) records weren't checked in this scan.

A+
Redirect Chain
No redirects — direct access
PASS
No redirects — direct access
Info::
No redirects — direct access
Got: https://ubuntu.com

https://ubuntu.com

637 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://ubuntu.com200637 msHTTP/1.1nginx/1.14.0 (Ubuntu)
A+
Crawlability
robots.txt present, sitemap with 15 URLs
PASS
robots.txt present, sitemap with 15 URLs
Info::
robots.txt is present
Got: 5262 bytes
Info::
sitemap.xml is present
Info::
sitemap.xml is valid XML
Info::
sitemap.xml contains 15 entries
Info::
Sitemap index with 15 child sitemaps
Info::
robots.txt references sitemap
robots.txt 200 OK
Size 5262 B Sitemaps referenced 11 User-agents *, ChatGPT-User, GPTBot, PerplexityBot, ClaudeBot, Claude-Web Blocking No — crawling allowed
# ===========================================
# ubuntu.com robots.txt
# Strategy: 
#   - Block private/transactional/search paths for all.
#   - Group major AI Retrieval & Crawling bots to optimize crawl budget.
#   - Allow high-value product/doc paths; block noise.
# ===========================================

# ===========================================
# DEFAULT RULES — all crawlers
# ===========================================
User-Agent: *
Disallow: /search
Disallow: /search*
Disallow: /*/search*
Disallow: /account
Disallow: /account/*
Disallow: /login
Disallow: /logout
Disallow: /pro/dashboard
Disallow: /pro/users
Disallow: /pro/account-users
Disallow: /pro/subscribe
Disallow: /pro/activate
Disallow: /pro/attach
Disallow: /pro/offer
Disallow: /pro/offers
Disallow: /pro/renewals/
Disallow: /pro/contracts/
Disallow: /pro/trial/
Disallow: /pro/set-auto-renewal
Disallow: /pro/user-subscriptions
Disallow: /pro/distributor/users
Disallow: /pro/distributor/invoice
Disallow: /pro/distributor/thank-you
Disallow: /account.json
Disallow: /mirrors.json
Disallow: /pro/subscriptions.json
Disallow: /pro/offers.json
Disallow: /pro/channel-offers.json
Disallow: /thank-you
Disallow: /*/thank-you
Disallow: /blog/draft-blogs
Disallow: /blog/draft-blogs/*
Disallow: /tests/
Disallow: /tests/*
Disallow: /sentry-debug
Disallow: /mobile
Disallow: /mobile/*
Disallow: /phone
Disallow: /phone/*
Disallow: /tablet
Disallow: /tablet/*
Disallow: /tv
Disallow: /tv/*
Disallow: /devices
Disallow: /devices/*
Disallow: /credentials/exam*
Crawl-delay: 1

# ===========================================
# AI OPTIMIZED RULES
# Includes: OpenAI (Browsing & Crawling), Perplexity, and Anthropic
# ===========================================
User-Agent: ChatGPT-User
User-Agent: GPTBot
User-Agent: PerplexityBot
User-Agent: ClaudeBot
User-Agent: Claude-Web

# Nudge toward Markdown endpoints
Allow: /*?format=md

# High-value Content Priority
Allow: /server
Allow: /desktop
Allow: /cloud
Allow: /openstack
Allow: /kubernetes
Allow: /ceph
Allow: /containers
Allow: /core
Allow: /ai
Allow: /pro
Allow: /landscape
Allow: /security
Allow: /internet-of-things
Allow: /embedded
Allow: /hpc
Allow: /real-time
Allow: /confidential-computing
Allow: /enterprise-store
Allow: /kernel
Allow: /toolchains
Allow: /robotics
Allow: /certified
Allow: /about
Allow: /community
Allow: /download
Allow: /pricing
Allow: /training
Allow: /credentials
Allow: /support
Allow: /managed
Allow: /managed-infrastructure
Allow: /aws
Allow: /azure
Allow: /gcp
Allow: /dell
Allow: /ibm
Allow: /nvidia
Allow: /hpe
Allow: /supermicro
Allow: /blender
Allow: /blog
Allow: /tutorials
Allow: /appliance
Allow: /cpu-compatibility
Allow: /what-is-enterprise-linux

# Block "Noise" (Forms, fragments, and archives that exhaust context windows)
Disallow: /search
Disallow: /search*
Disallow: /*/search*
Disallow: /account
Disallow: /account/*
Disallow: /account.json
Disallow: /mirrors.json
Disallow: /login
Disallow: /logout
Disallow: /contact-us
Disallow: /contact-us/*
Disallow: /*/contact-us
Disallow: /thank-you
Disallow: /*/thank-you
Disallow: /engage
Disallow: /engage/*
Disallow: /takeovers
Disallow: /takeovers.json
Disallow: /templates/
Disallow: /frame
Disallow: /marketo/submit
Disallow: /blog/feed
Disallow: /blog/archives
Disallow: /blog/tag/
Disallow: /blog/author/
Disallow: /blog/topic/
Disallow: /blog/group/
Disallow: /blog/latest-news
Disallow: /blog/events-and-webinars
Disallow: /blog/draft-blogs
Disallow: /blog/draft-blogs/*
Disallow: /engage/resources.json
Disallow: /engage/metadata.json
Disallow: /pro/dashboard
Disallow: /pro/users
Disallow: /pro/account-users
Disallow: /pro/subscribe
Disallow: /pro/activate
Disallow: /pro/attach
Disallow: /pro/offer
Disallow: /pro/offers
Disallow: /pro/renewals/
Disallow: /pro/contracts/
Disallow: /pro/trial/
Disallow: /pro/set-auto-renewal
Disallow: /pro/user-subscriptions
Disallow: /pro/subscriptions.json
Disallow: /pro/offers.json
Disallow: /pro/channel-offers.json
Disallow: /pro/distributor/users
Disallow: /pro/distributor/invoice
Disallow: /pro/distributor/thank-you
Disallow: /subscription-centre
Disallow: /rfp
Disallow: /tests/
Disallow: /tests/*
Disallow: /_image-testing/
Disallow: /sentry-debug
Disallow: /credentials/exam*
Disallow: /mobile
Disallow: /mobile/*
Disallow: /phone
Disallow: /phone/*
Disallow: /tablet
Disallow: /tablet/*
Disallow: /tv
Disallow: /tv/*
Disallow: /devices
Disallow: /devices/*
Disallow: /kubeconeurope2020
Disallow: /masters-conference

# Performance
Crawl-delay: 2

# ===========================================
# SITEMAPS
# ===========================================
Sitemap: https://ubuntu.com/sitemap.xml

# High-Value Content Trees (Prioritized for AI Crawlers)
Sitemap: https://ubuntu.com/sitemap_tree.xml
Sitemap: https://ubuntu.com/blog/sitemap.xml
Sitemap: https://ubuntu.com/tutorials/sitemap.xml
Sitemap: https://ubuntu.com/server/docs/doc-sitemap.xml
Sitemap: https://ubuntu.com/openstack/docs/sitemap.xml
Sitemap: https://ubuntu.com/ceph/docs/sitemap.xml
Sitemap: https://ubuntu.com/security/notices/sitemap.xml
Sitemap: https://ubuntu.com/security/cves/sitemap.xml
Sitemap: https://ubuntu.com/security/vulnerabilities/sitemap.xml
Sitemap: https://ubuntu.com/community/docs/sitemap.xml

A+
URL Variants
www/non-www, trailing slash, HTTP→HTTPS
PASS
www/non-www, trailing slash, HTTP→HTTPS
Info::
www/non-www redirect configured correctly (preferred: non-www)
Info::
HTTP correctly 301-redirects to HTTPS

www / non-www

301https://www.ubuntu.com/
200https://ubuntu.com/

Preferred variant: non-www

HTTP → HTTPS

301http://ubuntu.com/ https://ubuntu.com/

Consistent

A
Domain Intelligence
ubuntu.com — via MarkMonitor Inc., 22 years, 2 months old, hosted on CANONICAL-AS, GB
PASS
ubuntu.com — via MarkMonitor Inc., 22 years, 2 months old, hosted on CANONICAL-AS, GB
Warning::
Domain expires in 43 days
Consider enabling auto-renewal to prevent accidental expiration.
Got: Expires May 29, 2026
Info::
DNSSEC is not enabled
DNSSEC protects against DNS spoofing attacks. While not required, enabling DNSSEC adds an additional layer of security. Contact your DNS provider to enable it.
Info::
Registrar: MarkMonitor Inc.
Warning::
Registrar lock is NOT enabled
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.
Info::
Hosting: CANONICAL-AS, GB
Got: AS41231
Domain expiry

EXPIRED

May 29, 2026

SSL certificate

13 days

Issued by Let's Encrypt

Domain age

22 years, 2 months

Registered May 29, 2004

DNSSEC

Not enabled

Protects against DNS spoofing

Hosting

CANONICAL-AS, GB

ASN AS41231

185.125.190.21

Registrar

MarkMonitor Inc.

Unlocked 3 NS records
Expiry timeline
Today
+1 year
Domain expiry SSL expiry Danger zone (≤30 days)
Recommended actions
  • Domain has EXPIRED — renew immediately to avoid total site outage
  • Renew the TLS certificate or verify auto-renewal is working
  • Enable DNSSEC to protect visitors from DNS spoofing
  • Enable registrar lock (clientTransferProhibited) to block unauthorized domain transfers
Registrar MarkMonitor Inc.
Created May 29, 2004 (22 years, 2 months ago)
Expires May 29, 2026 (1 months)
Last Updated April 27, 2024
Name Servers ns1.canonical.com, ns2.canonical.com, ns3.canonical.com
DNSSEC Not enabled
Hosting
IP Address 185.125.190.21
ASN AS41231 (CANONICAL-AS, GB)
Provider CANONICAL-AS, GB
Data source: rdap (0.3s)

Consider enabling auto-renewal to prevent accidental expiration.

Why this matters

Domain expiry approaching — renew immediately and ensure auto-renew + alerting are configured.

Source: ICANN renewal policy

DNSSEC protects against DNS spoofing attacks. While not required, enabling DNSSEC adds an additional layer of security. Contact your DNS provider to enable it.

Why this matters

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.

Why this matters

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

A
HTTP Probe Timing
Total 752 ms — DNS, TCP, TLS, TTFB, content transfer breakdown
PASS
DNS Lookup DNS Lookup — time to resolve the domain name to an IP address.
144 ms
TCP Connect TCP Connect — time to establish a TCP connection to the server.
135 ms
TLS Handshake TLS Handshake — time to complete the HTTPS encryption handshake.
136 ms
Time to First Byte Time to First Byte — how long the server takes to respond with the first byte of data.
548 ms
Total Time Total request time from DNS lookup through full response.
752 ms

Connection waterfall

DNS Lookup 144 ms TCP Connect 135 ms TLS Handshake 136 ms Server Processing 133 ms Content Transfer 204 ms
All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback