Catalog / appointae.com
45

SEO audit for appointae.com

appointae – Stop explaining. Start showing.

ecommerceNext.js

Health 45/100 (poor) · 15 pages crawled · generated 2026-08-26

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

Visual certainty for stores and independent artists. Link past service photos and formula notes to every appointment — communication first, booking second.

15
pages crawled
10
indexable pages
5
errors
46
warnings
101
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Sitemap 67 5 0 3
Canonical 80 0 10 0
Content 82 0 9 9
Duplicate 84 0 8 7
Headings 86 0 7 0
Rendering 86 0 7 0
Crawlability 90 0 5 0
Agent Readiness 100 0 0 4
Cache 100 0 0 8
Links 100 0 0 7
Performance 100 0 0 18
Security 100 0 0 15
Social 100 0 0 20
Structured Data 100 0 0 10
Findings

Errors (1 rules)

error Non-200 URL listed in sitemap

Rule sitemap.not_200 · Sitemap · 5 occurrence(s)

Warnings (7 rules)

warning Homepage duplicated across protocol/host variants (no redirect)

Rule duplicate.protocol_host · Duplicate · 1 occurrence(s)

  • https://appointae.com/ — https://www.appointae.com/ serves the same homepage content with a 200 and no redirect — Google sees a duplicate. Pick one canonical host/scheme and 301-redirect the others.

warning Duplicate <title> across pages

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

warning Content only rendered by JavaScript (invisible to non-JS crawlers & AI)

Rule rendering.js_shell · Rendering · 7 occurrence(s)

  • https://appointae.com/checkout?plan=growth — Raw HTML has 1 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://appointae.com/checkout?plan=solo — Raw HTML has 1 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://appointae.com/checkout?plan=starter — Raw HTML has 1 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://appointae.com/checkout?plan=uncapped — Raw HTML has 1 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://appointae.com/get-started — Raw HTML has 1 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://appointae.com/legal — Raw HTML has 3 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://appointae.com/onboarding — Raw HTML has 1 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.

warning Non-200 final status

Rule status.non_200 · Crawlability · 5 occurrence(s)

Notices (13 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

  • https://appointae.com/ — no llms.txt found at the site root — add one so AI agents get a curated site summary

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

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

notice Duplicate meta description across pages

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

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

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

  • https://appointae.com/checkout?plan=growth — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
  • https://appointae.com/checkout?plan=solo — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
  • https://appointae.com/checkout?plan=starter — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
  • https://appointae.com/checkout?plan=uncapped — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
  • https://appointae.com/get-started — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
  • https://appointae.com/login — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
  • https://appointae.com/login?employee_join=1 — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.

notice Missing Open Graph tags

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

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

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

  • https://appointae.com/ — 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://appointae.com/checkout?plan=growth — 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://appointae.com/checkout?plan=solo — 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://appointae.com/checkout?plan=starter — 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://appointae.com/checkout?plan=uncapped — 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://appointae.com/get-started — 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://appointae.com/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://appointae.com/login?employee_join=1 — 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 · 10 occurrence(s)

  • https://appointae.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://appointae.com/checkout?plan=growth — 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://appointae.com/checkout?plan=solo — 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://appointae.com/checkout?plan=starter — 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://appointae.com/checkout?plan=uncapped — 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://appointae.com/get-started — 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://appointae.com/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://appointae.com/login — 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://appointae.com/login?employee_join=1 — 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://appointae.com/onboarding — 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 · 15 occurrence(s)

notice Indexable page not listed in sitemap

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

Pages (showing 15 of 15)
URLStatusIndexableWordsIn-links
https://appointae.com/
appointae – Stop explaining. Start showing.
200 yes 1011 3
https://appointae.com/legal
Legal & Policies · appointae
200 yes 3 3
https://appointae.com/onboarding
appointae – Manage your business, invite your team
200 yes 1 2
https://appointae.com/checkout?plan=growth
Checkout – appointae
200 yes 1 1
https://appointae.com/checkout?plan=solo
Checkout – appointae
200 yes 1 1
https://appointae.com/checkout?plan=starter
Checkout – appointae
200 yes 1 1
https://appointae.com/checkout?plan=uncapped
Checkout – appointae
200 yes 1 1
https://appointae.com/get-started
Get started – appointae
200 yes 1 1
https://appointae.com/login
appointae – Manage your business, invite your team
200 yes 38 1
https://appointae.com/login?employee_join=1
appointae – Manage your business, invite your team
200 yes 38 1
https://appointae.com/partner-dpa
appointae – Manage your business, invite your team
307 no 0 0
https://appointae.com/partner-terms
appointae – Manage your business, invite your team
307 no 0 0
https://appointae.com/privacy
appointae – Manage your business, invite your team
307 no 0 0
https://appointae.com/terms
appointae – Manage your business, invite your team
307 no 0 0
https://appointae.com/terms-of-use
appointae – Manage your business, invite your team
307 no 0 0

Audit your own site — free

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

Scan your site →