Skip to content
https://fastpanel.direct

Infrastructure

· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.
SCORE
90
GRADE
A
FIX
0
REVIEW
2
PASS
7
INFO
0
Probed from Madrid, Spain
200 OK
Checks
9
7 PASS 2 REVIEW
C
IPv6 Readiness
Action
No IPv6 support
REVIEW
No IPv6 support
Info::
No IPv6 (AAAA) records found
IPv6 support is increasingly important for global accessibility. About 40% of internet users have IPv6 connectivity.
No IPv6 Support
About 40% of internet users have IPv6. Consider adding AAAA records.

IPv6 support is increasingly important for global accessibility. About 40% of internet users have IPv6 connectivity.

Why this matters

No AAAA records — same impact as 'no IPv6 (AAAA) records'; IPv6-preferring clients pay extra latency falling back to IPv4.

Source: Google IPv6 stats

B
TLS Certificate Expiry & Recommendations
70 days until leaf cert expires — 3 issues to address
REVIEW

Certificate validity

70
days left
0d 30d 60d 90d+

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 Records
2 A records, 37 ms lookup
PASS
2 A records, 37 ms lookup
Info::
Resolves to 2 IPv4 address(es)
Got: 172.66.175.49, 104.20.27.99
Info::
No IPv6 (AAAA) records
Info::
2 nameserver(s) configured
Got: isla.ns.cloudflare.com, art.ns.cloudflare.com
Info::
5 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: 37 ms
Got: 37 ms
A172.66.175.49, 104.20.27.99
AAAA
CNAME
NSisla.ns.cloudflare.com, art.ns.cloudflare.com
MX
1 aspmx.l.google.com
5 alt2.aspmx.l.google.com
5 alt1.aspmx.l.google.com
10 alt3.aspmx.l.google.com
10 alt4.aspmx.l.google.com
TXT
SPF v=spf1 ip4:46.36.217.34 ip4:5.101.113.229 ip4:5.101.113.238 ip4:5.101.125.98 ip6...
cryptomus=350b6a53
google-site-verification=FQNZ8H7z4ju5JjZBseiR25jyoFUZLpOzwJkw5K22dVw
CAALookup not available with standard resolver
Resolved in 37 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://fastpanel.direct

https://fastpanel.direct

128 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://fastpanel.direct200128 msHTTP/1.1cloudflare
A+
Crawlability
robots.txt present, sitemap with 27 URLs
PASS
robots.txt present, sitemap with 27 URLs
Info::
robots.txt is present
Got: 10240 bytes
Info::
sitemap.xml is present
Info::
sitemap.xml is valid XML
Info::
sitemap.xml contains 27 entries
Info::
robots.txt does not reference a sitemap
Add a 'Sitemap:' directive to robots.txt so search engines can discover your sitemap.

Add a 'Sitemap:' directive to robots.txt so search engines can discover your sitemap.

Why this matters

robots.txt omits Sitemap: directive — crawlers must fetch /sitemap.xml by convention; reliable but missing the explicit hint.

Source: sitemaps.org

robots.txt 200 OK
Size 10240 B Sitemaps referenced 0 User-agents Blocking No — crawling allowed
<!DOCTYPE html>
<html lang="en">


<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    
    
    <title>404 page - FASTPANEL® </title>
    
    
    <meta name="description" content="not_found.description%!(EXTRA string=robots.txt)">
    
    <meta name="robots" content="noindex,nofollow">
    
    <meta property="og:title" content="404 page - FASTPANEL® ">
    <meta property="og:description"
          content="not_found.description%!(EXTRA string=robots.txt)">

    <meta property="og:image" content="https://fastpanel.direct/assets/social_preview/general.png">
    
    <meta property="og:url" content="https://fastpanel.direct/ssl">
    <meta property="og:type" content="website">
    <meta property="og:site_name" content="FASTPANEL ®">
    
    <meta property="og:locale" content="en_US" />
    <meta property="og:locale:alternate" content="de_DE" />
    <meta property="og:locale:alternate" content="et_EE" />
    
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="404 page - FASTPANEL® ">
    <meta name="twitter:description"
          content="not_found.description%!(EXTRA string=robots.txt)">
    <meta name="twitter:image" content="https://fastpanel.direct/assets/social_preview/general.png">
    <meta name="twitter:site" content="@@fastpanel_news">
    <meta name="twitter:creator" content="@@fastpanel_news">
    
    <script>
        (function(w,d, s, l, i){
            w[l]=w[l]||[];
            w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});
            var f=d.getElementsByTagName(s)[0],
                j=d.createElement(s),
                dl=l!='dataLayer' ? '&l='+l : '';
            j.async=true;
            j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
            f.parentNode.insertBefore(j, f);
        })(window, document, 'script', 'dataLayer', 'GTM-MVPZP3G');
    </script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){ dataLayer.push(arguments); }
    </script>
    
    
    <script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "WebSite",
            "name": "404 page - FASTPANEL® ",
			"url": "https://fastpanel.direct/ssl",
			"description": "not_found.description%!(EXTRA string=robots.txt)",
			"publisher": {
				"@type": "Organization",
				"name": "FASTPANEL",
				"logo": "https://fastpanel.direct/assets/images/partner-materials/logos/svg/fastpanel_icon_blue.svg"
			},
			"breadcrumb": {
				"@type": "BreadcrumbList",
				"itemListElement": [
					{
						"@type": "ListItem",
						"position": 1,
						"name": "Home",
						"item": "https://fastpanel.direct/"
					},
					{
						"@type": "ListItem",
						"position": 2,
						"name": "not_found.head.title",
						"item": "https://fastpanel.direct/\/robots.txt"
					}
				]
			}
		}
    </script>
    
    <link rel="icon" type="image/x-icon" sizes="16x16 48x48" href="./favicon.ico">
    <link rel="icon" type="image/svg+xml" href="/assets/images/favicon.svg">
    
    <link rel="preload" href="/assets/fonts/Onest-Regular.woff2" as="font" type="font/woff"
          crossorigin="anonymous">
    <link rel="preload" href="/assets/fonts/Onest-Medium.woff2" as="font" type="font/woff"
          crossorigin="anonymous">
    
    <link rel="stylesheet" href="/css/output.css">
    
    <script defer src="/js/alpine.min.js"></script>
</head>


<body x-data="{showMenu : false, scrolled: false}" :class="{ 'overflow-hidden': showMenu }">

	
    
    <noscript>
        <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MVPZP3G"
                height="0" width="0"
                style="display:none;visibility:hidden"></iframe>
    </noscript>

    
<script async src="https://servedby.revive-adserver.net/asyncjs.php"></script>
<ins data-revive-zoneid="27002" data-revive-id="727bec5e09208690b050ccfc6a45d384"></ins>

    
    
    <header x-ref="header" x-init="initialTop = $el.offsetTop" @scroll.window="scrolled = window.scrollY > initialTop"
            :class="scrolled ? 'fixed bg-surface/80 backdrop-blur-[12.5px]' : 'bg-transparent'"
            class="top-0 right-0 left-0 z-30 py-2 xl:py-[10px] transition-colors duration-300">
        <div class="container">
            <div class="flex justify-between items-center gap-8 lg:gap-4 xl:gap-8">
                <div class="block xl:hidden">
                    <a href="/">
                        <img src="/assets/images/logo_mobile.svg" alt="kodu_cloud_logo_header" width="170" height="20">
                    </a>
                </div>
                <div class="hidden xl:flex gap-8 items-center">
                    <a href="/">
                        <img src="/assets/images/logo_web.svg" alt="kodu_cloud_logo_header" width="190" height="22">
                    </a>
                    <nav class="flex items-center">
                        
                        <div class="flex justify-center">
                            <div x-data="dropdown()" x-init="dropdown()" x-on:keydown.escape.prevent.stop="close($refs.button)"
                                 x-on:focusin.window="! $refs.panel.contains($event.target) && close()" x-id="['dropdown-button']"
                                 class="relative">
                                
                                <button x-ref="button" x-on:click="toggle()" :aria-expanded="open"
                                        :aria-controls="$id('dropdown-button')" type="button"
                                        class="relative flex items-center whitespace-nowrap justify-center gap-2 py-2 rounded-lg shadow-sm bg-transparent hover:bg-g-2 text-primary px-3 font-medium cursor-pointer">
                                    <span>Services</span>
                                    
                                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="#8B8C90" class="size-4">
                                        <path fill-rule="evenodd"
                                              d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z"
                                              clip-rule="evenodd" />
                                    </svg>
                                </button>

                                
                                <template x-if="true">
                                    <div x-ref="panel" x-show="open" x-transition.origin.top.left x-on:click.outside="close($refs.button)"
                                         :id="$id('dropdown-button')"
                                         class="absolute left-0 min-w-60 rounded-xl shadow-dropdown mt-2 z-10 origin-top-left bg-g-2 p-1 outline-none">
                                        <a href="/get-license" @click="close($refs.button)"
                                            class="text-sm px-[10px] py-3 w-full flex items-center gap-4 rounded-lg transition-colors text-left text-primary hover:bg-g-3 focus-visible:bg-g-3 disabled:opacity-50 disabled:cursor-not-allowed">
                                            <img width="20" height="20" loading="lazy" src="/assets/icons/license.svg" alt="server_icon">
                                            Get license
                                        </a>
                                        <a href="/ssl" @click="close($refs.button)"
                                           class="text-sm px-[10px] py-3 w-full flex items-center gap-4 rounded-lg transition-colors text-left text-primary hover:bg-g-3 focus-visible:bg-g-3 disabled:opacity-50 disabled:cursor-not-allowed">
                                            <img width="20" height="20" loading="lazy" src="/assets/icons/fastssl.svg" alt="ssl_icon">
                                            SSL certificates
                                        </a>
                                        <a href="/backup" @click="close($refs.button)"
                                           class="text-sm px-[10px] py-3 w-full flex items-center gap-4 rounded-lg transition-colors text-left text-primary hover:bg-g-3 focus-visible:bg-g-3 disabled:opacity-50 disabled:cursor-not-allowed">
                                            <img width="20" height="20" loading="lazy" src="/assets/icons/backup_storage_spaces.svg"
                                                 alt="backup_icon">
                                            Backup storage spaces
                                        </a>
                                        <a href="/server-help" @click="close($refs.button)"
                                           class="text-sm px-[10px] py-3 w-full flex items-center gap-4 rounded-lg transition-colors text-left text-primary hover:bg-g-3 focus-visible:bg-g-3 disabled:opacity-50 disabled:cursor-not-allowed">
                                            <img width="20" height="20" loading="lazy" src="/assets/icons/server_help.svg" alt="server_icon">
                                            Server help
                                        </a>

                                    </div>
                                </template>
                            </div>
                        </div>
                        <a href="/partners" class="py-2 px-3 rounded-lg bg-transparent hover:bg-g-2 text-primary font-medium">
                            For partners
                        </a>
                        <a href="https://kb.fastpanel.direct/" target="_blank"
                           class="py-2 px-3 rounded-lg bg-transparent hover:bg-g-2 text-primary font-medium lg:hidden xl:inline">
                            Knowledge base
                        </a>
                        <a href="https://fastpanel.cloud/" target="_blank"
                           class="py-2 px-3 rounded-lg bg-transparent hover:bg-g-2 text-primary font-medium lg:hidden xl:inline">
                            VPN
                        </a>
                    </nav>
                </div>
                <div class="flex items-center justify-between gap-5">
 
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.fastpanel.direct/
200https://fastpanel.direct/

Preferred variant: non-www

HTTP → HTTPS

301http://fastpanel.direct/ https://fastpanel.direct/

Consistent

A
Domain Intelligence
fastpanel.direct — via NameCheap, Inc., 10 years old, hosted on Cloudflare
PASS
fastpanel.direct — via NameCheap, Inc., 10 years old, hosted on Cloudflare
Warning::
Domain expires in 32 days
Consider enabling auto-renewal to prevent accidental expiration.
Got: Expires May 24, 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: NameCheap, 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: Cloudflare
Got: AS13335
Domain expiry

EXPIRED

May 24, 2026

SSL certificate

70 days

Issued by Google Trust Services

Domain age

10 years

Registered May 24, 2016

DNSSEC

Not enabled

Protects against DNS spoofing

Hosting

Cloudflare

ASN AS13335

104.20.27.99

Registrar

NameCheap, Inc.

Unlocked 2 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
  • Enable DNSSEC to protect visitors from DNS spoofing
  • Enable registrar lock (clientTransferProhibited) to block unauthorized domain transfers
Registrar NameCheap, Inc.
Created May 24, 2016 (10 years ago)
Expires May 24, 2026 (1 months)
Last Updated November 9, 2022
Name Servers art.ns.cloudflare.com, isla.ns.cloudflare.com
DNSSEC Not enabled
Hosting
IP Address 104.20.27.99
ASN AS13335 (CLOUDFLARENET - Cloudflare, Inc., US)
Provider Cloudflare
Data source: rdap (0.5s)

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 350 ms — DNS, TCP, TLS, TTFB, content transfer breakdown
PASS
DNS Lookup DNS Lookup — time to resolve the domain name to an IP address.
40 ms
TCP Connect TCP Connect — time to establish a TCP connection to the server.
17 ms
TLS Handshake TLS Handshake — time to complete the HTTPS encryption handshake.
23 ms
Time to First Byte Time to First Byte — how long the server takes to respond with the first byte of data.
350 ms
Total Time Total request time from DNS lookup through full response.
350 ms

Connection waterfall

DNS Lookup 40 ms TCP Connect 17 ms TLS Handshake 23 ms Server Processing 270 ms Content Transfer 1 ms
A
CDN & Delivery
Cloudflare (DYNAMIC)
PASS
Cloudflare (DYNAMIC)
Info::
Site is served via Cloudflare CDN (edge: CDG)
Got: cf-ray: 9eff27ed2ebdd6da-CDG
Info::
CDN cache status: DYNAMIC
CDN Detected: Cloudflare
Provider Cloudflare Cache Status DYNAMIC Evidence cf-ray: 9eff27ed2ebdd6da-CDG
All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback