SEO audit for bpc88.vip
bpc88 - জনপ্রিয় স্লটস স্টাইল ও রিওয়ার্ড গাইড
Health 68/100 (fair) · 13 pages crawled · generated 2026-08-26
Download Markdown report (feed to ChatGPT / Claude / Cursor)bpc88 বাংলাদেশের বিশ্বস্ত অনলাইন ক্যাসিনো ও ক্রিকেট বেটিং প্ল্যাটফর্ম। bKash, Nagad দিয়ে জমা করুন এবং বড় জয় উপভোগ করুন।
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Performance | 72 | 0 | 12 | 31 |
| Security | 72 | 0 | 12 | 12 |
| Agent Readiness | 75 | 0 | 11 | 25 |
| Titles | 98 | 0 | 1 | 2 |
| Cache | 100 | 0 | 0 | 12 |
| Images | 100 | 0 | 0 | 12 |
| Meta Description | 100 | 0 | 0 | 1 |
| Social | 100 | 0 | 0 | 11 |
| Structured Data | 100 | 0 | 0 | 2 |
Warnings (4 rules)
warning Control has no accessible name
Rule agent.control_no_name · Agent Readiness · 11 occurrence(s)
- https://bpc88.vip/about-us — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/bpc88-casino — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/bpc88-login — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/cricket — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/faq — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/fortune-rabbit — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/privacy-policy — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/responsible-gaming — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/slots — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/terms-conditions — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://bpc88.vip/wheel — 1 button/link(s) with no text or aria-label — an agent can't target them
warning Content-Type header doesn't match the actual content
Rule headers.content_type_mismatch · Security · 12 occurrence(s)
- https://bpc88.vip/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/about-us — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/bpc88-casino — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/bpc88-login — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/cricket — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/faq — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/fortune-rabbit — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/privacy-policy — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/responsible-gaming — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/slots — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/terms-conditions — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://bpc88.vip/wheel — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
warning Render-blocking script in <head> (no defer/async)
Rule perf.render_blocking · Performance · 12 occurrence(s)
- https://bpc88.vip/ — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/about-us — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/bpc88-casino — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/bpc88-login — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/cricket — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/faq — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/fortune-rabbit — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/privacy-policy — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/responsible-gaming — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/slots — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/terms-conditions — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://bpc88.vip/wheel — 1 render-blocking <script> in <head> (add defer/async or use type=module)
warning Title likely truncated in SERP (too wide)
Rule title.too_long · Titles · 1 occurrence(s)
- https://bpc88.vip/cricket — 69 chars, ~585px (limit ~580px)
Notices (14 rules)
notice Heading levels skip a level
Rule agent.heading_skip · Agent Readiness · 12 occurrence(s)
- https://bpc88.vip/ — h5 follows h2 — skips h3
- https://bpc88.vip/about-us — h5 follows h2 — skips h3
- https://bpc88.vip/bpc88-casino — h4 follows h2 — skips h3
- https://bpc88.vip/bpc88-login — h5 follows h3 — skips h4
- https://bpc88.vip/cricket — h5 follows h2 — skips h3
- https://bpc88.vip/faq — h5 follows h2 — skips h3
- https://bpc88.vip/fortune-rabbit — h5 follows h2 — skips h3
- https://bpc88.vip/privacy-policy — h5 follows h1 — skips h2
- https://bpc88.vip/responsible-gaming — h3 follows h1 — skips h2
- https://bpc88.vip/slots — h5 follows h2 — skips h3
- https://bpc88.vip/terms-conditions — h5 follows h1 — skips h2
- https://bpc88.vip/wheel — h5 follows h2 — skips h3
notice No llms.txt for AI agents
Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)
- https://bpc88.vip/ — no llms.txt found at the site root — add one so AI agents get a curated site summary
notice No main landmark for AI agents
Rule agent.no_main_landmark · Agent Readiness · 12 occurrence(s)
- https://bpc88.vip/ — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/about-us — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/bpc88-casino — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/bpc88-login — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/cricket — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/faq — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/fortune-rabbit — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/privacy-policy — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/responsible-gaming — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/slots — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/terms-conditions — add a <main> element (or role=main) around the primary content
- https://bpc88.vip/wheel — add a <main> element (or role=main) around the primary content
notice Page served uncached (no-store/private or CDN bypass)
Rule cache.not_cacheable · Cache · 12 occurrence(s)
- https://bpc88.vip/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/about-us — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/bpc88-casino — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/bpc88-login — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/cricket — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/faq — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/fortune-rabbit — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/privacy-policy — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/responsible-gaming — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/slots — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/terms-conditions — Cache-Control: (none) · cloudflare: DYNAMIC
- https://bpc88.vip/wheel — Cache-Control: (none) · cloudflare: DYNAMIC
notice Likely hero image lacks fetchpriority=high
Rule images.hero_no_fetchpriority · Performance · 7 occurrence(s)
- https://bpc88.vip/ — the likely hero/LCP image (hme4bqcfvjz.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://bpc88.vip/bpc88-casino — the likely hero/LCP image (62dn6sxf8z.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://bpc88.vip/bpc88-login — the likely hero/LCP image (gdnl5dm8luz.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://bpc88.vip/cricket — the likely hero/LCP image (m579bu9kb3.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://bpc88.vip/fortune-rabbit — the likely hero/LCP image (cjcqvmt1z1jl.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://bpc88.vip/slots — the likely hero/LCP image (7gqmlovw7t.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://bpc88.vip/wheel — the likely hero/LCP image (b963qvvhwm.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
notice Images without width/height (layout shift / CLS)
Rule images.missing_dimensions · Images · 12 occurrence(s)
- https://bpc88.vip/ — 10 of 10 images without width/height
- https://bpc88.vip/about-us — 1 of 1 images without width/height
- https://bpc88.vip/bpc88-casino — 5 of 5 images without width/height
- https://bpc88.vip/bpc88-login — 5 of 5 images without width/height
- https://bpc88.vip/cricket — 5 of 5 images without width/height
- https://bpc88.vip/faq — 1 of 1 images without width/height
- https://bpc88.vip/fortune-rabbit — 5 of 5 images without width/height
- https://bpc88.vip/privacy-policy — 1 of 1 images without width/height
- https://bpc88.vip/responsible-gaming — 1 of 1 images without width/height
- https://bpc88.vip/slots — 5 of 5 images without width/height
- https://bpc88.vip/terms-conditions — 1 of 1 images without width/height
- https://bpc88.vip/wheel — 6 of 6 images without width/height
notice Meta description too long
Rule meta_desc.too_long · Meta Description · 1 occurrence(s)
- https://bpc88.vip/slots — 161 chars
notice Missing Open Graph tags
Rule og.missing · Social · 11 occurrence(s)
- https://bpc88.vip/about-us — og:image
- https://bpc88.vip/bpc88-casino — og:image
- https://bpc88.vip/bpc88-login — og:image
- https://bpc88.vip/cricket — og:image
- https://bpc88.vip/faq — og:image
- https://bpc88.vip/fortune-rabbit — og:image
- https://bpc88.vip/privacy-policy — og:image
- https://bpc88.vip/responsible-gaming — og:image
- https://bpc88.vip/slots — og:image
- https://bpc88.vip/terms-conditions — og:image
- https://bpc88.vip/wheel — og:image
notice Legacy image format (jpg/png/gif) with no next-gen fallback
Rule perf.images_legacy_format · Performance · 12 occurrence(s)
- https://bpc88.vip/ — 10 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/about-us — 1 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/bpc88-casino — 5 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/bpc88-login — 5 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/cricket — 5 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/faq — 1 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/fortune-rabbit — 5 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/privacy-policy — 1 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/responsible-gaming — 1 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/slots — 5 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/terms-conditions — 1 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bpc88.vip/wheel — 6 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
notice No ETag header (no conditional GET for unchanged pages)
Rule perf.no_etag · Performance · 12 occurrence(s)
- https://bpc88.vip/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/about-us — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/bpc88-casino — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/bpc88-login — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/cricket — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/faq — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/fortune-rabbit — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/privacy-policy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/responsible-gaming — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/slots — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/terms-conditions — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://bpc88.vip/wheel — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
notice FAQPage structured data (rich result removed May 2026)
Rule schema.faq_deprecated · Structured Data · 1 occurrence(s)
- https://bpc88.vip/faq — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
notice No structured data detected
Rule schema.none · Structured Data · 1 occurrence(s)
notice Missing recommended security headers
Rule security.missing_headers · Security · 12 occurrence(s)
- https://bpc88.vip/ — CSP, X-Content-Type-Options
- https://bpc88.vip/about-us — CSP, X-Content-Type-Options
- https://bpc88.vip/bpc88-casino — CSP, X-Content-Type-Options
- https://bpc88.vip/bpc88-login — CSP, X-Content-Type-Options
- https://bpc88.vip/cricket — CSP, X-Content-Type-Options
- https://bpc88.vip/faq — CSP, X-Content-Type-Options
- https://bpc88.vip/fortune-rabbit — CSP, X-Content-Type-Options
- https://bpc88.vip/privacy-policy — CSP, X-Content-Type-Options
- https://bpc88.vip/responsible-gaming — CSP, X-Content-Type-Options
- https://bpc88.vip/slots — CSP, X-Content-Type-Options
- https://bpc88.vip/terms-conditions — CSP, X-Content-Type-Options
- https://bpc88.vip/wheel — CSP, X-Content-Type-Options
notice Title tag is identical to the H1 (missed keyword variation)
Rule title.same_as_h1 · Titles · 2 occurrence(s)
- https://bpc88.vip/cricket — the <title> and the H1 are identical — differentiate them to cover more query variation
- https://bpc88.vip/slots — the <title> and the H1 are identical — differentiate them to cover more query variation
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://bpc88.vip/ bpc88 - জনপ্রিয় স্লটস স্টাইল ও রিওয়ার্ড গাইড |
200 | yes | 2068 | 12 |
| https://bpc88.vip/about-us আমাদের সম্পর্কে — bpc88 বাংলাদেশের বিশ্বস্ত গেমিং প্ল্যাটফর্ম |
200 | yes | 1050 | 12 |
| https://bpc88.vip/bpc88-casino bpc88 Casino — বাংলাদেশের সেরা অনলাইন ক্যাসিনো প্ল্যাটফর্ম |
200 | yes | 1429 | 12 |
| https://bpc88.vip/bpc88-login bpc88 Login — সহজে লগইন করুন এবং খেলা শুরু করুন |
200 | yes | 1285 | 12 |
| https://bpc88.vip/cricket bpc88 ক্রিকেট বেটিং — বাংলাদেশের সেরা অনলাইন ক্রিকেট বাজি প্ল্যাটফর্ম |
200 | yes | 1439 | 12 |
| https://bpc88.vip/faq bpc88 FAQ — সচরাচর জিজ্ঞাসিত প্রশ্নোত্তর |
200 | yes | 852 | 12 |
| https://bpc88.vip/fortune-rabbit bpc88 ফরচুন র্যাবিট — সৌভাগ্যের খরগোশের সাথে বড় জয় নিন |
200 | yes | 1677 | 12 |
| https://bpc88.vip/privacy-policy গোপনীয়তা নীতি — bpc88 অনলাইন গেমিং প্ল্যাটফর্ম |
200 | yes | 1650 | 12 |
| https://bpc88.vip/responsible-gaming দায়িত্বশীল খেলা — bpc88 নিরাপদ গেমিং নির্দেশিকা |
200 | yes | 1291 | 12 |
| https://bpc88.vip/slots bpc88 স্লটস — বাংলাদেশের সেরা অনলাইন স্লট গেম প্ল্যাটফর্ম |
200 | yes | 1593 | 12 |
| https://bpc88.vip/terms-conditions নিয়ম ও শর্তাবলী — bpc88 অনলাইন গেমিং প্ল্যাটফর্ম |
200 | yes | 1643 | 12 |
| https://bpc88.vip/wheel bpc88 হুইল গেম — লাকি হুইল ঘুরিয়ে বড় পুরস্কার জিতুন |
200 | yes | 1250 | 12 |
| https://bpc88.vip/sitemap.xml | 200 | no | 0 | 12 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.