Catalog / haveapro.com
35

SEO audit for haveapro.com

Home | haveapro

otherWix

Health 35/100 (poor) · 21 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)
Screenshot of haveapro.com
21
pages crawled
16
indexable pages
18
errors
33
warnings
138
notices
7
orphan pages
6
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Structured Data 57 9 0 15
Links 66 6 4 7
Crawlability 86 3 0 0
Content 81 0 13 25
Meta Description 90 0 7 3
Agent Readiness 94 0 4 0
Budget 97 0 2 0
Indexability 97 0 2 0
Performance 99 0 1 32
Canonical 100 0 0 3
Headings 100 0 0 1
Images 100 0 0 8
Security 100 0 0 27
Sitemap 100 0 0 1
Social 100 0 0 7
URL 100 0 0 9
Findings

Errors (3 rules)

error Broken internal link (target 4xx/5xx)

Rule links.broken_internal · Links · 6 occurrence(s)

error JSON-LD block missing @context or @type

Rule schema.no_context_type · Structured Data · 9 occurrence(s)

Warnings (7 rules)

warning Control has no accessible name

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

warning Noindex page receives internal links (crawl-budget waste)

Rule budget.noindex_linked · Budget · 2 occurrence(s)

  • https://www.haveapro.com/booking-calendar/drawing-tutoring — this noindex page has 1 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://www.haveapro.com/book-online.
  • https://www.haveapro.com/booking-calendar/industry-insights — this noindex page has 1 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://www.haveapro.com/book-online.

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

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

  • https://www.haveapro.com/service-page — the likely hero/LCP image (11062b_7344b0fffa9c41e580794c15cea365d5~mv2.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 Page is noindex

Rule index.noindex · Indexability · 2 occurrence(s)

warning Orphan page (no internal inlinks)

Rule links.orphan · Links · 4 occurrence(s)

Notices (19 rules)

notice Canonical target reachable only via a canonical tag (no inlinks)

Rule canonical.isolated_url · Canonical · 3 occurrence(s)

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

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

notice Multiple <h1> elements

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

notice Likely hero image lacks fetchpriority=high

Rule images.hero_no_fetchpriority · Performance · 6 occurrence(s)

  • https://www.haveapro.com/ — the likely hero/LCP image (a4d037_4c6d4709069e4527af3956f291f509cd~mv2.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://www.haveapro.com/book-online — the likely hero/LCP image (11062b_05e45a6544f041eaa9d9aa1d4fbbe0ae~mv2.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://www.haveapro.com/challenges — the likely hero/LCP image (file.webp) 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://www.haveapro.com/copy-of-home-student-page — the likely hero/LCP image (a3c153_436b7f820cdd4c469a848015d2167cab~mv2.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://www.haveapro.com/home-student-page — the likely hero/LCP image (a3c153_436b7f820cdd4c469a848015d2167cab~mv2.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://www.haveapro.com/offer-page — the likely hero/LCP image (a3c153_174034b96ac14f5cbddcf20238ccdf0e~mv2.png) 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 Internal link has no anchor text / accessible name

Rule links.no_anchor_text · Links · 2 occurrence(s)

  • https://www.haveapro.com/book-online — 3 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://www.haveapro.com/challenges — 3 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.

notice Page has only one internal inlink (fragile crawl path)

Rule links.single_inlink · Links · 5 occurrence(s)

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 3 occurrence(s)

notice Missing Open Graph tags

Rule og.missing · Social · 7 occurrence(s)

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

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

  • https://www.haveapro.com/ — 2 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://www.haveapro.com/book-online — 3 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://www.haveapro.com/copy-of-home-student-page — 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://www.haveapro.com/home-student-page — 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://www.haveapro.com/offer-page — 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://www.haveapro.com/service-page — 9 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 Last-Modified header (no conditional GET for unchanged pages)

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

  • https://www.haveapro.com/ — 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://www.haveapro.com/book-online — 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://www.haveapro.com/booking-calendar/drawing-tutoring — 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://www.haveapro.com/booking-calendar/industry-insights — 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://www.haveapro.com/challenge-page/6bf59bcf-9a52-4fcd-91a3-5977ac5c67c6 — 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://www.haveapro.com/challenge-page/6bf59bcf-9a52-4fcd-91a3-5977ac5c67c6?programId=6bf59bcf-9a52-4fcd-91a3-5977ac5c67c6 — 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://www.haveapro.com/challenge-page/7b29e867-7e32-4965-921c-1ed00db7663e — 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://www.haveapro.com/challenge-page/7b29e867-7e32-4965-921c-1ed00db7663e?programId=7b29e867-7e32-4965-921c-1ed00db7663e — 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://www.haveapro.com/challenge-page/b688d7c1-4d00-4e59-add2-ca52e86c5d66 — 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://www.haveapro.com/challenge-page/b688d7c1-4d00-4e59-add2-ca52e86c5d66?programId=b688d7c1-4d00-4e59-add2-ca52e86c5d66 — 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://www.haveapro.com/challenges — 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://www.haveapro.com/copy-of-home-student-page — 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://www.haveapro.com/home-student-page — 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://www.haveapro.com/offer-page — 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://www.haveapro.com/service-page — 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://www.haveapro.com/service-page/drawing-tutoring — 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://www.haveapro.com/service-page/industry-insights — 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://www.haveapro.com/service-page/mentorship-program — 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 Missing recommended security headers

Rule security.missing_headers · Security · 21 occurrence(s)

notice target=_blank link without rel=noopener (tab-napping)

Rule security.unsafe_cross_origin_links · Security · 6 occurrence(s)

notice Indexable page not listed in sitemap

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

Pages (showing 21 of 21)
URLStatusIndexableWordsIn-links
https://www.haveapro.com/
Home | haveapro
200 yes 80 18
https://www.haveapro.com/copy-of-home-student-page
Find | haveapro
200 yes 274 18
https://www.haveapro.com/home-student-page
Training | haveapro
200 yes 297 18
https://www.haveapro.com/service-page
Service Page | haveapro
200 yes 225 1
https://www.haveapro.com/book-online
Book Online | haveapro
200 yes 63 3
https://www.haveapro.com/booking-calendar/drawing-tutoring
Drawing Tutoring - haveapro
200 no 48 1
https://www.haveapro.com/booking-calendar/industry-insights
Industry Insights - haveapro
200 no 47 1
https://www.haveapro.com/service-page/mentorship-program
Mentorship Program | haveapro
200 yes 102 1
https://www.haveapro.com/challenge-page/6bf59bcf-9a52-4fcd-91a3-5977ac5c67c6?programId=6bf59bcf-9a52-4fcd-91a3-5977ac5c67c6
Architecture: Building a Successful Career | haveapro
200 yes 172 1
https://www.haveapro.com/challenge-page/7b29e867-7e32-4965-921c-1ed00db7663e?programId=7b29e867-7e32-4965-921c-1ed00db7663e
Mastering Architectural Concepts and Practices | haveapro
200 yes 149 1
https://www.haveapro.com/challenge-page/b688d7c1-4d00-4e59-add2-ca52e86c5d66?programId=b688d7c1-4d00-4e59-add2-ca52e86c5d66
Architectural Design: A Comprehensive Guide | haveapro
200 yes 161 1
https://www.haveapro.com/challenge-page/6bf59bcf-9a52-4fcd-91a3-5977ac5c67c6
Architecture: Building a Successful Career | haveapro
200 yes 172 0
https://www.haveapro.com/challenge-page/7b29e867-7e32-4965-921c-1ed00db7663e
Mastering Architectural Concepts and Practices | haveapro
200 yes 149 0
https://www.haveapro.com/challenge-page/b688d7c1-4d00-4e59-add2-ca52e86c5d66
Architectural Design: A Comprehensive Guide | haveapro
200 yes 161 0
https://www.haveapro.com/challenges
Program List | haveapro
200 yes 53 0
https://www.haveapro.com/offer-page
Survey | haveapro
200 yes 103 0
https://www.haveapro.com/service-page/drawing-tutoring
Drawing Tutoring | haveapro
200 yes 102 0
https://www.haveapro.com/service-page/industry-insights
Industry Insights | haveapro
200 yes 106 0
https://www.haveapro.com/_serverless/challenges-web-serverless/redirect-invite-link?programId=6bf59bcf-9a52-4fcd-91a3-5977ac5c67c6 404 no 2 2
https://www.haveapro.com/_serverless/challenges-web-serverless/redirect-invite-link?programId=7b29e867-7e32-4965-921c-1ed00db7663e 404 no 2 2
https://www.haveapro.com/_serverless/challenges-web-serverless/redirect-invite-link?programId=b688d7c1-4d00-4e59-add2-ca52e86c5d66 404 no 2 2

Audit your own site — free

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

Scan your site →