Catalog / annegaddgrandy.com
78

SEO audit for annegaddgrandy.com

Anne Gadd Grandy

media

Health 78/100 (good) · 13 pages crawled · generated 2026-08-26

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

I'm a branding specialist who loves user experience and visual design. Listening to data and users informs my work and creates emotional connection. This shapes a successful brand experience.

Screenshot of annegaddgrandy.com
13
pages crawled
13
indexable pages
0
errors
12
warnings
137
notices
1
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Content 93 0 3 13
Images 93 0 3 15
Meta Description 95 0 2 11
Performance 95 0 2 36
Canonical 98 0 1 1
Links 98 0 1 0
Agent Readiness 100 0 0 10
Headings 100 0 0 2
Security 100 0 0 26
Sitemap 100 0 0 10
Social 100 0 0 13
Findings

Warnings (7 rules)

warning Interior page canonicalizes to the homepage

Rule canonical.points_to_homepage · Canonical · 1 occurrence(s)

  • https://www.annegaddgrandy.com/online-work — this interior page canonicalizes to the homepage (https://www.annegaddgrandy.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.

warning Thin content (low word count)

Rule content.thin · Content · 3 occurrence(s)

warning Images missing alt text

Rule images.missing_alt · Images · 3 occurrence(s)

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

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

  • https://www.annegaddgrandy.com/about — the likely hero/LCP image (_about-garden-fpo2.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 Orphan page (no internal inlinks)

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

warning Missing meta description

Rule meta_desc.missing · Meta Description · 2 occurrence(s)

warning Render-blocking script in <head> (no defer/async)

Rule perf.render_blocking · Performance · 1 occurrence(s)

Notices (16 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)

notice Canonical points to a different URL

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

notice Low text-to-HTML ratio

Rule content.low_ratio · Content · 4 occurrence(s)

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

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

  • https://www.annegaddgrandy.com/art-direction-stills-video — 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://www.annegaddgrandy.com/egadd — this page reads as difficult (Flesch Reading Ease 39, 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://www.annegaddgrandy.com/meet-brilliant-1 — this page reads as difficult (Flesch Reading Ease 47, 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://www.annegaddgrandy.com/meet-brilliant-2 — this page reads as difficult (Flesch Reading Ease 42, 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://www.annegaddgrandy.com/mobile-apps — this page reads as difficult (Flesch Reading Ease 41, 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://www.annegaddgrandy.com/persona-lp — this page reads as difficult (Flesch Reading Ease 33, 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://www.annegaddgrandy.com/webex-ipm — this page reads as difficult (Flesch Reading Ease 40, 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://www.annegaddgrandy.com/webex-print — this page reads as difficult (Flesch Reading Ease 38, 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://www.annegaddgrandy.com/websites — 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.

notice Multiple <h1> elements

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

notice Image alt text is very long (possible keyword stuffing)

Rule images.alt_too_long · Images · 4 occurrence(s)

notice Likely hero image lacks fetchpriority=high

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

  • https://www.annegaddgrandy.com/ — the likely hero/LCP image (1-meet-brilliant-thumb-1-80-v2-a.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.annegaddgrandy.com/art-direction-stills-video — the likely hero/LCP image (1-photo-ad-thumb-80-b.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.annegaddgrandy.com/egadd — the likely hero/LCP image (3-egadd-thumb-80-d.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.annegaddgrandy.com/meet-brilliant-1 — the likely hero/LCP image (1-meet-brilliant-thumb-1-80-v2-a.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.annegaddgrandy.com/meet-brilliant-2 — the likely hero/LCP image (2-meet-brilliant-thumb-2-80.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.annegaddgrandy.com/mobile-apps — the likely hero/LCP image (6-mobile-app-thumb-80.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.annegaddgrandy.com/online-work — the likely hero/LCP image (1-meet-brilliant-thumb-1-80-v2-a.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.annegaddgrandy.com/persona-lp — the likely hero/LCP image (3-person-lp-thumb-1-80.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.annegaddgrandy.com/webex-ipm — the likely hero/LCP image (4-in-prod-messaging-thumb-b-80.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.annegaddgrandy.com/webex-print — the likely hero/LCP image (2-webex-thumb-80-b2-wht-ovrly.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.annegaddgrandy.com/websites — the likely hero/LCP image (5-websites-thumb-80.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 · 11 occurrence(s)

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

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

  • https://www.annegaddgrandy.com/ — 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.
  • https://www.annegaddgrandy.com/about — 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.annegaddgrandy.com/art-direction-stills-video — 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.
  • https://www.annegaddgrandy.com/egadd — 22 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.annegaddgrandy.com/meet-brilliant-1 — 16 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.annegaddgrandy.com/meet-brilliant-2 — 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://www.annegaddgrandy.com/mobile-apps — 22 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.annegaddgrandy.com/online-work — 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.
  • https://www.annegaddgrandy.com/persona-lp — 11 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.annegaddgrandy.com/webex-ipm — 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://www.annegaddgrandy.com/webex-print — 13 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.annegaddgrandy.com/websites — 15 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 · 13 occurrence(s)

  • https://www.annegaddgrandy.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.annegaddgrandy.com/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://www.annegaddgrandy.com/art-direction-stills-video — 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.annegaddgrandy.com/contact — 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.annegaddgrandy.com/egadd — 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.annegaddgrandy.com/meet-brilliant-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://www.annegaddgrandy.com/meet-brilliant-2 — 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.annegaddgrandy.com/mobile-apps — 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.annegaddgrandy.com/online-work — 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.annegaddgrandy.com/persona-lp — 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.annegaddgrandy.com/webex-ipm — 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.annegaddgrandy.com/webex-print — 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.annegaddgrandy.com/websites — 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 target=_blank link without rel=noopener (tab-napping)

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

notice Indexable page not listed in sitemap

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

Pages (showing 13 of 13)
URLStatusIndexableWordsIn-links
https://www.annegaddgrandy.com/
Anne Gadd Grandy
200 yes 65 13
https://www.annegaddgrandy.com/about
About — Anne Gadd Grandy
200 yes 261 13
https://www.annegaddgrandy.com/contact
Contact — Anne Gadd Grandy
200 yes 26 13
https://www.annegaddgrandy.com/art-direction-stills-video
Art Direction: Stills and Video — Anne Gadd Grandy
200 yes 542 11
https://www.annegaddgrandy.com/egadd
Egadd — Anne Gadd Grandy
200 yes 330 11
https://www.annegaddgrandy.com/meet-brilliant-1
Meet Brilliant Campaign 1 — Anne Gadd Grandy
200 yes 1222 11
https://www.annegaddgrandy.com/meet-brilliant-2
Meet Brilliant Campaign 2 — Anne Gadd Grandy
200 yes 339 11
https://www.annegaddgrandy.com/mobile-apps
Mobile Apps — Anne Gadd Grandy
200 yes 575 11
https://www.annegaddgrandy.com/persona-lp
Persona-Based Landing Pages — Anne Gadd Grandy
200 yes 447 11
https://www.annegaddgrandy.com/webex-ipm
In-Product Messaging — Anne Gadd Grandy
200 yes 525 11
https://www.annegaddgrandy.com/webex-print
WebEx — Anne Gadd Grandy
200 yes 491 11
https://www.annegaddgrandy.com/websites
Websites — Anne Gadd Grandy
200 yes 791 11
https://www.annegaddgrandy.com/online-work
Anne Gadd Grandy
200 yes 65 0

Audit your own site — free

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

Scan your site →