Skip to content
https://notion.site

Infrastructure

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

https://notion.site

13 ms · HTTP/1.1

302

https://www.notion.so/

220 ms · HTTP/1.1

301

https://www.notion.com/

490 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://notion.site30213 msHTTP/1.1cloudflare
2https://www.notion.so/301220 msHTTP/1.1cloudflare
3https://www.notion.com/200490 msHTTP/1.1cloudflare

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

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

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 class="base_theme__K5IIh" lang="en-us"><head><meta charSet="utf-8"/><script id="airgap-stub">window.airgap = window.airgap || {}; window.airgap.readyQueue = window.airgap.readyQueue || [];</script><script id="tcf-stub">
(function () {
	if (typeof window.__tcfapi !== 'function') {
		const queue = [];
		window.__tcfapi = function (command, version, callback, parameter) {
			if (!command) return queue;
			if (command === 'setGdprApplies' && version === 2 && typeof parameter === 'boolean') {
				window.__tcfapi.gdprApplies = parameter;
				if (typeof callback === 'function') callback('set', true);
			} else if (command === 'ping' && typeof callback === 'function') {
				callback({
					gdprApplies: window.__tcfapi.gdprApplies ?? undefined,
					cmpLoaded: false,
					cmpStatus: 'stub',
				});
			} else {
				queue.push([command, version, callback, parameter]);
			}
		};
		window.__tcfapi.queue = queue;

		const iframeName = '__tcfapiLocator';
		if (!window.frames[iframeName]) {
			const iframe = document.createElement('iframe');
			iframe.name = iframeName;
			iframe.style.display = 'none';
			const append = () => {
				document.body ? document.body.appendChild(iframe) : setTimeout(append, 5);
			};
			append();
		}

		window.addEventListener('message', function (event) {
			let data;
			try {
				data = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;
			} catch {
				data = {};
			}
			const call = data.__tcfapiCall;
			if (call) {
				window.__tcfapi(call.command, call.version, function (returnValue, success) {
					const response = {
						__tcfapiReturn: {
							returnValue,
							success,
							callId: call.callId,
						},
					};
					event.source?.postMessage(JSON.stringify(response), '*');
				}, call.parameter);
			}
		}, false);
	}
})();
</script><title>The AI workspace that works for you. | Notion</title><meta name="description" content="Build Custom Agents, search across all your apps, and automate busywork. The AI workspace where teams get more done, faster."/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@NotionHQ"/><meta name="twitter:title" content="The AI workspace that works for you. | Notion"/><meta name="twitter:description" content="Build Custom Agents, search across all your apps, and automate busywork. The AI workspace where teams get more done, faster."/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="twitter:url" content="/"/><meta name="twitter:image" content="https://www.notion.com/front-static/meta/custom-agents-og.png"/><meta property="og:url" content="https://www.notion.com/"/><meta property="og:title" content="The AI workspace that works for you. | Notion"/><meta property="og:description" content="Build Custom Agents, search across all your apps, and automate busywork. The AI workspace where teams get more done, faster."/><meta property="og:image" content="https://www.notion.com/front-static/meta/custom-agents-og.png"/><meta property="og:locale" content="en-US"/><meta property="og:site_name" content="Notion"/><meta property="og:type" content="website"/><link rel="icon" href="/front-static/favicon.ico"/><link rel="apple-touch-icon" href="/front-static/logo-ios.png"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-itunes-app" content="1232780281"/><meta name="referrer" content="strict-origin"/><meta name="naver-site-verification" content="ad5c9c7e4607a86395226000f5fe1e4223ce3348"/><link rel="canonical" href="https://www.notion.com/"/><link rel="alternate" hrefLang="en" href="https://www.notion.com/"/><link rel="alternate" hrefLang="ko" href="https://www.notion.com/ko"/><link rel="alternate" hrefLang="ja" href="https://www.notion.com/ja"/><link rel="alternate" hrefLang="fr" href="https://www.notion.com/fr"/><link rel="alternate" hrefLang="de" href="https://www.notion.com/de"/><link rel="alternate" hrefLang="es-es" href="https://www.notion.com/es-es"/><link rel="alternate" hrefLang="es" href="https://www.notion.com/es"/><link rel="alternate" hrefLang="pt" href="https://www.notion.com/pt"/><link rel="alternate" hrefLang="zh" href="https://www.notion.com/zh-cn"/><link rel="alternate" hrefLang="zh-tw" href="https://www.notion.com/zh-tw"/><link rel="alternate" hrefLang="en-gb" href="https://www.notion.com/en-gb"/><link rel="alternate" hrefLang="id" href="https://www.notion.com/id"/><link rel="alternate" hrefLang="vi" href="https://www.notion.com/vi"/><link rel="alternate" hrefLang="th" href="https://www.notion.com/th"/><link rel="alternate" hrefLang="he" href="https://www.notion.com/he"/><link rel="alternate" hrefLang="ar" href="https://www.notion.com/ar"/><link rel="preload" as="image" href="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fspoqsaf9291f%2F3kVtQWll6jUqQepQ0kaYlz%2Fa54240a3b893ac6330df8ceaadf657f0%2Fweb-homepage-hero-poster_final.jpg&amp;w=3840&amp;q=75"/><link rel="preload" as="video" href="https://videos.ctfassets.net/spoqsaf9291f/1EL7UZIXfcqngxsNSbL8tR/a35c698ae3499345013792fe78804a38/web-homepage-hero-1920x1200_final.mp4"/><meta name="next-head-count" content="44"/><link rel="preload" href="/front-static/fonts/NotionInter-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/front-static/fonts/NotionInter-Medium.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/front-static/fonts/NotionInter-SemiBold.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/front-static/fonts/NotionInter-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preconnect" href="https://images.ctfassets.net"/><link rel="preconnect" href="https://videos.ctfassets.net"/><meta id="__I18N_DATA__" itemProp="messages" content="{&quot;frontProductPage.logoSection.title&quot;:&quot;Trusted by teams at&quot;}"/><script>window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__ = true;</script><style>:root { --direction: 1; }</style><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/3e2ba8a63fb07439.css" as="style"/><link rel="stylesheet" href="/_next/static/css/3e2ba8a63fb07439.css" data-n-g=""/><link rel="preload" href="/_next/static/css/54cdb8f40d7e3e17.css" as="style"/><link rel="stylesheet" href="/_next/static/css/54cdb8f40d7e3e17.css" data-n-p=""/><link rel="preload" href="/_next/static/css/c5b40a2f97905784.css" as="style"/><link rel="stylesheet" href="/_next/static/css/c5b40a2f97905784.css" data-n-p=""/><link rel="preload" href="/_next/static/css/50899cb4b491f14a.css" as="style"/><link rel="stylesheet" href="/_next/static/css/50899cb4b491f14a.css" data-n-p=""/><link rel="preload" href="/_next/static/css/5c1cdc19a1374ab9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5c1cdc19a1374ab9.css" data-n-p=""/><link rel="preload" href="/_next/static/css/23e965f939d8ffb9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/23e965f939d8ffb9.css" data-n-p=""/><link rel="preload" href="/_next/static/css/c15fc2b396bb72aa.css" as="style"/><link rel="stylesheet" href="/_next/static/css/c15fc2b396bb72aa.css"/><link rel="preload" href="/_next/static/css/bf509b4397f5e054.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bf509b4397f5e054.css"/><link rel="preload" href="/_next/static/css/18bdbad9140749c9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/18bdbad9140749c9.css"/><link rel="preload" href="/_next/static/css/e907e3ff90ef2f85.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e907e3ff90ef2f85.css"/><link rel="preload" href="/_next/static/css/b687abd76f77a72f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b687abd76f77a72f.css"/><link rel="preload" href="/_next/static/css/108abde8b3ac070b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/108abde8b3ac070b.css"/><link rel="preload" href="/_next/static/css/cfb24ca19b760835.css" as="style"/><link rel="stylesheet" href="/_next/static/css/cfb24ca19b760835.css"/><link rel="preload" href="/_next/static/css/c26a853c4940d71d.css" as="style"/><link rel="stylesheet" href="/_next/static/css/c26a853c4940d71d.css"/><link rel="preload" href="/_next/static/css/4b02a4d1f3702c2a.css" as="style"/><link rel="stylesheet" href="/_next/static/css/4b02a4d1f3702c2a.css"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script defer="" src="/_next/static/chunks/47820.3c627127c4b2a307.js"></script><script defer="" src="/_next/static/chunks/65368.930c4d9e0c68ad1b.js"></script><script defer="" src="/_next/static/chunks/85850.4612570841e31222.js"></script><script defer="" src="/_next/static/chunks/4651.b13b1b351013b824.js"></script><script defer="" src="/_next/static/chunks/87396-0e40915eee2ea5d1.js"></script><script defer="" src="/_next/static/chunks/84993.11451fd6e46baeee.js"></script><script defer="" src="/_next/static/chunks/71846.b707099fd60ef8c0.js"></script><script src="/_next/static/chunks/webpack-3e2a7c4183bdbd3c.js" defer=""></script><script src="/_next/static/chunks/framework-d8039d8c774492db.js" defer=""></script><script src="/_next/static/chunks/main-477889fa8a461a1b.js" defer=""></script><script src="/_next/static/chunks/pages/_app-c7fee42076fc862b.js" defer=""></script><script src="/_next/static/chunks/41664-a4a93a5f6a37fcd0.js" defer=""></script><script src="/_next/static/chunks/25675-ff3432b15bfcb6fb.js" defer=""></script><script src="/_next/static/chunks/12123-f619d2c72021903d.js" defer=""></script><script src="/_next/static/chunks/43458-6671887ed298a3b0.js" defer=""></script><script src="/_next/static/chunks/41619-ca3c7d6f20756024.js" defer=""></script><script src="/_next/static/chunks/13654-c002620f876bcb61.js" defer=""></script><script src="/_next/static/chunks/pages/product-d7e81cf0cf5c3862.js" defer=""></script><script src="/_next/static/414c930be2e0fe7b2e99baf1d44bcf5ecf28c174/_buildManifest.js" defer=""></script><script src="/_next/static/414c930be2e0fe7b2e99baf1d44bcf5ecf28c174/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="display:contents" class="base_theme__K5
sitemap.xml 200 OK
Type URL Set URLs 0 entries Valid XML No
B
TLS Certificate Expiry & Recommendations
31 days until leaf cert expires — 3 issues to address
REVIEW

Certificate validity

31
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
B
CDN & Delivery
Cloudflare
REVIEW
Cloudflare
Info::
Site is served via Cloudflare CDN (edge: MAD)
Got: cf-ray: 9efeb0e81c69cbee-MAD
CDN Detected: Cloudflare
Provider Cloudflare Evidence cf-ray: 9efeb0e81c69cbee-MAD
A+
DNS Records
2 A records, 38 ms lookup
PASS
2 A records, 38 ms lookup
Info::
Resolves to 2 IPv4 address(es)
Got: 208.103.161.33, 208.103.161.32
Info::
No IPv6 (AAAA) records
Info::
2 nameserver(s) configured
Got: dana.ns.cloudflare.com, woz.ns.cloudflare.com
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::
SPF record present in TXT
Info::
DNS resolution time: 38 ms
Got: 38 ms
A208.103.161.33, 208.103.161.32
AAAA
CNAME
NSdana.ns.cloudflare.com, woz.ns.cloudflare.com
MX
TXT
google-site-verification=7cEiu3kC5MgSXuP4AskLbY8n5AVUFPvyD5t5yFQfCjs
google-site-verification=5NeSk7wYs2oPBBAKq9DQCIC0eOrIiWnrZOh528zfrcM
SPF v=spf1 -all
google-site-verification=iV6PR69RZuptZULIxQ1Un77vr9CUSATxxQmtB_U_OL4
CAALookup not available with standard resolver
Resolved in 38 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
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)
Warning::
HTTP→HTTPS redirect uses 302 instead of 301
Got: 302 temporary redirect Expected: 301 permanent redirect

www / non-www

302https://www.notion.site/
200https://notion.site/

Preferred variant: non-www

HTTP → HTTPS

302http://notion.site/ https://www.notion.so/

Use 301 (permanent) instead of 302 (temporary)

A+
Domain Intelligence
notion.site — via Amazon Registrar, Inc., 5 years, 5 months old, hosted on NOTION-WEB - Notion Labs, Inc., US
PASS
notion.site — via Amazon Registrar, Inc., 5 years, 5 months old, hosted on NOTION-WEB - Notion Labs, Inc., US
Info::
Domain registered until Dec 8, 2028 (2 years, 8 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: Amazon Registrar, 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: NOTION-WEB - Notion Labs, Inc., US
Got: AS33191
Domain expiry

878 days

December 8, 2028

SSL certificate

31 days

Issued by Google Trust Services

Domain age

5 years, 5 months

Registered December 8, 2020

DNSSEC

Not enabled

Protects against DNS spoofing

Hosting

NOTION-WEB - Notion Labs, Inc., US

ASN AS33191

208.103.161.33

Registrar

Amazon Registrar, Inc.

Unlocked 2 NS records
Expiry timeline
Today
+1 year
Domain expiry SSL expiry Danger zone (≤30 days)
Recommended actions
  • Enable DNSSEC to protect visitors from DNS spoofing
  • Enable registrar lock (clientTransferProhibited) to block unauthorized domain transfers
Registrar Amazon Registrar, Inc.
Created December 8, 2020 (5 years, 5 months ago)
Expires December 8, 2028 (2 years, 8 months)
Last Updated March 17, 2026
Name Servers dana.ns.cloudflare.com, woz.ns.cloudflare.com
DNSSEC Not enabled
Hosting
IP Address 208.103.161.33
ASN AS33191 (NOTION-WEB - Notion Labs, Inc., US)
Provider NOTION-WEB - Notion Labs, Inc., US
Data source: rdap (0.9s)

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 44 ms — DNS, TCP, TLS, TTFB, content transfer breakdown
PASS
DNS Lookup DNS Lookup — time to resolve the domain name to an IP address.
31 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.
9 ms
Time to First Byte Time to First Byte — how long the server takes to respond with the first byte of data.
44 ms
Total Time Total request time from DNS lookup through full response.
45 ms

Connection waterfall

DNS Lookup 31 ms TCP Connect 1 ms TLS Handshake 9 ms Server Processing 4 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