Skip to content
https://www.upwork.com

Infrastructure

· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.
SCORE
89
GRADE
B
FIX
0
REVIEW
3
PASS
6
INFO
0
Probed from Singapore, Singapore
403 Forbidden
Checks
9
6 PASS 3 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

C
TLS Certificate Expiry & Recommendations
Action
29 days until leaf cert expires — 4 issues to address
REVIEW

Certificate validity

29
days left
0d 30d 60d 90d+
Renew soon — under 30 days remaining

Recommended actions

  • Renew certificate — 29 days remaining
  • Submit your domain to hstspreload.org to be added to the Chrome preload list
  • 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: SIN)
Got: cf-ray: 9e8bb0b16c209d0b-SIN
CDN Detected: Cloudflare
Provider Cloudflare Evidence cf-ray: 9e8bb0b16c209d0b-SIN
A
DNS Records
2 A records, 11 ms lookup
PASS
2 A records, 11 ms lookup
Info::
Resolves to 2 IPv4 address(es)
Got: 104.18.90.237, 104.18.89.237
Info::
No IPv6 (AAAA) records
Info::
No NS records found
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: 11 ms
Got: 11 ms
A104.18.90.237, 104.18.89.237
AAAA
CNAME
NS
MX
TXT
CAALookup not available with standard resolver
Resolved in 11 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+
Redirect Chain
No redirects — direct access
PASS
No redirects — direct access
Info::
No redirects — direct access
Got: https://www.upwork.com

https://www.upwork.com

368 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://www.upwork.com200368 msHTTP/1.1cloudflare
A
Crawlability
robots.txt present, no sitemap
PASS
robots.txt present, no sitemap
Info::
robots.txt is present
Got: 9026 bytes
Info::
No sitemap.xml found
A sitemap helps search engines discover and index your pages more efficiently.
Info::
robots.txt references sitemap

A sitemap helps search engines discover and index your pages more efficiently.

Why this matters

No sitemap.xml — Google relies on crawl-graph discovery alone, slowing indexing of deep or fresh URLs.

Learn more

A sitemap accelerates Google's discovery of new and updated content. Most CMSes auto-generate one; static-site frameworks need a build-step plugin. Reference it from robots.txt and submit in Search Console to confirm Google can fetch it.

Source: sitemaps.org / Google Search Central

robots.txt 200 OK
Size 9026 B Sitemaps referenced 1 User-agents ia_archiver, Linespider, PetalBot, proximic, * Blocking No — crawling allowed
User-agent: *

# Sitemaps
Sitemap: https://www.upwork.com/sitemap.xml
# LLMs: https://www.upwork.com/llms.txt

# Directories
Disallow: /att/
Disallow: /att-old/
Disallow: /freelancers/public/api/
Disallow: /messages/
Disallow: /*/jobs/search*
Disallow: /search/profiles/*
Disallow: /catalog-images/*
Disallow: /ab/
Disallow: /hire/de/sem/
Disallow: /nx/

# Files
Disallow: /j/view_opening_popup.php
Disallow: /leaving_odesk.php
Disallow: /leaving-odesk
Disallow: /leaving
Disallow: /nx/top-nav-ssi/visitor-gql-token

# Paths (clean URLs)
Disallow: /rss/
Disallow: /atom/
Disallow: /jobs/rss
Disallow: /jobs/atom
Disallow: /jobs/*?source=rss
Disallow: /upi/metrics/rum/v1
Disallow: /upi/jslogger
Disallow: /nx/top-nav-ssi/visitor-gql-token
Allow: /ab/account-security/reset-password
Allow: /ab/downloads
Allow: /ab/g/pub/wom/prx/
Allow: /ab/g/pub/wom/bnr/
Allow: /nx/signup/

# Exclude blog search
Disallow: /*/wp-content/cache/
Disallow: /*/trackback/
Disallow: /*/feed/
Disallow: /*/comments/
Disallow: /blog/?s=*
Disallow: /hiring/?s=*
Disallow: /hiring/?seo-skill-pages=*
Disallow: /press/?s=*
Disallow: /blog/ajax-api/
Disallow: /hiring/ajax-api/

Disallow: /nx/signup/?accountType
Disallow: /nx/signup/?clRedirectTo
Disallow: /nx/signup/?dest
Disallow: /nx/signup/?midTier
Disallow: /nx/signup/?portal
Disallow: /nx/signup/?redir
Disallow: /nx/signup/?signupType

Disallow: */login*?*
Disallow: */signup*?*
Disallow: /signup/contact-contractor/id/*
Disallow: /signup/view-profile/id/*
Disallow: /signup/please-verify*
Disallow: /offers/?job*
Disallow: /job/*/apply/$
Disallow: /b/signup/create-account/client_contact_freelancer
Disallow: /b/signup/create-account/freelancer_apply_job
Disallow: /freelance-jobs/fiction-writing/
Disallow: /ab/account-security/login?

Disallow: /api*

# Exclude referrals URLs
Disallow: /referrals*

# Exclude Job Search noindex URLs
Disallow: /o/jobs/browse/*?*client_hires=*
Disallow: /o/jobs/browse/*?*duration=*
Disallow: /o/jobs/browse/*?*workload=*
Disallow: /o/jobs/browse/*?*sort=*
Disallow: /o/jobs/browse/api/sands-suggestions*
Disallow: /o/jobs/job/*

# Exclude Vega Job Search URLs for now
Disallow: /r/

# Exclude Registration Success page
Disallow: /signup/registration-success*

# Exclude temporary Vega Job Details URLs
Disallow: /c/o/jobs/job/

# Exclude Vega Profiles Search new parameters
Disallow: /o/profiles/browse*?*exp=*
Disallow: /o/profiles/browse*?*loc=*
Disallow: /o/profiles/browse*?*rhrs=*
Disallow: /o/profiles/browse*?*rate=*
Disallow: /o/profiles/browse*?*tests=*
Disallow: /o/profiles/browse*?*tests_10=*
Disallow: /o/profiles/browse*?*last=*
Disallow: /o/profiles/browse*?*pt=*
Disallow: /o/profiles/browse*?*english=*
Disallow: /o/profiles/browse*?*lang=*
Disallow: /o/profiles/browse*?*local_hiring=*
Disallow: /o/profiles/browse*?*revenue=*
Disallow: /o/profiles/browse*?*user_pref=*
Disallow: /o/profiles/browse/api/freelancer-search-facet/

# Excluded agencies
Disallow: /o/companies/~0180c6b44423eeda59

# Nuxt testing app
Disallow: /ab/cat/*

# Block old static routes
Disallow: /i/js/*
Disallow: /i/css/*
Disallow: /i/images/*
Disallow: /i/wd/*
Disallow: /i/wdj/*
Disallow: /i/p/*
Disallow: /i/trends/*
Disallow: /i/wp-login.php
Disallow: /i/related_users/*
Disallow: /i/smr/*
Disallow: /i/img/*
Disallow: /l/cn/data-analysts-in-beijing/js/*
Disallow: /l/cn/data-analysts-in-beijing/css/*

Disallow: /jobs/
Disallow: /track/

# Block RSS/Atom feeds
Disallow: /ab/feed/

# Block UPI pages
Disallow: /upi/jslogger
Disallow: /upi/metrics/rum
Disallow: /upi/psmetrics

# -------------------------------
# ---------START ME-2650---------
# -------------------------------
# Tracking / attribution
Disallow: /*?utm_*
Disallow: /*?gclid=*
Disallow: /*?gad_source=*
Disallow: /*?sem=*
Disallow: /*?trk=*
Disallow: /*?promobnr=*
Disallow: /*?promo=*
Disallow: /*?channel=*
Disallow: /*?mp_source=*
Disallow: /*?redir=*
Disallow: /*?ref=*
Disallow: /*?referrer_url_path=*
Disallow: /*?share=*
Disallow: /*?a=*
Disallow: /*?p=*
Disallow: /*?name=*
Disallow: /*?image=*
Disallow: /*?track=*

# Navigation / pagination / session noise
Disallow: /*?page=*
Disallow: /*?items_per_page=*
Disallow: /*?order=*
Disallow: /*?sort=*
Disallow: /*?nav_dir=*
Disallow: /*?viewmode=*
Disallow: /*?device-view=*
Disallow: /*?dfh_uid=*
Disallow: /*?dm_to_uid=*
Disallow: /*?s=*

# Signup / verification and related params
Disallow: /*?accountType=*
Disallow: /*?portal=*
Disallow: /*?dest=*
Disallow: /*?reg-success=*
Disallow: /*?frkscc=*
Disallow: /nx/signup/verify-email/*
Disallow: /nx/signup/verify-phone*

# Jobs / job board
Disallow: /*?gh_jid=*
Disallow: /*?loc=*

# Attachment / bot noise
Disallow: /*?attachment-id=*
Disallow: /*?_pxhc=*
Disallow: /*?ff_UPL635ChatPro=*

# Facets / filters (scoped to services to avoid over-blocking)
Disallow: /services/*?all=*
Disallow: /services/*?start=*
Disallow: /services/*?cat=*
Disallow: /services/*?price_range=*
Disallow: /services/*?talent_quality=*
Disallow: /services/*?spec_choice=*
# -------------------------------
# ----------END ME-2650----------
# -------------------------------

# -------------------------------
# ---------START ME-2888---------
# -------------------------------
# Ad platform click IDs
Disallow: /*?fbclid=*
Disallow: /*?msclkid=*
Disallow: /*?ttclid=*
Disallow: /*?qclid=*
Disallow: /*?yclid=*

# Campaign / partner / promo tracking
Disallow: /*?vt_cmp=*
Disallow: /*?mf_ct_campaign=*
Disallow: /*?partner_code=*
Disallow: /*?promo_code=*

# Pagination / view variants
Disallow: /*?*_page=*
Disallow: /*?offset=*
Disallow: /*?view=*
Disallow: /*?page_variant=*
Disallow: /*?toc-variant-*
Disallow: /*?navPos=*

# Session / request IDs
Disallow: /*?sid=*
Disallow: /*?rid=*
Disallow: /*?kuid=*
Disallow: /*?ssrid=*

# Shortlinks and malformed query strings
Disallow: /*?shortlink*
Disallow: /*?!*
Disallow: /*?&*

# Internal framework / redirect params
Disallow: /*?_rsc=*
Disallow: /*?_redirected=*

# Google Analytics cross-domain linker params
Disallow: /*?_ga=*
Disallow: /*?_gl=*
# -------------------------------
# ----------END ME-2888----------
# -------------------------------

# -------------------------------
# ---------START ME-3153---------
# -------------------------------
# Product / profile / org context (avoid duplicate indexable URLs)
Disallow: /*?nbs=
Disallow: /*?viewMode=
Disallow: /*?companyReference=
Disallow: /*?companyreference=
Disallow: /*?client_id=
Disallow: /*?wom=
Disallow: /*?pin=
Disallow: /*?english_level=
Disallow: /*?landing_url=
Disallow: /*?via=
Disallow: /*?org=
Disallow: /*?category=
Disallow: /*?tot=
Disallow: /*?tab=
Disallow: /*?t=
Disallow: /*?preventDismiss=
Disallow: /*?wtime=
Disallow: /*?referral=
Disallow: /*?wsrc=
Disallow: /*?step=
Disallow: /*?id=
Disallow: /*?title=
Disallow: /*?qpn-profile-completeness=
Disallow: /*?create-service-profile=
Disallow: /*?deleted-project-uid=
Disallow: /*?weekdayJdUid=
Disallow: /*?location=
Disallow: /*?pageTitle=
Disallow: /*?mbp-open=
Disallow: /*?forceEditor=
Disallow: /*?lor=
Disallow: /*?regv1=
Disallow: /*?openModal=
Disallow: /*?modal=
Disallow: /*?flow=
Disallow: /*?mpSource=
Disallow: /*?type=
Disallow: /*?section=
Disallow: /*?ee=
Disallow: /*?web=
Disallow: /*?uni=
Disallow: /*?euidtkncn=
Disallow: /*?os=

# Search / navigation / generic query noise
Disallow: /*?query=
Disallow: /*?link_search=
Disallow: /*?q=
Disallow: /*?source=

# Affiliate / paid / partner attribution
Disallow: /*?irclickid=
Disallow: /*?srsltid=
Disallow: /*?gh_src=
Disallow: /*?fpr=
Disallow: /*?partnerId=
Disallow: /*?campaignid=
Disallow: /*?campaign=
Disallow: /*?ppc=
Disallow: /*?afsrc=
Disallow: /*?irgwc=
Disallow: /*?gc_id=
Disallow: /*?bp-pevc-promocode=
Disallow: /*?_kx=

# Third-party widgets / reviews / share / app deep links
Disallow: /*?speechify_reviews=
Disallow: /*?product_studio_contact=
Disallow: /*?open-share=
Disallow: /*?mobile-app=

# Bot / challenge / CDN (Cloudflare)
Disallow: /*?__cf_chl_tk=

# Marketing automation / email / analytics IDs
Disallow: /*?__hstc=
Disallow: /*?_hsenc=
Disallow: /*?hsFormKey=
Disallow: /*?hsPreviewerApp=
Disallow: /*?hsSkipCache=
Disallow: /*?mc_cid=
Disallow: /*?itcat=
Disallow: /*?roistat_visit=
Disallow: /*?atr=
Disallow: /*?ajs_aid=
Disallow: /*?psafe_param=
Disallow: /*?requestId=

# CMS preview / versioning / WordPress ecosystem noise
Disallow: /*?ver=
Disallow: /*?preview_id=
Disallow: /*?elementor-preview=

# E-commerce / checkout / promos (third-party or legacy flows)
Disallow: /*?xcod=
Disallow: /*?pStoreID=
Disallow: /*?brand_id=
Disallow: /*?cdConvenio=
Disallow: /*?cartflows_flow=
Disallow: /*?Access_Code=
Disallow: /*?kclt=
Disallow: /*?ciphertext=
Disallow: /*?lessDeposite=

# Geo / locale variants
Disallow: /*?IDDrzava=
# -------------------------------
# ----------END ME-3153----------
# -------------------------------

# Block Wayback Machine
User-agent: ia_archiver
Allow: /legal/
Disallow: /

User-agent: Linespider
Disallow: /

User-agent: PetalBot
Disallow: /

User-agent: proximic
Disallow: /

sitemap.xml No sitemap found

No sitemap found

Adding a sitemap helps search engines discover your pages.

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: www)
Info::
HTTP correctly 301-redirects to HTTPS

www / non-www

200https://www.upwork.com/
301https://upwork.com/

Preferred variant: www

HTTP → HTTPS

301http://www.upwork.com/ https://www.upwork.com/

Consistent

A+
Domain Intelligence
upwork.com — via MarkMonitor Inc., 24 years, 6 months old, hosted on Cloudflare
PASS
upwork.com — via MarkMonitor Inc., 24 years, 6 months old, hosted on Cloudflare
Info::
Domain registered until Jan 30, 2028 (1 years, 10 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.
Info::
Hosting: Cloudflare
Got: AS13335
Domain expiry

531 days

January 30, 2028

SSL certificate

29 days

Issued by DigiCert Inc

Domain age

24 years, 6 months

Registered January 30, 2002

DNSSEC

Not enabled

Protects against DNS spoofing

Hosting

Cloudflare

ASN AS13335

104.18.90.237

Registrar

MarkMonitor Inc.

Lock status unknown 2 NS records
Expiry timeline
Today
+1 year
Domain expiry SSL expiry Danger zone (≤30 days)
Recommended actions
  • Renew the TLS certificate or verify auto-renewal is working
  • Enable DNSSEC to protect visitors from DNS spoofing
Registrar MarkMonitor Inc.
Created January 30, 2002 (24 years, 6 months ago)
Expires January 30, 2028 (1 years, 10 months)
Last Updated December 29, 2025
Name Servers fay.ns.cloudflare.com, jim.ns.cloudflare.com
DNSSEC Not enabled
Hosting
IP Address 104.18.90.237
ASN AS13335 (CLOUDFLARENET - Cloudflare, Inc., US)
Provider Cloudflare
Data source: rdap (0.5s)

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

A+
HTTP Probe Timing
Total 53 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.
7 ms
Time to First Byte Time to First Byte — how long the server takes to respond with the first byte of data.
39 ms
Total Time Total request time from DNS lookup through full response.
53 ms

Connection waterfall

DNS Lookup 2 ms TCP Connect 1 ms TLS Handshake 7 ms Server Processing 29 ms Content Transfer 14 ms
All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback