Catalog / sitesbyjoe.com
64

SEO audit for sitesbyjoe.com

SitesbyJoe | Web Designer Developer in Portland Oregon

other

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

Download Markdown report (feed to ChatGPT / Claude / Cursor)
Screenshot of sitesbyjoe.com
50
pages crawled
50
indexable pages
1
errors
160
warnings
686
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Security 98 1 0 100
Agent Readiness 70 0 50 72
Canonical 70 0 50 0
Content 77 0 38 55
Meta Description 95 0 9 12
Images 96 0 7 47
Titles 98 0 3 7
AI Content 99 0 1 0
Duplicate 99 0 1 0
Headings 99 0 1 0
Cache 100 0 0 50
Links 100 0 0 1
Performance 100 0 0 192
Social 100 0 0 100
Structured Data 100 0 0 50
Findings

Errors (1 rules)

error Mixed content on HTTPS page

Rule security.mixed_content · Security · 1 occurrence(s)

Warnings (9 rules)

warning Control has no accessible name

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

warning Unfilled template or prompt-leak text

Rule ai.prompt_leak · AI Content · 1 occurrence(s)

  • https://sitesbyjoe.com/ — The page contains unfilled template or prompt-echo text — e.g. "[[item.content]]". This usually means a generation template was published without being completed or cleaned up. Fill in or remove the placeholder so readers and crawlers don't see the scaffolding.

warning Thin content (low word count)

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

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

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

  • https://sitesbyjoe.com/ — http://sitesbyjoe.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 Missing <h1>

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

warning Title likely truncated in SERP (too wide)

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

Notices (21 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

  • https://sitesbyjoe.com/ — 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 · 35 occurrence(s)

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

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

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

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

  • https://sitesbyjoe.com/portfolio — this page reads as difficult (Flesch Reading Ease 43, 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://sitesbyjoe.com/portfolio/detail/college-connection — 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://sitesbyjoe.com/portfolio/detail/design-collaborative — 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://sitesbyjoe.com/portfolio/detail/tommy-naples-music — 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://sitesbyjoe.com/posts — this page reads as very difficult (Flesch Reading Ease -0, 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 Image alt text is very long (possible keyword stuffing)

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

notice Likely hero image lacks fetchpriority=high

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

  • https://sitesbyjoe.com/portfolio — the likely hero/LCP image (80-college-scholarships-tmb.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://sitesbyjoe.com/portfolio/detail/belldons-coastal-colors — the likely hero/LCP image (50-belldon-homepage.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://sitesbyjoe.com/portfolio/detail/billy-benches — the likely hero/LCP image (75-billy-benches.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://sitesbyjoe.com/portfolio/detail/cape-may-county-carpenters-local-1743 — the likely hero/LCP image (40-local-1743-homepage.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://sitesbyjoe.com/portfolio/detail/ccups-cupcakes — the likely hero/LCP image (79-c-cups-homepage.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://sitesbyjoe.com/portfolio/detail/chris-clemans — the likely hero/LCP image (47-chris-clemans-homepage.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://sitesbyjoe.com/portfolio/detail/cohwens-ink-emporium — the likely hero/LCP image (41-cohwen-homepage.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://sitesbyjoe.com/portfolio/detail/college-connection — the likely hero/LCP image (80-college-scholarships-homepage.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://sitesbyjoe.com/portfolio/detail/design-collaborative — the likely hero/LCP image (74-design-collaborative-homepage.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://sitesbyjoe.com/portfolio/detail/dinos-seaville-diner — the likely hero/LCP image (33-33-homepage-3.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://sitesbyjoe.com/portfolio/detail/donny-b-sewer-and-drain — the likely hero/LCP image (36-donnybs-homepage.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://sitesbyjoe.com/portfolio/detail/ellicott-mack — the likely hero/LCP image (46-ellicott-mack-website-homepage-design.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://sitesbyjoe.com/portfolio/detail/freehold-raceway — the likely hero/LCP image (76-freehold-homepage.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://sitesbyjoe.com/portfolio/detail/goldcoast-realty-ocean-city — the likely hero/LCP image (39-goldcoast-homepage.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://sitesbyjoe.com/portfolio/detail/haunted-inc-movie — the likely hero/LCP image (77-hunated-inc-homepage.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://sitesbyjoe.com/portfolio/detail/island-ice-cream — the likely hero/LCP image (78-island-ice-cream-homepage.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://sitesbyjoe.com/portfolio/detail/jam-audio-productions — the likely hero/LCP image (49-jam-audio-homepage.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://sitesbyjoe.com/portfolio/detail/michaels-fabricare — the likely hero/LCP image (52-michaels-fabricare-homepage.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://sitesbyjoe.com/portfolio/detail/northstar-traffic-service — the likely hero/LCP image (35-northstar-homepage.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://sitesbyjoe.com/portfolio/detail/powerplay-realty — the likely hero/LCP image (42-powerplay-realty-homepage.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://sitesbyjoe.com/portfolio/detail/sea-isle-realty — the likely hero/LCP image (51-sea-isle-realty-homepage.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://sitesbyjoe.com/portfolio/detail/steve-frame — the likely hero/LCP image (48-steve-frame-homepage.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://sitesbyjoe.com/portfolio/detail/summit-strategies — the likely hero/LCP image (38-summit-homepage.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://sitesbyjoe.com/portfolio/detail/tommy-naples-music — the likely hero/LCP image (34-tommy-naples-homepage.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://sitesbyjoe.com/posts/detail/2015/05/08/making-a-successful-web-product-is-hard — the likely hero/LCP image (avatar92.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 · 46 occurrence(s)

notice Internal link has no anchor text / accessible name

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

  • https://sitesbyjoe.com/portfolio — 38 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 Legacy <meta name=keywords> tag present (Google ignores it)

Rule meta.keywords_present · Content · 50 occurrence(s)

notice Meta description too long

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

notice Missing Open Graph tags

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

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

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

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

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

  • https://sitesbyjoe.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://sitesbyjoe.com/contact — 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://sitesbyjoe.com/pages/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://sitesbyjoe.com/portfolio — 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://sitesbyjoe.com/portfolio/detail/billy-benches — 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://sitesbyjoe.com/portfolio/detail/cape-may-county-carpenters-local-1743 — 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://sitesbyjoe.com/portfolio/detail/ccups-cupcakes — 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://sitesbyjoe.com/portfolio/detail/cohwens-ink-emporium — 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://sitesbyjoe.com/portfolio/detail/college-connection — 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://sitesbyjoe.com/portfolio/detail/design-collaborative — 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://sitesbyjoe.com/portfolio/detail/dinos-seaville-diner — 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://sitesbyjoe.com/portfolio/detail/donny-b-sewer-and-drain — 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://sitesbyjoe.com/portfolio/detail/ellicott-mack — 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://sitesbyjoe.com/portfolio/detail/freehold-raceway — 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://sitesbyjoe.com/portfolio/detail/goldcoast-realty-ocean-city — 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://sitesbyjoe.com/portfolio/detail/haunted-inc-movie — 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://sitesbyjoe.com/portfolio/detail/island-ice-cream — 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://sitesbyjoe.com/portfolio/detail/jam-audio-productions — 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://sitesbyjoe.com/portfolio/detail/northstar-traffic-service — 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://sitesbyjoe.com/portfolio/detail/powerplay-realty — 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://sitesbyjoe.com/portfolio/detail/steve-frame — 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://sitesbyjoe.com/portfolio/detail/summit-strategies — 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://sitesbyjoe.com/portfolio/detail/tommy-naples-music — 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://sitesbyjoe.com/posts — 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://sitesbyjoe.com/posts/detail/2015/05/08/making-a-successful-web-product-is-hard — 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 · 50 occurrence(s)

  • https://sitesbyjoe.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://sitesbyjoe.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://sitesbyjoe.com/pages/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://sitesbyjoe.com/portfolio — 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://sitesbyjoe.com/portfolio/detail/billy-benches — 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://sitesbyjoe.com/portfolio/detail/cape-may-county-carpenters-local-1743 — 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://sitesbyjoe.com/portfolio/detail/ccups-cupcakes — 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://sitesbyjoe.com/portfolio/detail/cohwens-ink-emporium — 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://sitesbyjoe.com/portfolio/detail/college-connection — 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://sitesbyjoe.com/portfolio/detail/design-collaborative — 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://sitesbyjoe.com/portfolio/detail/dinos-seaville-diner — 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://sitesbyjoe.com/portfolio/detail/donny-b-sewer-and-drain — 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://sitesbyjoe.com/portfolio/detail/ellicott-mack — 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://sitesbyjoe.com/portfolio/detail/freehold-raceway — 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://sitesbyjoe.com/portfolio/detail/goldcoast-realty-ocean-city — 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://sitesbyjoe.com/portfolio/detail/haunted-inc-movie — 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://sitesbyjoe.com/portfolio/detail/island-ice-cream — 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://sitesbyjoe.com/portfolio/detail/jam-audio-productions — 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://sitesbyjoe.com/portfolio/detail/northstar-traffic-service — 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://sitesbyjoe.com/portfolio/detail/powerplay-realty — 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://sitesbyjoe.com/portfolio/detail/steve-frame — 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://sitesbyjoe.com/portfolio/detail/summit-strategies — 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://sitesbyjoe.com/portfolio/detail/tommy-naples-music — 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://sitesbyjoe.com/posts — 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://sitesbyjoe.com/posts/detail/2015/05/08/making-a-successful-web-product-is-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.

notice Missing recommended security headers

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

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

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

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

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

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://sitesbyjoe.com/
SitesbyJoe | Web Designer Developer in Portland Oregon
200 yes 221 50
https://sitesbyjoe.com/contact
Sites by Joe | Custom Web Design and Development since 2004!
200 yes 56 50
https://sitesbyjoe.com/pages/about
About our Web Design Studio
200 yes 352 50
https://sitesbyjoe.com/portfolio
South Jersey Custom Web Design Portfolio | Sites by Joe of Southern New Jersey
200 yes 764 50
https://sitesbyjoe.com/posts
Sites by Joe | Posts about Web Design and Stuff
200 yes 251 50
https://sitesbyjoe.com/posts/detail/2013/11/24/get-css-or-javascriptpreprocessing-to-work-with-coda-2
Get CSS or Javascript Preprocessing to work with Coda 2
200 yes 222 1
https://sitesbyjoe.com/posts/detail/2013/12/13/changing-the-date-on-your-linux-server
Changing the Date on your Linux Server
200 yes 199 1
https://sitesbyjoe.com/posts/detail/2014/07/25/checking-your-own-reputation-online
Checking Your Own Reputation Online
200 yes 402 1
https://sitesbyjoe.com/posts/detail/2014/12/18/introducing-leasetool
Introducing Leasetool
200 yes 438 1
https://sitesbyjoe.com/posts/detail/2014/12/31/leasetool-building-a-vacation-rental-management-product
Leasetool - Building a Vacation Rental Management Product
200 yes 1023 1
https://sitesbyjoe.com/posts/detail/2015/01/05/mobile-friendly-vacation-rental-management-software
Mobile Friendly Vacation Rental Management Software
200 yes 236 1
https://sitesbyjoe.com/posts/detail/2015/05/08/making-a-successful-web-product-is-hard
Making a Successful Web Product is Hard
200 yes 1329 1
https://sitesbyjoe.com/portfolio/detail/316-day-spa
South Jersey Custom Web Design Portfolio | 316 Day Spa
200 yes 44 1
https://sitesbyjoe.com/portfolio/detail/allturf
South Jersey Custom Web Design Portfolio | AllTurf
200 yes 57 1
https://sitesbyjoe.com/portfolio/detail/avalon-sign
South Jersey Custom Web Design Portfolio | Avalon Sign and Design
200 yes 47 1
https://sitesbyjoe.com/portfolio/detail/belldons-coastal-colors
South Jersey Custom Web Design Portfolio | Belldon's Coastal Colors
200 yes 56 1
https://sitesbyjoe.com/portfolio/detail/billy-benches
South Jersey Custom Web Design Portfolio | Billy Benches
200 yes 46 1
https://sitesbyjoe.com/portfolio/detail/breezes-investments
South Jersey Custom Web Design Portfolio | Breezes Investments
200 yes 42 1
https://sitesbyjoe.com/portfolio/detail/buccaneer-ice-cream
South Jersey Custom Web Design Portfolio | Buccaneer Ice Cream
200 yes 55 1
https://sitesbyjoe.com/portfolio/detail/cape-may-county-association-of-realtors
South Jersey Custom Web Design Portfolio | Cape May County Association of Realtors
200 yes 45 1
https://sitesbyjoe.com/portfolio/detail/cape-may-county-carpenters-local-1743
South Jersey Custom Web Design Portfolio | Cape May County Local 1743
200 yes 49 1
https://sitesbyjoe.com/portfolio/detail/carinis
South Jersey Custom Web Design Portfolio | Carini's Ristorante
200 yes 39 1
https://sitesbyjoe.com/portfolio/detail/ccups-cupcakes
South Jersey Custom Web Design Portfolio | C-Cups Cupcakes
200 yes 190 1
https://sitesbyjoe.com/portfolio/detail/chris-clemans
South Jersey Custom Web Design Portfolio | Chris Clemans
200 yes 55 1
https://sitesbyjoe.com/portfolio/detail/clean-sweep-sport-fishing
South Jersey Custom Web Design Portfolio | Clean Sweep Limitada
200 yes 44 1
https://sitesbyjoe.com/portfolio/detail/cohwens-ink-emporium
South Jersey Custom Web Design Portfolio | Cohwens Ink Emporium
200 yes 57 1
https://sitesbyjoe.com/portfolio/detail/college-connection
South Jersey Custom Web Design Portfolio | College Connection
200 yes 158 1
https://sitesbyjoe.com/portfolio/detail/custom-recreations
South Jersey Custom Web Design Portfolio | Custom Recreations
200 yes 38 1
https://sitesbyjoe.com/portfolio/detail/design-collaborative
South Jersey Custom Web Design Portfolio | The Design Collaborative
200 yes 200 1
https://sitesbyjoe.com/portfolio/detail/dinos-seaville-diner
South Jersey Custom Web Design Portfolio | Dino's Seaville Diner
200 yes 310 1
https://sitesbyjoe.com/portfolio/detail/donny-b-sewer-and-drain
South Jersey Custom Web Design Portfolio | Donny Bs Sewer and Drain Service
200 yes 131 1
https://sitesbyjoe.com/portfolio/detail/ellicott-mack
South Jersey Custom Web Design Portfolio | Ellicott Mack
200 yes 50 1
https://sitesbyjoe.com/portfolio/detail/essay-advantage
South Jersey Custom Web Design Portfolio | Essay Advantage
200 yes 54 1
https://sitesbyjoe.com/portfolio/detail/freehold-raceway
South Jersey Custom Web Design Portfolio | Freehold Raceway
200 yes 49 1
https://sitesbyjoe.com/portfolio/detail/goldcoast-realty-ocean-city
South Jersey Custom Web Design Portfolio | Goldcoast Realty
200 yes 53 1
https://sitesbyjoe.com/portfolio/detail/guy-sudell
South Jersey Custom Web Design Portfolio | Set Sail with Guy Sudell
200 yes 59 1
https://sitesbyjoe.com/portfolio/detail/haunted-inc-movie
South Jersey Custom Web Design Portfolio | Haunted Inc.
200 yes 184 1
https://sitesbyjoe.com/portfolio/detail/island-ice-cream
South Jersey Custom Web Design Portfolio | Island Ice Cream
200 yes 198 1
https://sitesbyjoe.com/portfolio/detail/jam-audio-productions
South Jersey Custom Web Design Portfolio | Jam Audio Production
200 yes 57 1
https://sitesbyjoe.com/portfolio/detail/jewell-real-estate-agency
South Jersey Custom Web Design Portfolio | Jewell Real Estate Agency
200 yes 45 1
https://sitesbyjoe.com/portfolio/detail/michaels-fabricare
South Jersey Custom Web Design Portfolio | Michael's Fabricare
200 yes 52 1
https://sitesbyjoe.com/portfolio/detail/newbold-real-estate
South Jersey Custom Web Design Portfolio | Newbold Real Estate
200 yes 48 1
https://sitesbyjoe.com/portfolio/detail/northstar-traffic-service
South Jersey Custom Web Design Portfolio | Northstar Traffic Service, Inc.
200 yes 155 1
https://sitesbyjoe.com/portfolio/detail/oc-dance-place
South Jersey Custom Web Design Portfolio | The Dance Place
200 yes 62 1
https://sitesbyjoe.com/portfolio/detail/powerplay-realty
South Jersey Custom Web Design Portfolio | Tim Kerr's Powerplay Realty
200 yes 43 1
https://sitesbyjoe.com/portfolio/detail/sea-isle-realty
South Jersey Custom Web Design Portfolio | Sea Isle Realty
200 yes 59 1
https://sitesbyjoe.com/portfolio/detail/steve-frame
South Jersey Custom Web Design Portfolio | Steve Frame
200 yes 54 1
https://sitesbyjoe.com/portfolio/detail/summit-strategies
South Jersey Custom Web Design Portfolio | Summit Strategies
200 yes 98 1
https://sitesbyjoe.com/portfolio/detail/tom-welsh
South Jersey Custom Web Design Portfolio | Thomas Welsh Builders
200 yes 46 1
https://sitesbyjoe.com/portfolio/detail/tommy-naples-music
South Jersey Custom Web Design Portfolio | Tommy Naples Music
200 yes 175 1

Audit your own site — free

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

Scan your site →