Catalog / hana.one
65

SEO audit for hana.one

Hana — the social network for the people you already know

other

Health 65/100 (fair) · 50 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)

Discover people you already know. See how many groups you share.

50
pages crawled
46
indexable pages
0
errors
164
warnings
379
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Security 72 0 46 46
Content 77 0 38 48
Links 77 0 38 0
Hreflang 84 0 26 0
Duplicate 97 0 5 6
Budget 98 0 4 0
Crawlability 98 0 3 10
Performance 99 0 2 106
Agent Readiness 99 0 1 12
Structured Data 99 0 1 16
Cache 100 0 0 46
Canonical 100 0 0 26
Headings 100 0 0 23
Images 100 0 0 5
Meta Description 100 0 0 30
Sitemap 100 0 0 1
Titles 100 0 0 4
Findings

Warnings (10 rules)

warning Control has no accessible name

Rule agent.control_no_name · Agent Readiness · 1 occurrence(s)

  • https://hana.one/eds — 33 button/link(s) with no text or aria-label — an agent can't target them

warning robots.txt-disallowed URL receives internal links (crawl-budget leak)

Rule budget.disallow_linked · Budget · 4 occurrence(s)

  • https://hana.one/app/contact — internal links point to https://hana.one/app/contact, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://hana.one/, https://hana.one/business, https://hana.one/changelog.
  • https://hana.one/app/help — internal links point to https://hana.one/app/help, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://hana.one/, https://hana.one/business, https://hana.one/changelog.
  • https://hana.one/app/pricing — internal links point to https://hana.one/app/pricing, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://hana.one/business.
  • https://hana.one/app/thanks — internal links point to https://hana.one/app/thanks, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://hana.one/, https://hana.one/business, https://hana.one/changelog.

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 5 occurrence(s)

  • https://hana.one/fcca — title shared by 5 pages: https://hana.one/fcca/about, https://hana.one/fcca/booking, https://hana.one/fcca/event
  • https://hana.one/fcca/about — title shared by 5 pages: https://hana.one/fcca, https://hana.one/fcca/booking, https://hana.one/fcca/event
  • https://hana.one/fcca/booking — title shared by 5 pages: https://hana.one/fcca/about, https://hana.one/fcca, https://hana.one/fcca/event
  • https://hana.one/fcca/event — title shared by 5 pages: https://hana.one/fcca/about, https://hana.one/fcca, https://hana.one/fcca/booking
  • https://hana.one/fcca/price — title shared by 5 pages: https://hana.one/fcca/about, https://hana.one/fcca, https://hana.one/fcca/booking

warning Content-Type header doesn't match the actual content

Rule headers.content_type_mismatch · Security · 46 occurrence(s)

  • https://hana.one/ — 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://hana.one/business — 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://hana.one/changelog — 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://hana.one/cmca — 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://hana.one/eds — 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://hana.one/eds/event/c95c72e1-c82f-4aff-9dda-d7fc8bdecd0f — 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://hana.one/explore — 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://hana.one/fcca — 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://hana.one/fcca/about — 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://hana.one/fcca/booking — 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://hana.one/fcca/event — 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://hana.one/fcca/price — 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://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5 — 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://hana.one/fcca/product — 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://hana.one/googirl — 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://hana.one/googirl/event/9b2b20dc-d771-48f7-8771-0ef1356f1ab4 — 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://hana.one/infinitent — 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://hana.one/legal — 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://hana.one/legal/privacy — 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://hana.one/legal/terms — 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://hana.one/sync — 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://hana.one/sync/about — 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://hana.one/sync/booking — 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://hana.one/sync/event — 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://hana.one/sync/price — 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 hreflang set has no self-reference

Rule hreflang.missing_self · Hreflang · 26 occurrence(s)

warning Hero/LCP image is lazy-loaded (loading=lazy delays LCP)

Rule images.no_lazy_lcp_candidate · Performance · 2 occurrence(s)

  • https://hana.one/eds — the likely hero/LCP image (035be1d0-61f5-427b-91fe-13c2f43c5c1d.jpg) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://hana.one/googirl — the likely hero/LCP image (bba95a63-ceab-475f-b0da-961ef1e20130.jpg) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.

warning Internal link points to a redirect

Rule links.redirect_target · Links · 38 occurrence(s)

warning Redirect chain (multiple hops)

Rule redirect.chain · Crawlability · 3 occurrence(s)

warning Product schema missing required or recommended properties

Rule schema.product_incomplete · Structured Data · 1 occurrence(s)

  • https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5 — Product structured data is missing required property (image) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (sku|gtin, brand, aggregateRating, review, description), which enrich the result.

Notices (24 rules)

notice Heading levels skip a level

Rule agent.heading_skip · Agent Readiness · 9 occurrence(s)

notice No llms.txt for AI agents

Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)

  • https://hana.one/ — 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 · 2 occurrence(s)

notice Page served uncached (no-store/private or CDN bypass)

Rule cache.not_cacheable · Cache · 46 occurrence(s)

notice Canonical points to a different URL

Rule canonical.non_self · Canonical · 26 occurrence(s)

notice Main text is hard to read (low Flesch Reading Ease)

Rule content.readability_poor · Content · 6 occurrence(s)

  • https://hana.one/changelog — this page reads as difficult (Flesch Reading Ease 46, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hana.one/eds — this page reads as difficult (Flesch Reading Ease 34, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hana.one/eds/event/e03b8a32-9e04-4857-ab1d-9218dfc3e4ed — this page reads as very difficult (Flesch Reading Ease -85, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hana.one/eds/event/e516595f-2fc7-4ef3-806f-27dc8d6bdb12 — this page reads as very difficult (Flesch Reading Ease -44, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hana.one/explore — this page reads as very difficult (Flesch Reading Ease -82, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hana.one/googirl — this page reads as difficult (Flesch Reading Ease 35, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

notice Duplicate meta description across pages

Rule duplicate.meta_desc · Duplicate · 6 occurrence(s)

  • https://hana.one/fcca — meta description shared by 6 pages: https://hana.one/fcca/about, https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5, https://hana.one/fcca/booking
  • https://hana.one/fcca/about — meta description shared by 6 pages: https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5, https://hana.one/fcca, https://hana.one/fcca/booking
  • https://hana.one/fcca/booking — meta description shared by 6 pages: https://hana.one/fcca/about, https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5, https://hana.one/fcca
  • https://hana.one/fcca/event — meta description shared by 6 pages: https://hana.one/fcca/about, https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5, https://hana.one/fcca
  • https://hana.one/fcca/price — meta description shared by 6 pages: https://hana.one/fcca/about, https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5, https://hana.one/fcca
  • https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5 — meta description shared by 6 pages: https://hana.one/fcca/about, https://hana.one/fcca, https://hana.one/fcca/booking

notice Multiple <h1> elements

Rule h1.multiple · Headings · 23 occurrence(s)

notice Image filename is generic/auto-generated (missed image-search signal)

Rule images.generic_filename · Images · 5 occurrence(s)

  • https://hana.one/eds — 33 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://hana.one/googirl — 21 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://hana.one/googirl/event/8d59b95b-3f23-4cf6-90c9-57f43a54175a — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://hana.one/googirl/event/9b2b20dc-d771-48f7-8771-0ef1356f1ab4 — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://hana.one/googirl/event/e5c2d264-924b-49ba-acc7-69f9da5c0eb0 — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.

notice Meta description too short

Rule meta_desc.too_short · Meta Description · 30 occurrence(s)

notice Large DOM (over 1500 elements) slows rendering & interaction

Rule perf.dom_size_large · Performance · 2 occurrence(s)

  • https://hana.one/eds — the page has 2182 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://hana.one/googirl — the page has 2287 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.

notice Legacy image format (jpg/png/gif) with no next-gen fallback

Rule perf.images_legacy_format · Performance · 5 occurrence(s)

notice No ETag header (no conditional GET for unchanged pages)

Rule perf.no_etag · Performance · 46 occurrence(s)

  • https://hana.one/ — 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://hana.one/business — 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://hana.one/changelog — 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://hana.one/cmca — 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://hana.one/eds — 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://hana.one/eds/event/c95c72e1-c82f-4aff-9dda-d7fc8bdecd0f — 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://hana.one/explore — 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://hana.one/fcca — 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://hana.one/fcca/about — 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://hana.one/fcca/booking — 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://hana.one/fcca/event — 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://hana.one/fcca/price — 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://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5 — 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://hana.one/fcca/product — 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://hana.one/googirl — 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://hana.one/googirl/event/9b2b20dc-d771-48f7-8771-0ef1356f1ab4 — 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://hana.one/infinitent — 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://hana.one/legal — 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://hana.one/legal/privacy — 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://hana.one/legal/terms — 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://hana.one/sync — 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://hana.one/sync/about — 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://hana.one/sync/booking — 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://hana.one/sync/event — 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://hana.one/sync/price — 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 No Last-Modified header (no conditional GET for unchanged pages)

Rule perf.no_last_modified · Performance · 46 occurrence(s)

  • https://hana.one/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/business — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/changelog — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/cmca — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/eds — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/eds/event/c95c72e1-c82f-4aff-9dda-d7fc8bdecd0f — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/explore — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/fcca — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/fcca/about — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/fcca/booking — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/fcca/event — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/fcca/price — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/fcca/product — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/googirl — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/googirl/event/9b2b20dc-d771-48f7-8771-0ef1356f1ab4 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/infinitent — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/legal — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/legal/privacy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/legal/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/sync — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/sync/about — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/sync/booking — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/sync/event — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://hana.one/sync/price — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.

notice URL redirects to another URL

Rule redirect.single · Crawlability · 6 occurrence(s)

notice Blocked by robots.txt

Rule robots.blocked · Crawlability · 4 occurrence(s)

notice Deep page has no BreadcrumbList structured data

Rule schema.breadcrumb_missing · Structured Data · 5 occurrence(s)

notice Indexable page not listed in sitemap

Rule sitemap.orphan_not_listed · Sitemap · 1 occurrence(s)

notice Title tag is identical to the H1 (missed keyword variation)

Rule title.same_as_h1 · Titles · 1 occurrence(s)

  • https://hana.one/sync — the <title> and the H1 are identical — differentiate them to cover more query variation

notice Title is very short

Rule title.too_short · Titles · 3 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://hana.one/legal/privacy
Privacy Policy | Hana
200 yes 1825 7
https://hana.one/legal/terms
Terms of Service | Hana
200 yes 2176 7
https://hana.one/legal
Legal | Hana
200 yes 97 2
https://hana.one/changelog
What's New | Hana
200 yes 428 42
https://hana.one/
Hana — the social network for the people you already know
200 yes 419 5
https://hana.one/eds
Events | EDS | EDS
200 yes 1192 20
https://hana.one/business
Hana for business — The operating system for your community
200 yes 331 3
https://hana.one/fcca/price
Passes & memberships from FCCA | FCCA
200 yes 41 7
https://hana.one/sync
sync
200 yes 29 7
https://hana.one/googirl
Events | Googirl | Googirl
200 yes 1435 6
https://hana.one/fcca/price/d41c9901-93b1-7bb4-af00-35c0b3d72ba5
Ticket | FCCA
200 yes 77 5
https://hana.one/cmca
Events | CMCA | CMCA
200 yes 38 2
https://hana.one/infinitent
Passes & memberships from Infinitent | Infinitent
200 yes 41 2
https://hana.one/googirl/event/8d59b95b-3f23-4cf6-90c9-57f43a54175a
Ballet Absolute Beginner Syllabus | Googirl
200 yes 73 2
https://hana.one/googirl/event/9b2b20dc-d771-48f7-8771-0ef1356f1ab4
Formation Dance | Googirl
200 yes 69 2
https://hana.one/googirl/event/d7d57324-bf95-49d7-a35e-a58843c5c3df
基础软开+旋转训练 | Googirl
200 yes 66 2
https://hana.one/googirl/event/e5c2d264-924b-49ba-acc7-69f9da5c0eb0
Ballet Beginner Syllabus | Googirl
200 yes 68 2
https://hana.one/eds/event/2bbe0458-9c65-4cfb-b00c-6d2e3be96415
Beginner Plus Jazz Funk | EDS
200 yes 70 2
https://hana.one/eds/event/3ed4e960-ea2c-477a-bc3f-5f280921cbca
Beginner Plus Lyrical Choreo | EDS
200 yes 73 2
https://hana.one/eds/event/476f5b6e-5b3f-43ad-9972-7f40e6a914c7
Beginner Plus High Heels | EDS
200 yes 65 2
https://hana.one/eds/event/65790cc4-35a3-45ba-8a7c-4ca80d1715e3
Intermediate Hip Hop | EDS
200 yes 67 2
https://hana.one/eds/event/659ff02a-2bc9-4f37-802c-dcf752046da5
Int/Adv Choreo | EDS
200 yes 66 2
https://hana.one/eds/event/6c555ab9-c2fa-49f3-9fd7-d0dcfe1c07f9
Beginner Hip Hop | EDS
200 yes 63 2
https://hana.one/eds/event/6de9bf89-a925-476f-b72b-867e0fc3d8b9
Beginner Breaking | EDS
200 yes 61 2
https://hana.one/eds/event/783adaf7-99c3-46c7-8ce9-a52c49b4817e
Beginner Hip Hop | EDS
200 yes 64 2
https://hana.one/eds/event/7c0370ed-36c9-4ef0-9d86-3059a09f629a
Beginner Hip Hop | EDS
200 yes 67 2
https://hana.one/eds/event/7c91e3bc-6198-4ce8-bebc-d022a68208d5
Beginner K-pop | EDS
200 yes 66 2
https://hana.one/eds/event/87dd12b3-559f-4998-80ac-43eb5e97158e
Beginner Hip Hop | EDS
200 yes 65 2
https://hana.one/eds/event/8f9b1a3a-fea8-40e2-8a94-e8a7231949ad
Beginner Hip Hop | EDS
200 yes 65 2
https://hana.one/eds/event/9e7bb8a5-d285-41da-86e4-3b3e8d44aeed
Intermediate K-pop | EDS
200 yes 61 2
https://hana.one/eds/event/c95c72e1-c82f-4aff-9dda-d7fc8bdecd0f
All Levels Locking | EDS
200 yes 67 2
https://hana.one/eds/event/d5e74acc-8b09-4e16-be34-a23534ad2966
Beginner Hip Hop | EDS
200 yes 64 2
https://hana.one/eds/event/d8c96ea6-8af7-4116-8f2a-e1f576f5675e
Beginner Hip Hop | EDS
200 yes 65 2
https://hana.one/eds/event/e03b8a32-9e04-4857-ab1d-9218dfc3e4ed
Foundation Junior Hip Hop | EDS
200 yes 155 2
https://hana.one/eds/event/e516595f-2fc7-4ef3-806f-27dc8d6bdb12
Beginner Plus Latin | EDS
200 yes 123 2
https://hana.one/fcca
Passes & memberships from FCCA | FCCA
200 yes 41 1
https://hana.one/explore
Explore Hana | Hana
200 yes 1310 0
https://hana.one/fcca/about
Passes & memberships from FCCA | FCCA
200 yes 41 0
https://hana.one/fcca/booking
Passes & memberships from FCCA | FCCA
200 yes 41 0
https://hana.one/fcca/event
Passes & memberships from FCCA | FCCA
200 yes 41 0
https://hana.one/fcca/product
Products from FCCA | FCCA
200 yes 29 0
https://hana.one/sync/about
About sync | sync
200 yes 24 0
https://hana.one/sync/booking
Book with sync | sync
200 yes 34 0
https://hana.one/sync/event
Events | sync | sync
200 yes 35 0
https://hana.one/sync/price
Passes & memberships from sync | sync
200 yes 33 0
https://hana.one/sync/product
Products from sync | sync
200 yes 28 0
https://hana.one/app/contact 0 no 0 7
https://hana.one/app/help 0 no 0 7
https://hana.one/app/pricing 0 no 0 1
https://hana.one/app/thanks 0 no 0 7

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →