Skip to content
https://msdn.com

Infrastructure

· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.
SCORE
84
GRADE
B
FIX
2
REVIEW
2
PASS
5
INFO
0
Probed from Madrid, Spain
301 Moved Permanently
Checks
9
5 PASS 2 REVIEW 2 FIX
D
Redirect Chain
Action
3 redirect(s), 809 ms total
FIX
3 redirect(s), 809 ms total
Warning::
3 redirects before reaching final URL
Each redirect adds latency. Try to minimize the chain to 1 hop.
Info::
Uses 302 (temporary) redirect
If permanent, use 301 instead.
Got: https://learn.microsoft.com/
Info::
Redirect overhead: 809 ms total
Got: 809 ms
Info::
Cross-domain redirect detected

https://msdn.com

306 ms · HTTP/1.1

301

https://msdn.microsoft.com/

282 ms · HTTP/1.1

301

https://learn.microsoft.com/

197 ms · HTTP/1.1

302

https://learn.microsoft.com/en-us/

25 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://msdn.com301306 msHTTP/1.1Kestrel
2https://msdn.microsoft.com/301282 msHTTP/1.1
3https://learn.microsoft.com/302197 msHTTP/1.1
4https://learn.microsoft.com/en-us/20025 msHTTP/1.1

See the visual redirect chain in the HTTP Probe tab →

Each redirect adds latency. Try to minimize the chain to 1 hop.

Why this matters

Redirect chain — each hop adds latency; combine into one redirect where possible.

Source: Google Search Central / web.dev

If permanent, use 301 instead.

Why this matters

302 (Found) is for genuinely temporary redirects — if this redirect is permanent, switch to 301 to preserve SEO equity.

Learn more

Search engines treat 302 as temporary, keeping the original URL indexed and not transferring full link equity to the destination. Use 301 (Moved Permanently) for permanent redirects (HTTP→HTTPS, www-vs-non-www, URL restructures).

Source: Google Search Central

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.

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
137 days until leaf cert expires — 4 issues to address
REVIEW

Certificate validity

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

Recommended actions

  • 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
5 A records, 39 ms lookup
PASS
5 A records, 39 ms lookup
Info::
Resolves to 5 IPv4 address(es)
Got: 20.112.250.133, 20.70.246.20, 20.231.239.246, 20.236.44.162, 20.76.201.171
Info::
No IPv6 (AAAA) records
Info::
4 nameserver(s) configured
Got: ns3-06.azure-dns.org, ns1-06.azure-dns.com, ns4-06.azure-dns.info, ns2-06.azure-dns.net
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: 39 ms
Got: 39 ms
A20.112.250.133, 20.70.246.20, 20.231.239.246, 20.236.44.162, 20.76.201.171
AAAA
CNAME
NSns3-06.azure-dns.org, ns1-06.azure-dns.com, ns4-06.azure-dns.info, ns2-06.azure-dns.net
MX
TXT
facebook-domain-verification=hu32rhwqcnakaw59s20rclcqeudd5a
CAALookup not available with standard resolver
Resolved in 39 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+
Crawlability
robots.txt present, sitemap with 36 URLs
PASS
robots.txt present, sitemap with 36 URLs
Info::
robots.txt is present
Got: 6716 bytes
Info::
sitemap.xml is present
Info::
sitemap.xml is valid XML
Info::
sitemap.xml contains 36 entries
Info::
robots.txt references sitemap
robots.txt 200 OK
Size 6716 B Sitemaps referenced 3 User-agents * Blocking No — crawling allowed
# MSDN.MICROSOFT.COM

# 10:50 AM 7/21/2016

User-Agent: *


# Legacy site path

Disallow: /*/library/*/

Disallow: /subscriptions/manage/

Disallow: /*/subscriptions/manage/

Disallow: /subscriptions/securejson/

Disallow: /*/subscriptions/securejson/

Disallow: /*/ie/

Disallow: /*/site/

Disallow: /mtlibraryrss/

Disallow: /*/mtlibraryrss/

Disallow: /*/msdnmag/

Disallow: /*/msdn-files/

Disallow: /msdn-files/

Disallow: /*/msdn10/

Disallow: /*/workshop/

Disallow: /workshop/

Disallow: /*/chats/

Disallow: /chats/

Disallow: /*/chat/

Disallow: /chat/

Disallow: /*/msdntv/

Disallow: /msdntv/

Disallow: /*/theshow/

Disallow: /theshow/

Disallow: /*/windowsvista/

Disallow: /windowsvista/

Disallow: /*/longhorn/

Disallow: /longhorn/

Disallow: /*/winfx/

Disallow: /winfx/

Disallow: /*/howtobuy/

Disallow: /howtobuy/

Disallow: /*/codesamples/

Disallow: /codesamples/

Disallow: /*/seminar/

Disallow: /seminar/

Disallow: /kb/

Disallow: /*/kb/

Disallow: /*/launch2005/

Disallow: /launch2005/

Disallow: /*/training/

Disallow: /training/

Disallow: /ssafe/

Disallow: /voices/

Disallow: /teamplain/

Disallow: /courses/

Disallow: /surveys/

Disallow: /vbtv/

Disallow: /windowsforms/

Disallow: /64-bit/

Disallow: /devdns/

Disallow: /elearning/

Disallow: /integrate/

Disallow: /shows/

Disallow: /getthebetas/

Disallow: /getstarted/

Disallow: /learn/

Disallow: /performance/

Disallow: /rampup/

Disallow: /sbs/

Disallow: /soap/

Disallow: /winforms/

Disallow: /vinterdev/

Disallow: /windows2000/

Disallow: /wsus/

Disallow: /win9x/

Disallow: /updatemanagement/

Disallow: /b/

Disallow: /cetools/

Disallow: /def/

Disallow: /devmx/

Disallow: /devmailmobile/

Disallow: /oslo/

Disallow: /vs2005/

Disallow: /ieupdate/

Disallow: /express/

Disallow: /*/express/

Disallow: /visualj/


# Application Paths

Disallow: /platform/

Disallow: /Platform/

Disallow: /Areas/

Disallow: /areas/

Disallow: /Areas/Epx/Content/500.aspx?aspxerrorpath=

Disallow: /uxtest/ux/

Disallow: /*.axd

Disallow: /*.mspx

Disallow: /*/library/export/help/

Disallow: /*/library/export/

Disallow: /*/library/preferences/

Disallow: /*/library/community/

Disallow: /*/library/community/user/

Disallow: /*/library/community/history/

Disallow: /*/library/community/edit/

Disallow: /*/library/community/add/

Disallow: /*/stoguides/

Disallow: /*/stopartnertest/

Disallow: /*/blogvisualizer/

Disallow: /*/viewer/

Disallow: /*/blank/

Disallow: /*/objectforward/

Disallow: /isapi/

Disallow: /preferences/

Disallow: /*/preferences/

Disallow: /SelectLocale?fromPage=

Disallow: /*/SelectLocale?fromPage=

Disallow: /selectlocale-dmc?fromPage=

Disallow: /*/selectlocale-dmc?fromPage=

Disallow: /*/Message-Error.htm

Disallow: /500.htm?aspxerrorpath=

Disallow: /500.aspx?aspxerrorpath=

Disallow: /cgi-bin/

Disallow: /*/store/

Disallow: /store/


# Misc Patterns

Disallow: /*.$

Disallow: /*.asp$

Disallow: /*.htm$

Disallow: /*/library/*.$

Disallow: /*/library/*.asp$

Disallow: /*/library/*.htm$

Disallow: /*(d=

Disallow: /*/library/*(d=

Disallow: ?xml=

Disallow: /*/?xml=

Disallow: /*/?action=

Disallow: /*appId=Dev10IDEF1

Disallow: /?t=

Disallow: /*?*/

Disallow: /&*

Disallow: /&loc=

Disallow: /*(l=*)

Disallow: /*).query

Disallow: /*?pull=

Disallow: /*%3Fpull%3D

Disallow: /*&layout=

Disallow: /*&prev=

Disallow: /.../

Disallow: /%20library/

Disallow: /*%20(http

Disallow: /*.php

Disallow: /en%E2%80%90us

Disallow: /enus/

Disallow: /en-usbrary

Disallow: /en-us-library

Disallow: /en-%20us

Disallow: /*/libarary/

Disallow: /*/libary/

Disallow: /*/libray/

Disallow: /*/%20library/

Disallow: /*/library%20/

Disallow: /*/ibrary/

Disallow: /*%3C

Disallow: /*%26

Disallow: /*%22

Disallow: /*%20

Disallow: /*%7C

Disallow: /*/{0}/

Disallow: /{0}/

Disallow: /library?/

Disallow: /en- us/

Disallow: /msn/

Disallow: /.../

Disallow: /en~us/

Disallow: /m/

Disallow: /vsstudio/

Disallow: /vsx2008/

Disallow: /wincontacts/

Disallow: /wn3/

Disallow: /librar/

Disallow: /jajp/

Disallow: /widnows/

Disallow: /cookie.aspx

Disallow: /microsoft.com/


# Supported Site Paths

Allow: /Sitemaps/

Allow: /sitemaps/

Allow: /dynamics/

Allow: /*/dynamics/

Allow: /imagine/

Allow: /*/imagine/

Allow: /healthvault/

Allow: /*/healthvault/

Allow: /magazine/

Allow: /*/magazine/

Allow: /windows/

Allow: /*/windows/*/

Allow: /*/windows/hardware/

Allow: /*/windows/uwp/

Allow: /*/windows/uwp/*/

Allow: /goglobal/

Allow: /*/goglobal/

Allow: /globalization/

Allow: /*/globalization/

Allow: /powershell/

Allow: /*/powershell/

Allow: /virtualization/

Allow: /*/virtualization/

Allow: /evalcenter/

Allow: /*/evalcenter/


Allow: /library/

Allow: /*/library/

Allow: /library/vs/alm/

Allow: /*/library/vs/alm/

Allow: /library/windows/

Allow: /*/library/windows/

Allow: /*/library/Windows/

Allow: /*/library/windowsazure/

Allow: /*/library/partnercenter/

Allow: /library/azure/

Allow: /*/library/azure/

Allow: /*/library/ie/

Allow: /*/library/vstudio/

Allow: /*/library/office/

Allow: /*/library/video/

Allow: /*/library/exchange/

Allow: /*/library/lync/

Allow: /*/library/windowsphone/


Allow: /feeds/rss


# Supported Locale Paths

Allow: /ar-ae/

Allow: /ar-eg/

Allow: /ar-sa/

Allow: /bg-bg/

Allow: /cs-cz/

Allow: /da-dk/

Allow: /de-at/

Allow: /de-ch/

Allow: /de-de/

Allow: /el-gr/

Allow: /en-au/

Allow: /en-ca/

Allow: /en-gb/

Allow: /en-hk/

Allow: /en-ie/

Allow: /en-in/

Allow: /en-jm/

Allow: /en-my/

Allow: /en-nz/

Allow: /en-ph/

Allow: /en-sg/

Allow: /en-tt/

Allow: /en-us/

Allow: /en-za/

Allow: /es-ar/

Allow: /es-bo/

Allow: /es-cl/

Allow: /es-co/

Allow: /es-cr/

Allow: /es-do/

Allow: /es-ec/

Allow: /es-es/

Allow: /es-gt/

Allow: /es-hn/

Allow: /es-mx/

Allow: /es-ni/

Allow: /es-pa/

Allow: /es-pe/

Allow: /es-pr/

Allow: /es-py/

Allow: /es-sv/

Allow: /es-uy/

Allow: /es-ve/

Allow: /es-xl/

Allow: /et-ee/

Allow: /fi-fi/

Allow: /fr-be/

Allow: /fr-ca/

Allow: /fr-ch/

Allow: /fr-fr/

Allow: /he-il/

Allow: /hr-hr/

Allow: /hu-hu/

Allow: /hy-am/

Allow: /id-id/

Allow: /it-it/

Allow: /ja-jp/

Allow: /kk-kz/

Allow: /ko-kr/

Allow: /lt-lt/

Allow: /lv-lv/

Allow: /ms-my/

Allow: /nb-no/

Allow: /nl-be/

Allow: /nl-nl/

Allow: /pl-pl/

Allow: /pt-br/

Allow: /pt-pt/

Allow: /ro-ro/

Allow: /ru-ru/

Allow: /sk-sk/

Allow: /sl-si/

Allow: /sr-latn-rs/

Allow: /sr-latn-cs/

Allow: /sv-se/

Allow: /th-th/

Allow: /tr-tr/

Allow: /uk-ua/

Allow: /zh-cn/

Allow: /zh-hk/

Allow: /zh-tw/


Sitemap: https://msdn.microsoft.com/msdn-subscriptions-sitemap.xml

Sitemap: https://msdn.microsoft.com/sitemapindex.xml

Sitemap: https://msdn.microsoft.com/op_sitemapindex.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.msdn.com/
200https://msdn.com/

Preferred variant: non-www

HTTP → HTTPS

301http://msdn.com/ https://msdn.microsoft.com/

Consistent

A+
Domain Intelligence
msdn.com — via MarkMonitor Inc., 31 years, 1 months old, hosted on Microsoft Azure
PASS
msdn.com — via MarkMonitor Inc., 31 years, 1 months old, hosted on Microsoft Azure
Info::
Domain registered until Aug 16, 2026 (3 months remaining)
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: Microsoft Azure
Got: AS8075
Domain expiry

61 days

August 16, 2026

SSL certificate

137 days

Issued by Microsoft Corporation

Domain age

31 years, 1 months

Registered August 17, 1995

DNSSEC

Not enabled

Protects against DNS spoofing

Hosting

Microsoft Azure

ASN AS8075

20.112.250.133

Registrar

MarkMonitor Inc.

Unlocked 4 NS records
Expiry timeline
Today
+1 year
Domain expiry SSL expiry Danger zone (≤30 days)
Recommended actions
  • Renew the domain or enable auto-renewal to prevent accidental expiry
  • Enable DNSSEC to protect visitors from DNS spoofing
  • Enable registrar lock (clientTransferProhibited) to block unauthorized domain transfers
Registrar MarkMonitor Inc.
Created August 17, 1995 (31 years, 1 months ago)
Expires August 16, 2026 (3 months)
Last Updated July 15, 2025
Name Servers ns1-06.azure-dns.com, ns2-06.azure-dns.net, ns3-06.azure-dns.org, ns4-06.azure-dns.info
DNSSEC Not enabled
Hosting
IP Address 20.112.250.133
ASN AS8075 (MICROSOFT-CORP-MSN-AS-BLOCK - Microsoft Corporation, US)
Provider Microsoft Azure
Data source: rdap (0.3s)

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

Connection waterfall

DNS Lookup 33 ms TCP Connect 132 ms TLS Handshake 135 ms Server Processing 134 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