Skip to content
https://etherscan.io

Infrastructure

· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.
SCORE
93
GRADE
A
FIX
0
REVIEW
2
PASS
6
INFO
1
Probed from Singapore, Singapore
200 OK
Checks
9
6 PASS 2 REVIEW
C
Crawlability
Action
robots.txt present, sitemap with 0 URLs
REVIEW
robots.txt present, sitemap with 0 URLs
Info::
robots.txt is present
Got: 10240 bytes
Info::
sitemap.xml is present
Warning::
sitemap.xml contains invalid XML
Search engines may not be able to parse the sitemap. Fix XML validation errors.
Warning::
sitemap.xml is empty — no URLs found
An empty sitemap provides no value. Add <url> entries for your pages.
Info::
robots.txt does not reference a sitemap
Add a 'Sitemap:' directive to robots.txt so search engines can discover your sitemap.

Search engines may not be able to parse the sitemap. Fix XML validation errors.

Why this matters

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.

Why this matters

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.

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 id="html" lang="en">
<head><title>
	Etherscan Error Page
</title><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><meta name="author" content="etherscan.io" /><meta name="Description" content="The Ethereum BlockChain Explorer, API and Analytics Platform" /><meta name="keywords" content="ethereum, explorer, ether, search, blockchain, crypto, currency" /><meta name="format-detection" content="telephone=no" />
    <link rel="shortcut icon" href="/images/favicon3.ico" />
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-T1JC9RNQXV"></script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag() { dataLayer.push(arguments); }
        gtag('js', new Date());
        gtag('config','G-T1JC9RNQXV', { 'anonymize_ip': true });
    </script>
    

    <script>
        //Search box text ad
        var availableAd = [];
        var gotAd = [];

        
        availableAd = ["<div class='p-2 border-bottom'><a href='https://moonpay-affiliate-program.sjv.io/GmG56B' rel='nofollow' target='_blank' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Links to an External Advertiser site' class='search-panel-ads d-flex align-items-center p-2 rounded'><div class='me-2'><img width='22' src='https://solscan.io/icon/moonpay.png' alt='Ads'></div><div class='text-truncate'><h6 class='d-flex align-items-center fs-sm text-dark mb-0'><div class='text-truncate me-2'>MoonPay: Buy & Sell Crypto with a credit card.</div><span class='d-none d-sm-inline-block small bg-white text-muted rounded-1 border px-2 py-1 ms-1'>Sponsored</span><span class='d-inline-block d-sm-none small bg-white text-muted rounded-1 border px-2 py-1 ms-1'>Ad</span></h6></div></a></div>", "<div class='p-2 border-bottom'><a href='https://goto.etherscan.com/rd/3FJ68IKPCR5M7AFE6S42RZCV6' rel='nofollow' target='_blank' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Links to an External Advertiser site' class='search-panel-ads d-flex align-items-center p-2 rounded'><div class='me-2'><img width='22' src='/images/gen/etoro_20.png' alt='eToro'></div><div class='text-truncate'><h6 class='d-flex align-items-center fs-sm text-dark mb-0'><div class='text-truncate me-2'>eToro - 100+ cryptoassets</div><span class='d-none d-sm-inline-block small bg-white text-muted rounded-1 border px-2 py-1 ms-1'>Sponsored</span><span class='d-inline-block d-sm-none small bg-white text-muted rounded-1 border px-2 py-1 ms-1'>Ad</span></h6></div></a></div>"];
        gotAd = ["ShowAds					"];
        

        // Temporary fallback to prevent runtime error
        if (typeof window.updatehash !== 'function') {
            const args = [];

            // Create a simple fallback
            window.updatehash = function () {
                args.push(arguments);

                // Retry every 100ms until the updatehash function load
                const retry = setInterval(function () {
                    if (typeof window.updatehash === 'function' && window.updatehash !== fallback) {
                        clearInterval(retry);
                        try {
                            window.updatehash.apply(null, args[0]);
                        } catch (e) {
                            console.error('updatehash retry failed:', e);
                        }
                    }
                }, 100);

                //stop retry after 1s
                setTimeout(() => clearInterval(retry), 1000);
            };

            const fallback = window.updatehash;
         //end temp fallback updatehash
        }
    </script>

    <!-- Font -->
    <link rel="preconnect" href="https://fonts.googleapis.com" /><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="" /><link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&amp;display=swap" rel="stylesheet" />

    <link rel="stylesheet" href="/assets/vendor/font-awesome/css/all.min.css?v=26.4.3.2">
    <link rel="stylesheet" href="/assets/vendor/autocomplete/dist/css/autocomplete.min.css?v=26.4.3.2" />

    <link rel="stylesheet" href="/assets/css/theme.min.css?v=26.4.3.2">
    <link rel="stylesheet" href="/assets/css/custom.css?v=26.4.3.2">

    <script src="/assets/vendor/jquery/dist/jquery.min.js?v=26.4.3.2"></script>
    <script type="text/javascript" src="/jss/blockies.js?v=26.4.3.2"></script>

    <script type="text/javascript" src="/assets/js/theme-appearance.js?v=26.4.3.2"></script>

    <style>
        .autolink-safari a {
            pointer-events: none !important;
            text-decoration: none !important;
            color: inherit !important;
        }

        #masterNoticeBar div.alert a{

            color:#fff !important; 
            text-decoration: underline !important;
        }
        .word-break{word-break: break-all !important;}
        .min-with50{min-width: 50px !important;}

    </style>
    <!-- Custom CSS for Ask Etherscan Chatbot -->
    <style>
        #ask-etherscan-main {

            bottom: 0.5rem;
            right: 0.5rem;
            z-index: 1020;
        }

        #ask-etherscan-main .js-chat-container {

            width: calc(100vw - 1rem);
            max-height: 75vh;
            z-index: 1020;
        }

        @media (min-width: 576px) {
            #ask-etherscan-main {

                bottom: 2rem;
                right: 2rem;
                z-index: 1020;
            }

            #ask-etherscan-main .js-chat-container {

                width: 500px;
            }
        }
    </style>

    <style> .dn2ukhvdctf { -ms-flex-pack: center; justify-content: center; } .a6qfj1nz3nb { border-top: 1px solid #e7eaf3 !important; } body.dark-mode .a6qfj1nz3nb { border-color: #18365b !important; } @media (min-width: 992px) { .bzik95xusjk { display: block !important; } } @media (min-width: 992px) { .c54ttzlepsr { display: inline-block !important; } }  </style>
    <style>
        [data-bs-theme="light"],
        [data-bs-theme=auto] {
            --bg-img-wave: url(./images/error-404.svg);
        }

        [data-bs-theme="dim"] {
            --bg-img-wave: url(./images/error-404-dimmode.svg);
        }

        [data-bs-theme="dark"] {
            --bg-img-wave: url(./images/error-404-darkmode.svg);
        }

        .main-content {
            background-image: var(--bg-img-wave);
            background-size: cover;
            background-repeat: no-repeat;
            background-position: center center;
        }
    </style>
</head>


<body id="body" class="d-flex flex-column min-vh-100">

    <section id="masterNoticeBar">
        <!--Maintenance Message-->
        
        <!--End Maintenance Message-->
    </section>

    <!-- ========== TOPBAR ========== -->
    <section id="masterTopBar" class="sticky-top bg-white border-bottom py-2 d-print-none">
        <div class="container-xxl d-flex align-items-center justify-content-between">
            
            <div id="ethPrice" class="d-none d-md-flex align-items-center gap-4 w-100 fs-sm">                
                <div class="text-muted"><span class="text-muted">ETH Price:</span> <a href='/chart/etherprice'>$2,398.64</a><span data-bs-toggle="tooltip" data-bs-placement="top" title="Changes in the last 24 hours"><span class='text-success'> (+3.56%)</span></span></div><div class='text-muted d-none d-lg-block'><i class="fad fa-gas-pump me-1"></i> Gas: <span id='spanGasTooltip' data-bs-toggle='tooltip' data-bs-html='true' title='Base Fee: 1.512 Gwei<br>Priority Fee: 0.053 Gwei'><a href='/gastracker'><span class='gasPricePlaceHolder'>1.565</span> Gwei</a></span></div>
                </div>

            <div class="d-flex justify-content-end align-items-center gap-2 w-100">
                <div id="frmMaster" class="search-panel-container flex-grow-1 position-relative" style="width: 30rem;">
	
                    <form action="/search" method="GET" autocomplete="off" spellcheck="false" class="auto-search-max-height">
                        <span class="d-flex align-items-center position-absolute top-0 bottom-0" title="Search" style="left: 0.75rem;">
                            <i class="fa-regular fa-search fs-5 text-secondary"></i>
                        </span>

                        <input type="text" class="form-control form-control-lg bg-light bg-focus-white pe-20" autocomplete="off" spellcheck="false" id="search-panel" name="q" placeholder="Search by Address / Txn Hash / Block / Token / Domain Name" aria-describedby="button-header-search" onkeyup="handleSearchText(this);" maxlength="68" style="padding-left: 2.375rem;" />

                        <a href="javascript:;" class="clear-icon d-none align-items-center position-absolute top-0 bottom-0 my-auto d-flex align-items-center" style="right: 3.375rem; cursor:pointer;">
                            <i class="fa-regular fa-xmark fs-5 text-secondary"></i>
                        </a>
                        <a href="javascript:;" class="search-icon d-none btn btn-sm btn-white my-1.5 align-items-center position-absolute top-0 bottom-0 d-flex align-items-center" style="right: 0.75rem; cursor:pointer;">
                            <i class="fa-regular fa-arrow-turn-down-left text-secondary"></i>
                        </a>

                        <input type="hidden" value="" id="hdnSearchText" />
                        <input type="hidden" value="" id="hdnSearchLabel" />
                        <input id="hdnIsTestNet" value="False" type="hidden" />

                        <span class="shortcut-slash-icon align-items-center position-absolute top-0 bottom-0 align-items-center d-none d-sm-flex" data-bs-toggle="tooltip" data-bs-trigger="hover" title="Press / to search" style="right: 0.5rem;">
                            <kbd class="bg-dark bg-opacity-25 fw-semibold px-2 py-0.5 text-white">/</kbd>
                        </span>
                    </form>
                
</div>

                

                <div class="dropdown d-none d-lg-block">
        
sitemap.xml 200 OK
Type URL Set URLs 0 entries Valid XML No
B
TLS Certificate Expiry & Recommendations
32 days until leaf cert expires — 3 issues to address
REVIEW

Certificate validity

32
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, 5 ms lookup
PASS
2 A records, 5 ms lookup
Info::
Resolves to 2 IPv4 address(es)
Got: 104.20.37.229, 172.66.149.96
Info::
Has 2 IPv6 (AAAA) record(s)
Got: 2606:4700:10::ac42:9560, 2606:4700:10::6814:25e5
Info::
2 nameserver(s) configured
Got: dora.ns.cloudflare.com, hank.ns.cloudflare.com
Info::
3 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: 5 ms
Got: 5 ms
A104.20.37.229, 172.66.149.96
AAAA2606:4700:10::ac42:9560, 2606:4700:10::6814:25e5
CNAME
NSdora.ns.cloudflare.com, hank.ns.cloudflare.com
MX
10 mx.zoho.com
20 mx2.zoho.com
50 mx3.zoho.com
TXT
MS=78C7B673AFBC191FA7DC605604A27B6BB1B51DED
anthropic-domain-verification-5q5sqk=o88xpI70u3pkip1yNuaTonJpE
google-site-verification=Iz_ujPr-EZcnIt8wy_LqNC3i6LXOX_H_1DB69rZQyjA
google-site-verification=K_dwemq_TsXB_k2idIrLl_rMMQ4YlI9RbDsjBqVAZEA
google-site-verification=xFYS3pRUGz7-chf3RiiuYPR6rAzbSOJLDDNe0jAZ2kQ
SPF v=spf1 mx ip4:199.193.113.17 ip4:110.4.41.105 ip4:110.4.41.87 ip4:149.56.241.175...
CAALookup not available with standard resolver
Resolved in 5 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://etherscan.io

https://etherscan.io

356 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://etherscan.io200356 msHTTP/1.1cloudflare
A+
IPv6 Readiness
IPv6 reachable (1 ms)
PASS
IPv6 reachable (1 ms)
Info::
IPv6 is configured and reachable at 2606:4700:10::ac42:9560, 2606:4700:10::6814:25e5
Got: 1 ms connect
IPv6 Ready
AAAA Records 2606:4700:10::ac42:9560, 2606:4700:10::6814:25e5 Connection Reachable (1 ms)
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.etherscan.io/
200https://etherscan.io/

Preferred variant: non-www

HTTP → HTTPS

301http://etherscan.io/ https://etherscan.io/

Consistent

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

Connection waterfall

DNS Lookup 2 ms TCP Connect 1 ms TLS Handshake 8 ms Server Processing 328 ms Content Transfer 2 ms
A
CDN & Delivery
Cloudflare (DYNAMIC)
PASS
Cloudflare (DYNAMIC)
Info::
Site is served via Cloudflare CDN (edge: SIN)
Got: cf-ray: 9f0737e95b0f40ea-SIN
Info::
CDN cache status: DYNAMIC
CDN Detected: Cloudflare
Provider Cloudflare Cache Status DYNAMIC Evidence cf-ray: 9f0737e95b0f40ea-SIN
Domain Intelligence
Domain intelligence data not available
INFO
Domain intelligence data not available

RDAP and WHOIS lookup both failed

All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback