Skip to content
https://www.ubuntu.com

Infrastructure

· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.
SCORE
90
GRADE
A
FIX
1
REVIEW
2
PASS
6
INFO
0
Probed from Madrid, Spain
301 Moved Permanently
Checks
9
6 PASS 2 REVIEW 1 FIX
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.

B
URL Variants
www/non-www, trailing slash, HTTP→HTTPS
REVIEW
www/non-www, trailing slash, HTTP→HTTPS
Critical::
Both www and non-www versions serve content
Got: Both variants return 200 Expected: One variant 301-redirects to the other
Info::
HTTP correctly 301-redirects to HTTPS

www / non-www

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

Inconsistent — duplicate content risk

HTTP → HTTPS

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

Consistent

C
TLS Certificate Expiry & Recommendations
Action
22 days until leaf cert expires — 6 issues to address
REVIEW

Certificate validity

22
days left
0d 30d 60d 90d+
Renew soon — under 30 days remaining

Recommended actions

  • Renew certificate — 22 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
A
DNS Records
3 A records, 32 ms lookup
PASS
3 A records, 32 ms lookup
Info::
Resolves to 3 IPv4 address(es)
Got: 185.125.190.20, 185.125.190.21, 185.125.190.29
Info::
Has 3 IPv6 (AAAA) record(s)
Got: 2620:2d:4000:1::27, 2620:2d:4000:1::28, 2620:2d:4000:1::26
Info::
No NS records found
Info::
No MX records — email not configured via DNS
Info::
CAA records not checked
CAA record lookup requires a specialized DNS resolver. This check will be available in a future update.
Info::
No SPF record found in TXT records
SPF helps prevent email spoofing. Add a TXT record starting with 'v=spf1'.
Info::
DNS resolution time: 32 ms
Got: 32 ms
A185.125.190.20, 185.125.190.21, 185.125.190.29
AAAA2620:2d:4000:1::27, 2620:2d:4000:1::28, 2620:2d:4000:1::26
CNAME
NS
MX
TXT
CAALookup not available with standard resolver
Resolved in 32 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.

SPF helps prevent email spoofing. Add a TXT record starting with 'v=spf1'.

Why this matters

Without SPF, receiving servers can't validate sending IPs — your domain is easier to spoof in phishing.

Learn more

SPF complements DMARC. Both should be published. SPF records list authorized sending IPs (e.g., `v=spf1 include:_spf.google.com ~all` for Google Workspace). After publishing, verify in Google Postmaster Tools or mxtoolbox.

Source: RFC 7208 (SPF)

A
Redirect Chain
1 redirect(s), 207 ms total
PASS
1 redirect(s), 207 ms total
Info::
Single redirect
Got: https://www.ubuntu.com → https://ubuntu.com/ (301)
Info::
WWW normalization redirect

https://www.ubuntu.com

93 ms · HTTP/1.1

301

https://ubuntu.com/

114 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://www.ubuntu.com30193 msHTTP/1.1nginx/1.14.0 (Ubuntu)
2https://ubuntu.com/200114 msHTTP/1.1nginx/1.14.0 (Ubuntu)

See the visual redirect chain in the HTTP Probe tab →

A+
IPv6 Readiness
IPv6 reachable (23 ms)
PASS
IPv6 reachable (23 ms)
Info::
IPv6 is configured and reachable at 2620:2d:4000:1::27, 2620:2d:4000:1::28, 2620:2d:4000:1::26
Got: 23 ms connect
IPv6 Ready
AAAA Records 2620:2d:4000:1::27, 2620:2d:4000:1::28, 2620:2d:4000:1::26 Connection Reachable (23 ms)
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
Domain Intelligence
ubuntu.com — via MarkMonitor Inc., 22 years, 2 months old
PASS
ubuntu.com — via MarkMonitor Inc., 22 years, 2 months old
Warning::
Domain expires in 51 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.
Domain expiry

EXPIRED

May 29, 2026

SSL certificate

22 days

Issued by Let's Encrypt

Domain age

22 years, 2 months

Registered May 29, 2004

DNSSEC

Not enabled

Protects against DNS spoofing

Hosting

Unknown

2620:2d:4000:1::26

Registrar

MarkMonitor Inc.

Lock status unknown 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
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 2620:2d:4000:1::26
Data source: rdap (0.1s)

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

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

Connection waterfall

DNS Lookup 32 ms TCP Connect 24 ms TLS Handshake 28 ms Server Processing 25 ms Content Transfer 0 ms
All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback