Catalog / matthewmamet.com
78

SEO audit for matthewmamet.com

Product & Growth Advisory - Matthew Mamet

otherGhost

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

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

Fractional CPO and CGO advisor for B2C marketplaces and consumer software. 25 years of operating experience.

Screenshot of matthewmamet.com
50
pages crawled
30
indexable pages
0
errors
49
warnings
294
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Indexability 89 0 19 0
Sitemap 90 0 17 0
Links 98 0 4 0
Budget 98 0 3 0
Crawlability 98 0 3 1
Structured Data 99 0 2 6
Meta Description 99 0 1 0
Content 100 0 0 6
Images 100 0 0 49
Performance 100 0 0 148
Security 100 0 0 49
Social 100 0 0 3
Titles 100 0 0 31
URL 100 0 0 1
Findings

Warnings (8 rules)

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

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

  • https://matthewmamet.com/blog/page/2/ — 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://matthewmamet.com/blog/.
  • https://matthewmamet.com/tag/leadership/ — this noindex page has 2 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://matthewmamet.com/tag/leadership/page/2/, https://matthewmamet.com/blog/coaching-is-not-therapy-a-ted-talk-or-a-pep-talk/.
  • https://matthewmamet.com/tag/leadership/page/2/ — 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://matthewmamet.com/tag/leadership/.

warning Page is noindex

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

warning noindex + nofollow (blocks link equity flow)

Rule index.noindex_nofollow · Indexability · 15 occurrence(s)

warning Internal link points to a redirect

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

warning Missing meta description

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

warning Redirect chain (multiple hops)

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

warning Schema describes content not visible on the page

Rule schema.hidden_content · Structured Data · 2 occurrence(s)

  • https://matthewmamet.com/blog/what-betterlesson-taught-me-about-ed-tech-marketplaces/ — a schema name/headline ("Can Tech Innovation Transform Public Schools?") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.
  • https://matthewmamet.com/media-kit/ — a schema name/headline ("Media Kit — Matthew Mamet") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.

warning Non-indexable URL listed in sitemap

Rule sitemap.non_indexable · Sitemap · 17 occurrence(s)

Notices (15 rules)

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

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

  • https://matthewmamet.com/ — 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://matthewmamet.com/blog/ai-agents-replacing-comparison-marketplaces/ — this page reads as difficult (Flesch Reading Ease 45, 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://matthewmamet.com/blog/from-diy-to-difm-how-consumer-behavior-in-online-marketplaces-is-changing-the-game/ — this page reads as difficult (Flesch Reading Ease 49, 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://matthewmamet.com/blog/what-betterlesson-taught-me-about-ed-tech-marketplaces/ — this page reads as difficult (Flesch Reading Ease 49, 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://matthewmamet.com/media-kit/ — this page reads as difficult (Flesch Reading Ease 45, 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.matthewmamet.com/ai-agents-replacing-comparison-marketplaces?ref=matthewmamet.com — this page reads as difficult (Flesch Reading Ease 45, 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 Likely hero image lacks fetchpriority=high

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

  • https://matthewmamet.com/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/author/matthew/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/blog/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/blog/how-to-build-a-kickass-team/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/blog/page/2/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/blog/scaling-product-management-across-time-zones/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/blog/software-is-easy-its-the-people-that-are-hard/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/media-kit/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/service-card-1/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/service-card-2/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/service-card-3/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/service-card-4/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/service-card-5/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/service-card-6/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/tag/leadership/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/tag/leadership/page/2/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card-1/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card-2/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card-3/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card-4/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card-5/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card-6/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card-7/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card-8/ — the likely hero/LCP image (logo-blue.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.
  • https://matthewmamet.com/testimonial-card/ — the likely hero/LCP image (logo-blue.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 Images without width/height (layout shift / CLS)

Rule images.missing_dimensions · Images · 49 occurrence(s)

notice Missing Open Graph tags

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

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

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

  • https://matthewmamet.com/ — 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.
  • https://matthewmamet.com/author/matthew/ — 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.
  • https://matthewmamet.com/blog/ — 4 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://matthewmamet.com/blog/how-to-build-a-kickass-team/ — 4 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://matthewmamet.com/blog/page/2/ — 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://matthewmamet.com/blog/scaling-product-management-across-time-zones/ — 4 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://matthewmamet.com/blog/software-is-easy-its-the-people-that-are-hard/ — 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://matthewmamet.com/media-kit/ — 7 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://matthewmamet.com/service-card-1/ — 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://matthewmamet.com/service-card-2/ — 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://matthewmamet.com/service-card-3/ — 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://matthewmamet.com/service-card-4/ — 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://matthewmamet.com/service-card-5/ — 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://matthewmamet.com/service-card-6/ — 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://matthewmamet.com/tag/leadership/ — 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://matthewmamet.com/tag/leadership/page/2/ — 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://matthewmamet.com/testimonial-card-1/ — 4 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://matthewmamet.com/testimonial-card-2/ — 4 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://matthewmamet.com/testimonial-card-3/ — 4 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://matthewmamet.com/testimonial-card-4/ — 4 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://matthewmamet.com/testimonial-card-5/ — 4 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://matthewmamet.com/testimonial-card-6/ — 4 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://matthewmamet.com/testimonial-card-7/ — 4 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://matthewmamet.com/testimonial-card-8/ — 4 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://matthewmamet.com/testimonial-card/ — 4 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 Large HTML document

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

notice No Last-Modified header (no conditional GET for unchanged pages)

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

  • https://matthewmamet.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://matthewmamet.com/author/matthew/ — 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://matthewmamet.com/blog/ — 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://matthewmamet.com/blog/how-to-build-a-kickass-team/ — 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://matthewmamet.com/blog/page/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://matthewmamet.com/blog/scaling-product-management-across-time-zones/ — 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://matthewmamet.com/blog/software-is-easy-its-the-people-that-are-hard/ — 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://matthewmamet.com/media-kit/ — 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://matthewmamet.com/service-card-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://matthewmamet.com/service-card-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://matthewmamet.com/service-card-3/ — 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://matthewmamet.com/service-card-4/ — 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://matthewmamet.com/service-card-5/ — 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://matthewmamet.com/service-card-6/ — 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://matthewmamet.com/tag/leadership/ — 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://matthewmamet.com/tag/leadership/page/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://matthewmamet.com/testimonial-card-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://matthewmamet.com/testimonial-card-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://matthewmamet.com/testimonial-card-3/ — 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://matthewmamet.com/testimonial-card-4/ — 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://matthewmamet.com/testimonial-card-5/ — 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://matthewmamet.com/testimonial-card-6/ — 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://matthewmamet.com/testimonial-card-7/ — 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://matthewmamet.com/testimonial-card-8/ — 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://matthewmamet.com/testimonial-card/ — 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 · 1 occurrence(s)

notice Article schema missing recommended properties (Top Stories / image carousel)

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

  • https://matthewmamet.com/media-kit/ — Article structured data is missing recommended property (image) — these feed Top Stories and image-carousel eligibility. Google defines no required Article properties, so this is advisory: add author, headline, image and datePublished where they apply.

notice Deep page has no BreadcrumbList structured data

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

notice No structured data detected

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

notice Missing recommended security headers

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

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

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

notice Uppercase letters in URL path

Rule url.uppercase · URL · 1 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://matthewmamet.com/
Product & Growth Advisory - Matthew Mamet
200 yes 1102 49
https://matthewmamet.com/blog/
Product & Growth Advisory - Matthew Mamet (Page 1)
200 yes 362 49
https://matthewmamet.com/media-kit/
Media Kit — Matthew Mamet
200 yes 606 49
https://matthewmamet.com/blog/agentic-commerce-trust-problem/
Walmart, Alibaba, Amazon, Google Bet on Agentic Commerce:
200 yes 1938 27
https://matthewmamet.com/blog/product-review-meeting/
How to Run a Product Review Meeting
200 yes 3892 28
https://matthewmamet.com/blog/what-is-a-fractional-executive-and-why-the-good-ones-are-not-a-cost-play/
What Is a Fractional Executive? Why the Good Ones Pay Off
200 yes 1807 27
https://matthewmamet.com/blog/paid-acquisition-trap/
The Paid Acquisition Trap: Where Marketplace Growth Goes to Die
200 yes 2505 6
https://matthewmamet.com/blog/product-strategy/
Product Strategy: What It Is and How to Build One
200 yes 1575 4
https://matthewmamet.com/blog/ai-agents-replacing-comparison-marketplaces/
When AI Agents Replace the Comparison Step
200 yes 1773 3
https://matthewmamet.com/blog/fractional-model-origin-story/
How Fractional Started (Before It Had a Name)
200 yes 1591 4
https://matthewmamet.com/blog/fractional-cpo/
Fractional CPO: What One Does and When to Hire One
200 yes 1752 5
https://matthewmamet.com/blog/page/2/
Product & Growth Advisory - Matthew Mamet (Page 2)
200 no 370 1
https://www.matthewmamet.com/blog/growing-ecommerce-revenue-0-to-200mm-at-tripadvisor/?ref=matthewmamet.com
Growing eCommerce Revenue $0 to $200M at TripAdvisor
200 yes 1190 1
https://www.matthewmamet.com/ai-agents-replacing-comparison-marketplaces?ref=matthewmamet.com
When AI Agents Replace the Comparison Step
200 yes 1773 1
https://www.matthewmamet.com/growing-ecommerce-revenue-0-to-200mm-at-tripadvisor?ref=matthewmamet.com
Growing eCommerce Revenue $0 to $200M at TripAdvisor
200 yes 1190 1
https://www.matthewmamet.com/the-future-of-marketplaces?ref=matthewmamet.com
The Future of Marketplaces: Post-Purchase and Concierge
200 yes 1948 1
https://matthewmamet.com/blog/openclaw-setup-guide/
The Big LeClawski: How I Built AI Agents with OpenClaw
200 yes 5381 2
https://matthewmamet.com/blog/how-i-use-ai-and-automation-daily/
How I Use AI and Automation Daily as a Fractional Exec
200 yes 1829 1
https://matthewmamet.com/blog/misaligned-incentives-are-almost-always-behind-misaligned-teams/
Misaligned Incentives Are Almost Always Behind Misaligned
200 yes 1643 3
https://matthewmamet.com/blog/from-diy-to-difm-how-consumer-behavior-in-online-marketplaces-is-changing-the-game/
From DIY to DIFM: How Consumer Behavior Is Reshaping Online
200 yes 1412 1
https://matthewmamet.com/tag/leadership/
Leadership - Product & Growth Advisory - Matthew Mamet
200 no 319 2
https://matthewmamet.com/blog/coaching-is-not-therapy-a-ted-talk-or-a-pep-talk/
Coaching Is Not Therapy, a TED Talk, or a Pep Talk
200 yes 1418 2
https://matthewmamet.com/blog/fostering-the-right-environment-for-high-potential-employees/
Developing High-Potential Employees: An Operator's Playbook
200 yes 1957 1
https://matthewmamet.com/blog/how-to-build-a-kickass-team/
High-Performance Team: Build It on Strengths, Not Fixes
200 yes 1758 1
https://matthewmamet.com/tag/leadership/page/2/
Leadership - Product & Growth Advisory - Matthew Mamet (Page 2)
200 no 299 1
https://matthewmamet.com/author/matthew/
Matthew Mamet - Product & Growth Advisory - Matthew Mamet
200 no 1102 0
https://matthewmamet.com/blog/a-no-bs-guide-to-spotting-overemployed-remote-workers-and-handling-it-like-a-pro/
Spotting Overemployed Remote Workers: An Operator's Read
200 yes 1911 0
https://matthewmamet.com/blog/break-out-of-the-local-maxima/
Breaking Out of the Local Maxima: Growth Lessons from
200 yes 1191 0
https://matthewmamet.com/blog/identifying-the-right-choice-new-market-or-new-product-/
New Market, or New Product?
200 yes 1173 0
https://matthewmamet.com/blog/its-a-marathon-not-a-sprint/
It's a Marathon, Not a Sprint: Product Growth Lessons from
200 yes 1049 0
https://matthewmamet.com/blog/leanux-getting-out-of-the-deliverables-business/
LeanUX: Getting out of the Deliverables Business
200 yes 733 0
https://matthewmamet.com/blog/scaling-product-management-across-time-zones/
Scaling Product Management Across Time Zones (Field Notes)
200 yes 1849 0
https://matthewmamet.com/blog/software-is-easy-its-the-people-that-are-hard/
Software Is Easy, People Are Hard: The Real Roadmap Killer
200 yes 1818 0
https://matthewmamet.com/blog/what-betterlesson-taught-me-about-ed-tech-marketplaces/
Can Tech Innovation Transform Public Schools?
200 yes 1368 0
https://matthewmamet.com/service-card-1/
Fractional CPO / CGO
200 no 49 0
https://matthewmamet.com/service-card-2/
Growth Strategy
200 no 47 0
https://matthewmamet.com/service-card-3/
Product Strategy
200 no 47 0
https://matthewmamet.com/service-card-4/
Executive Coaching
200 no 47 0
https://matthewmamet.com/service-card-5/
Advisory
200 no 46 0
https://matthewmamet.com/service-card-6/
Operating Diagnostic
200 no 33 0
https://matthewmamet.com/testimonial-card-1/
Kari D'Elia
200 no 47 0
https://matthewmamet.com/testimonial-card-2/
Nathan Papazian
200 no 47 0
https://matthewmamet.com/testimonial-card-3/
Maud Larpent
200 no 47 0
https://matthewmamet.com/testimonial-card-4/
Katie Chernak
200 no 47 0
https://matthewmamet.com/testimonial-card-5/
Alex Grodd
200 no 47 0
https://matthewmamet.com/testimonial-card-6/
Jamie Biggar
200 no 47 0
https://matthewmamet.com/testimonial-card-7/
Luke Richardson
200 no 47 0
https://matthewmamet.com/testimonial-card-8/
Matt Wiseley
200 no 47 0
https://matthewmamet.com/testimonial-card/
Lauren Fragoza
200 no 47 0
https://matthewmamet.com/assets/images/media-kit/Matthew-Mamet-1.png?v=3d02be15bc 200 no 0 1

Audit your own site — free

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

Scan your site →