Skip to content
https://jotform.com

Infrastructure

· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.
SCORE
85
GRADE
B
FIX
0
REVIEW
4
PASS
5
INFO
0
Probed from Amsterdam, Netherlands
301 Moved Permanently
Checks
9
5 PASS 4 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
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.jotform.com/
200https://jotform.com/

Inconsistent — duplicate content risk

HTTP → HTTPS

301http://jotform.com/ https://jotform.com/

Consistent

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

Certificate validity

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

Recommended actions

  • Enable HSTS: Strict-Transport-Security: max-age=31536000; includeSubDomains
  • Enable OCSP stapling on your TLS server to remove a CA roundtrip and protect user privacy
B
CDN & Delivery
Google Cloud CDN
REVIEW
Google Cloud CDN
Info::
Site is served via Google Cloud CDN CDN
Got: via: 1.1 google
CDN Detected: Google Cloud CDN
Provider Google Cloud CDN Evidence via: 1.1 google
A+
DNS Records
1 A records, 9 ms lookup
PASS
1 A records, 9 ms lookup
Info::
Resolves to 1 IPv4 address(es)
Got: 34.102.158.113
Info::
Single A record — no DNS redundancy
Multiple A records provide failover if one server goes down.
Info::
No IPv6 (AAAA) records
Info::
2 nameserver(s) configured
Got: jay.ns.cloudflare.com, leah.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: 9 ms
Got: 9 ms
A34.102.158.113
AAAA
CNAME
NSjay.ns.cloudflare.com, leah.ns.cloudflare.com
MX
10 aspmx.l.google.com
20 alt2.aspmx.l.google.com
20 alt1.aspmx.l.google.com
30 aspmx2.googlemail.com
30 aspmx3.googlemail.com
TXT
MS=ms75652662
ZOOM_verify_3witIxeKC0CNK5NwDV0SDg
shopify_verification_store=OZBLVFVJ
MS=DEB2999CDE6BA3AC00C864C3126A6D4472F4DC8A
blitz=mu-f7d86c61-76376714-55e3b491-cf0e7819
1password-site-verification=YQFQJ47QRJG5XBU3T4RISJKW3Q
elevenlabs=kN2-MsgJDJnXKT2MbTaOMCuqDz3RxsGY_HydqGukqCs
openai-domain-verification=dv-45gaHepX9eTJI2gYExR4OWWC
openai-domain-verification=dv-FyHKj2aBDgIx5yO1XKhP76Fx
openai-domain-verification=dv-JoBa3T0S1jxNwWtCLacI5eRK
cursor-domain-verification-vmeym2=EtY1BkLbyPlFzt9Sw7KrMSYHl
twilio-domain-verification=424f03e983ff51a3db9362d75900bb3b
v=MCPv1; k=ed25519; p=Lb8maLkEb+gZXcnSZFr4TAFCi7UoFZV++O+WBDFldYA=
yahoo-verification-key=badZkLQsw6G2ONbbr8U24IacoTzKB/h933ItHATNN9k=
google-site-verification=dzI_jhaY6WEaI_W4_ibtid7sgDCf9xbKxJtNCx-VBwY
google-site-verification=yMxy0UgVeqRNu6CSLRHVC2HmunJDTMzY8LtuodbuICs
h1-domain-verification=ZtPHS7v95dFAHaPo8aiXkokpS6acwZuF2RXR5gLiERPFPj2H
SPF v=spf1 ip4:152.160.0.0/16 ip4:23.251.253.0/24 ip4:152.232.87.0/24 ip4:209.127.14...
spf2.0/pra ip4:152.160.0.0/16 ip4:23.251.253.0/26 ip4:152.232.87.0/24 ip4:209.12...
CAALookup not available with standard resolver
Resolved in 9 ms

Multiple A records provide failover if one server goes down.

Why this matters

Single A record means a single point of failure — if that IP goes down, your site is unreachable until DNS TTL expires.

Learn more

Add multiple A records for round-robin failover, or use a managed DNS provider with health-checked failover (Route 53, Cloudflare, NS1). Short TTL (60-300s) lets clients recover faster on outages.

Source: SRE practice / DNS architecture

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
1 redirect(s), 785 ms total
PASS
1 redirect(s), 785 ms total
Info::
Single redirect
Got: https://jotform.com → https://www.jotform.com/ (301)
Info::
WWW normalization redirect
Info::
Redirect overhead: 785 ms total
Got: 785 ms

https://jotform.com

150 ms · HTTP/1.1

301

https://www.jotform.com/

635 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://jotform.com301150 msHTTP/1.1
2https://www.jotform.com/200635 msHTTP/1.1

See the visual redirect chain in the HTTP Probe tab →

A+
Crawlability
robots.txt present, sitemap with 51 URLs
PASS
robots.txt present, sitemap with 51 URLs
Info::
robots.txt is present
Got: 10240 bytes
Info::
sitemap.xml is present
Info::
sitemap.xml is valid XML
Info::
sitemap.xml contains 51 entries
Info::
Sitemap index with 51 child sitemaps
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 Yandexbot, LinkedInBot, Meta-ExternalFetcher, CCBot, Applebot-Extended, anthropic-ai, cohere-ai, FacebookExternalHit, AdsBot-Google-Mobile, ClaudeBot, Diffbot, Bingbot, Twitterbot, Meta-ExternalAgent, AdsBot-Google, AdIdxBot, Claude-Web, PerplexityBot, Bytespider, FacebookBot, GPTBot, * Blocking No — crawling allowed
# www.jotform.com Robots.txt

User-agent: *
Disallow: /app/
Disallow: /uploads/
Disallow: /grid/
Disallow: /excel/
Disallow: /ipns/
Disallow: /min/
Disallow: /cimg/
Disallow: /page.php
Disallow: /submit.php
Disallow: /submission/
Disallow: /submissions/
Disallow: */form-templates/ur/
Disallow: */form-templates/static/
Disallow: */form-templates/standalone/
Disallow: */pdf-templates/standalone/
Disallow: */approval-templates/standalone/
Disallow: */app-templates/standalone/
Disallow: */agent-templates/standalone/
Disallow: /announcement/
Disallow: /forum/
Disallow: /forum/viewtopic.php
Disallow: /rssform.php
Disallow: /invoice/
Disallow: /pdf-view/
Disallow: /tr/form/
Disallow: /*?*entrymessage=*
Disallow: /*?*em_x=*
Disallow: /*?*u=*
Disallow: /*?*source=post_page*
Disallow: /ownerView.php
Disallow: */nx/
Disallow: */build/
Disallow: */build?*
Disallow: */build$
Disallow: /edit/
Disallow: /inbox/
Disallow: */form-templates/search/
Disallow: */pdf-templates/search?
Disallow: */table-templates/search?
Disallow: */app-templates/search?
Disallow: */approval-templates/search?
Disallow: */agent-templates/search?
Disallow: */table-templates/demo/
Disallow: /agent/
Disallow: /analytics/
Disallow: /calendar/
Disallow: /report/
Disallow: /tables/
Disallow: /table/
Disallow: /csv/
Disallow: /API/user/combinedinfo
Disallow: /API/formInitCatchLogger/
Disallow: /API/forum/update-who-typing
Disallow: /rss/
Disallow: /server.php
Disallow: */theme-store/search/
Disallow: */theme-store/tagged/
Disallow: */theme-store/theme/my-theme-
Disallow: /server/update-user-traffic-source
Disallow: /sign/
Disallow: /assign/
Disallow: /myforms/?createTeam=1
Disallow: /myteams/
Disallow: /mythemes/collection/
Disallow: /answers/my_list_with_status.php
Disallow: /answers/answer_listing.php
Disallow: /answers/asked
Disallow: /answers/?eco_tools
Disallow: /unsubscribe/
Disallow: *unsubscribe=*
Disallow: /signup?fullscreen=*
Disallow: /login?fullscreen=*
Disallow: */app/createWithWidget*
Disallow: /answers/search.php
Disallow: /answers/tag/*
Disallow: /server/check-olark-chat-support
Disallow: /playground/
Disallow: /platform/
Disallow: /unsubscribecampaign/
Disallow: */form-templates/preview/thank-you/
Disallow: */theme-store/preview/thank-you/
Disallow: /1*?
Disallow: /2*?
Disallow: /3*?
Disallow: /4*?
Disallow: /5*?
Disallow: /6*?
Disallow: /7*?
Disallow: /8*?
Disallow: /9*?
Disallow: /form/*?
Disallow: /form/*/event/
Disallow: *?kuid=
Disallow: *&kuid=
Disallow: *?ref=isModalView
Disallow: *&ref=isModalView
Disallow: /widget-uploads/
Disallow: /approver-actions/
Disallow: /captcha?*
Disallow: /draft/
Disallow: /emails/
Disallow: /hidebanner/
Disallow: /logout.php
Disallow: /opt/widget-cache.php
Disallow: /pdf-submission/
Disallow: /preview/
Disallow: /share/
Disallow: /upgrade?username=
Disallow: /upgrade/?username=
Disallow: /API/ai-agent/
Disallow: /API/user/abtest/
Disallow: /uxr-survey-management/
Disallow: /API/ep/
Disallow: /API/user/growth-asset-manager/
Disallow: /API/translation/
Disallow: /API/actions/
Disallow: /API/ai-reviewer/
Disallow: /growth-tools-actions
Disallow: /static/feedbackWP.js
Disallow: */answers/user-threads?username=
Disallow: */form-templates/*?card$
Disallow: */amp/
Disallow: /academy/*/verify
Disallow: /academy/badge
Disallow: /pdf-templates/*/clone
Disallow: /workflow/withForm/
Disallow: /widgets/fix/widget
Disallow: /apps/fix/app
Disallow: /_helpers/
Disallow: *US_CENSUS_NAME*
Disallow: *US_FEMALE_NAME*
Disallow: *US_MALE_NAME*
Disallow: /approval-form/
Disallow: /deeplink*
Disallow: */workflow-templates/standalone/
Disallow: */workflow-templates/search?
Disallow: */d/
Allow: /63463511625958
Allow: /uploads/page-builder/

User-agent: Yandexbot
Disallow: /ownerview.php

User-agent: LinkedInBot
User-agent: Twitterbot
User-agent: FacebookBot
User-agent: FacebookExternalHit
User-agent: Meta-ExternalAgent
User-agent: Meta-ExternalFetcher
Allow: /academy/*/verify
Allow: /academy/badge
Allow: /agent/

User-agent: AdsBot-Google
User-agent: AdsBot-Google-Mobile
User-agent: AdIdxBot
Allow: */d/

User-agent: Bingbot
Disallow: /answers/
Disallow: /API/user*
Disallow: /form/
Disallow: /app/
Disallow: /uploads/
Disallow: /grid/
Disallow: /excel/
Disallow: /ipns/
Disallow: /min/
Disallow: /cimg/
Disallow: /page.php
Disallow: /submit.php
Disallow: /submission/
Disallow: /submissions/
Disallow: */form-templates/ur/
Disallow: */form-templates/static/
Disallow: */form-templates/standalone/
Disallow: */pdf-templates/standalone/
Disallow: */approval-templates/standalone/
Disallow: */app-templates/standalone/
Disallow: */agent-templates/standalone/
Disallow: /announcement/
Disallow: /forum/
Disallow: /forum/viewtopic.php
Disallow: /rssform.php
Disallow: /invoice/
Disallow: /pdf-view/
Disallow: /tr/form/
Disallow: /*?*entrymessage=*
Disallow: /*?*em_x=*
Disallow: /*?*u=*
Disallow: /*?*source=post_page*
Disallow: /ownerView.php
Disallow: */nx/
Disallow: */build/
Disallow: */build?*
Disallow: */build$
Disallow: /edit/
Disallow: /inbox/
Disallow: */form-templates/search/
Disallow: */pdf-templates/search?
Disallow: */table-templates/search?
Disallow: */app-templates/search?
Disallow: */approval-templates/search?
Disallow: */agent-templates/search?
Disallow: */table-templates/demo/
Disallow: /agent/
Disallow: /analytics/
Disallow: /calendar/
Disallow: /report/
Disallow: /tables/
Disallow: /table/
Disallow: /csv/
Disallow: /API/user/combinedinfo
Disallow: /API/formInitCatchLogger/
Disallow: /API/forum/update-who-typing
Disallow: /rss/
Disallow: /server.php
Disallow: */theme-store/search/
Disallow: */theme-store/tagged/
Disallow: */theme-store/theme/my-theme-
Disallow: /server/update-user-traffic-source
Disallow: /sign/
Disallow: /assign/
Disallow: /myforms/?createTeam=1
Disallow: /myteams/
Disallow: /mythemes/collection/
Disallow: /answers/my_list_with_status.php
Disallow: /answers/answer_listing.php
Disallow: /answers/asked
Disallow: /answers/?eco_tools
Disallow: /unsubscribe/
Disallow: *unsubscribe=*
Disallow: /signup?fullscreen=*
Disallow: /login?fullscreen=*
Disallow: */app/createWithWidget*
Disallow: /answers/search.php
Disallow: /answers/tag/*
Disallow: /server/check-olark-chat-support
Disallow: /playground/
Disallow: /platform/
Disallow: /unsubscribecampaign/
Disallow: */form-templates/preview/thank-you/
Disallow: */theme-store/preview/thank-you/
Disallow: /1*?
Disallow: /2*?
Disallow: /3*?
Disallow: /4*?
Disallow: /5*?
Disallow: /6*?
Disallow: /7*?
Disallow: /8*?
Disallow: /9*?
Disallow: /form/*?
Disallow: /form/*/event/
Disallow: *?kuid=
Disallow: *&kuid=
Disallow: *?ref=isModalView
Disallow: *&ref=isModalView
Disallow: /widget-uploads/
Disallow: /approver-actions/
Disallow: /captcha?*
Disallow: /draft/
Disallow: /emails/
Disallow: /hidebanner/
Disallow: /logout.php
Disallow: /opt/widget-cache.php
Disallow: /pdf-submission/
Disallow: /preview/
Disallow: /share/
Disallow: /upgrade?username=
Disallow: /upgrade/?username=
Disallow: /API/ai-agent/
Disallow: /API/user/abtest/
Disallow: /uxr-survey-management/
Disallow: /API/ep/
Disallow: /API/user/growth-asset-manager/
Disallow: /API/translation/
Disallow: /API/actions/
Disallow: /API/ai-reviewer/
Disallow: /growth-tools-actions
Disallow: /static/feedbackWP.js
Disallow: */answers/user-threads?username=
Disallow: */form-templates/*?card$
Disallow: */amp/
Disallow: /academy/*/verify
Disallow: /academy/badge
Disallow: /pdf-templates/*/clone
Disallow: /workflow/withForm/
Disallow: /widgets/fix/widget
Disallow: /apps/fix/app
Disallow: /_helpers/
Disallow: *US_CENSUS_NAME*
Disallow: *US_FEMALE_NAME*
Disallow: *US_MALE_NAME*
Disallow: /approval-form/
Disallow: /deeplink*
Disallow: */workflow-templates/standalone/
Disallow: */workflow-templates/search?
Disallow: */d/
Disallow: /jufs/
Disallow: /blog/?s=*
Allow: /uploads/page-builder/

User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Claude-Web
User-agent: CCBot
User-agent: Applebot-Extended
User-agent: PerplexityBot
User-agent: Meta-ExternalAgent
User-agent: Meta-ExternalFetcher
User-agent: anthropic-ai
User-agent: cohere-ai
User-agent: Diffbot
User-agent: FacebookBot
User-agent: Bytespider
Disallow: /answers/
Disallow: /API/user*
Disallow: /form/
Disallow: /app/
Disallow: /uploads/
Disallow: /grid/
Disallow: /excel/
Disallow: /ipns/
Disallow: /min/
Disallow: /cimg/
Disallow: /page.php
Disallow: /submit.php
Disallow: /submission/
Disallow: /submissions/
Disallow: */form-templates/ur/
Disallow: */form-templates/static/
Disallow: */form-templates/standalone/
Disallow: */pdf-templates/standalone/
Disallow: */approval-templates/standalone/
Disallow: */app-templates/standalone/
Disallow: */agent-templates/standalone/
Disallow: /announcement/
Disallow: /forum/
Disallow: /forum/viewtopic.php
Disallow: /rssform.php
Disallow: /invoice/
Disallow: /pdf-view/
Disallow: /tr/form/
Disallow: /*?*entrymessage=*
Disallow: /*?*em_x=*
Disallow: /*?*u=*
Disallow: /*?*source=post_page*
Disallow: /ownerView.php
Disallow: */nx/
Disallow: */build/
Disallow: */build?*
Disallow: */build$
Disallow: /edit/
Disallow: /inbox/
Disallow: */form-templates/search/
Disallow: */pdf-templates/search?
Disallow: */table-templates/search?
Disallow: */app-templates/search?
Disallow: */approval-templates/search?
Disallow: */agent-templates/search?
Disallow: */table-templates/demo/
Disallow: /agent/
Disallow: /analytics/
Disallow: /calendar/
Disallow: /report/
Disallow: /tables/
Disallow: /table/
Disallow: /csv/
Disallow: /API/user/combinedinfo
Disallow: /API/formInitCatchLogger/
Disallow: /API/forum/update-who-typing
Disallow: /rss/
Disallow: /server.php
Disallow: */theme-store/search/
Disallow: */theme-store/tagged/
Disallow: */theme-store/theme/my-theme-
Disallow: /server/update-user-traffic-source
Disallow: /sign/
Disallow: /assign/
Disallow: /myforms/?createTeam=1
Disallow: /myteams/
Disallow: /mythemes/collection/
Disallow: /answers/my_list_with_status.php
Disallow: /answers/answer_listing.php
Disallow: /answers/asked
Disallow: /answers/?eco_tools
Disallow: /unsubscribe/
Disallow: *unsubscribe=*
Disallow: /signup?fullscreen=*
Disallow: /login?fullscreen=*
Disallow: */app/createWithWidget*
Disallow: /answers/search.php
Disallow: /answers/tag/*
Disallow: /server/check-olark-chat-support
Disallow: /playground/

sitemap.xml 200 OK
Type Sitemap Index URLs 51 entries Valid XML Yes
Child Sitemaps:
A+
Domain Intelligence
jotform.com — via Tucows Domains Inc., 20 years, 8 months old, hosted on Google Cloud
PASS
jotform.com — via Tucows Domains Inc., 20 years, 8 months old, hosted on Google Cloud
Info::
Domain registered until Nov 9, 2034 (8 years, 8 months remaining)
Info::
DNSSEC is enabled
Info::
Registrar: Tucows Domains 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: Google Cloud
Got: AS396982
Domain expiry

3043 days

November 9, 2034

SSL certificate

126 days

Issued by Sectigo Limited

Domain age

20 years, 8 months

Registered November 9, 2005

DNSSEC

Enabled

Protects against DNS spoofing

Hosting

Google Cloud

ASN AS396982

34.102.158.113

Registrar

Tucows Domains Inc.

Unlocked 2 NS records
Expiry timeline
Today
+1 year
Domain expiry SSL expiry Danger zone (≤30 days)
Recommended actions
  • Enable registrar lock (clientTransferProhibited) to block unauthorized domain transfers
Registrar Tucows Domains Inc.
Created November 9, 2005 (20 years, 8 months ago)
Expires November 9, 2034 (8 years, 8 months)
Last Updated June 10, 2025
Name Servers jay.ns.cloudflare.com, leah.ns.cloudflare.com
DNSSEC Enabled
Hosting
IP Address 34.102.158.113
ASN AS396982 (GOOGLE-CLOUD-PLATFORM - Google LLC, US)
Provider Google Cloud
Data source: rdap (0.3s)

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

Connection waterfall

DNS Lookup 5 ms TCP Connect 2 ms TLS Handshake 10 ms Server Processing 126 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