Catalog / paultommo.com
63

SEO audit for paultommo.com

Shopify Studio for Craft Food & Drink | Paul Tomlinson

ecommerceGatsby

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

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

I build Shopify stores for craft food & drink founders — design, development, and copy under one roof.

Screenshot of paultommo.com
50
pages crawled
8
indexable pages
2
errors
147
warnings
232
notices
0
orphan pages
1
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Crawlability 98 1 0 0
Links 98 1 0 0
Indexability 75 0 41 0
Sitemap 75 0 41 0
Budget 76 0 40 0
Canonical 95 0 8 0
Performance 97 0 5 92
Headings 98 0 4 0
Titles 98 0 4 0
Content 99 0 2 8
Duplicate 99 0 2 5
Agent Readiness 100 0 0 45
Images 100 0 0 23
Meta Description 100 0 0 1
Security 100 0 0 50
Structured Data 100 0 0 8
Findings

Errors (2 rules)

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

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

error Client error (4xx) response

Rule status.4xx · Crawlability · 1 occurrence(s)

Warnings (9 rules)

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

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

  • https://paultommo.com/blog/10-website-annoyances-as-a-customer/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/40-of-users-will-leave-your-site-if-it-takes-more-than-three-seconds-to-load/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/57-of-website-users-spend-their-time-above-the-fold/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/9-reasons-to-have-a-newsletter/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/according-to-google-users-form-an-opinion-about-your-website-in-0-05-seconds/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/building-a-website-is-just-like-baking-a-delicious-cake/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/customers-distrust-bad-domain-names/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/customers-like-chatbots-why/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/do-customers-love-the-colours-on-your-website/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/is-your-website-secure/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/rebuilding-a-website-is-like-rebuilding-a-house/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/stop-making-these-huge-mistakes-when-creating-ctas/ — 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://paultommo.com/blog/.
  • https://paultommo.com/blog/the-secret-to-building-a-great-mailing-list-is/ — 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://paultommo.com/blog/.
  • https://paultommo.com/work/appetize/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/barclays-rise/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/cobrowse/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/conservation-capital/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/digital-dialogues/ — 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://paultommo.com/, https://paultommo.com/portfolio/.
  • https://paultommo.com/work/good-growth-hub/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/lcon/ — 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://paultommo.com/, https://paultommo.com/portfolio/.
  • https://paultommo.com/work/mugs-games/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/netdata/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/semaine/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/skillcorner/ — 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://paultommo.com/portfolio/.
  • https://paultommo.com/work/tech-matrix/ — 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://paultommo.com/, https://paultommo.com/portfolio/.

warning Thin content (low word count)

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

warning Duplicate <title> across pages

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

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

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

  • https://paultommo.com/about/ — the likely hero/LCP image (dal-pakwan.png) 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.
  • https://paultommo.com/blog/6-steps-to-boost-your-website-conversion-rates-by-25-with-just-a-great-footer/ — the likely hero/LCP image (footer-300x300.webp) 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.
  • https://paultommo.com/blog/fa-cup-digital-marketing-2023/ — the likely hero/LCP image (_129727637_gettyimages-1490083428.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.
  • https://paultommo.com/blog/is-your-website-secure/ — the likely hero/LCP image (security-guard.webp) 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.
  • https://paultommo.com/blog/stop-making-these-huge-mistakes-when-creating-ctas/ — the likely hero/LCP image (huge-mistakes-300x300.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.

warning Page is noindex

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

warning Non-indexable URL listed in sitemap

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

Notices (12 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

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

notice Low text-to-HTML ratio

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

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

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

  • https://paultommo.com/portfolio/ — this page reads as very difficult (Flesch Reading Ease 8, 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 Duplicate meta description across pages

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

  • https://paultommo.com/ — meta description shared by 5 pages: https://paultommo.com/blog/, https://paultommo.com/contact/, https://paultommo.com/portfolio/
  • https://paultommo.com/blog/ — meta description shared by 5 pages: https://paultommo.com/, https://paultommo.com/contact/, https://paultommo.com/portfolio/
  • https://paultommo.com/contact/ — meta description shared by 5 pages: https://paultommo.com/, https://paultommo.com/blog/, https://paultommo.com/portfolio/
  • https://paultommo.com/portfolio/ — meta description shared by 5 pages: https://paultommo.com/, https://paultommo.com/blog/, https://paultommo.com/contact/
  • https://paultommo.com/privacy/ — meta description shared by 5 pages: https://paultommo.com/, https://paultommo.com/blog/, https://paultommo.com/contact/

notice Likely hero image lacks fetchpriority=high

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

  • https://paultommo.com/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/ — the likely hero/LCP image (mugs_games_a_hairy_monster_reading_the_news_in_the_style_of_pix_f6927016-522b-4eb1-aac4-0f0ae80d44cd-300x300.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://paultommo.com/blog/10-website-annoyances-as-a-customer/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/40-of-users-will-leave-your-site-if-it-takes-more-than-three-seconds-to-load/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/57-of-website-users-spend-their-time-above-the-fold/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/8-hacks-to-boost-your-pop-up-conversion-rate-without-breaking-a-sweat/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/9-reasons-to-have-a-newsletter/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/according-to-google-users-form-an-opinion-about-your-website-in-0-05-seconds/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/best-colours-for-ctas/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/building-a-website-is-just-like-baking-a-delicious-cake/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/customers-distrust-bad-domain-names/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/customers-like-chatbots-why/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/do-customers-love-the-colours-on-your-website/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/how-to-create-a-fantastic-facebook-ad/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/how-to-create-a-simple-sales-funnel-for-ecommerce/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/rebuilding-a-website-is-like-rebuilding-a-house/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/the-secret-to-building-a-great-mailing-list-is/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/blog/why-do-your-customers-not-trust-you/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/hubspot/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/portfolio/ — the likely hero/LCP image (koat-logo-small.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://paultommo.com/skills/ — the likely hero/LCP image (svg%3e) 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://paultommo.com/small-business/ — the likely hero/LCP image (svg%3e) 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 · 23 occurrence(s)

notice Meta description too long

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

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

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

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

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

  • https://paultommo.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://paultommo.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://paultommo.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://paultommo.com/blog/10-website-annoyances-as-a-customer/ — 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://paultommo.com/blog/9-reasons-to-have-a-newsletter/ — 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://paultommo.com/blog/building-a-website-is-just-like-baking-a-delicious-cake/ — 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://paultommo.com/blog/customers-distrust-bad-domain-names/ — 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://paultommo.com/blog/customers-like-chatbots-why/ — 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://paultommo.com/blog/do-customers-love-the-colours-on-your-website/ — 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://paultommo.com/blog/rebuilding-a-website-is-like-rebuilding-a-house/ — 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://paultommo.com/blog/the-secret-to-building-a-great-mailing-list-is/ — 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://paultommo.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://paultommo.com/hubspot/ — 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://paultommo.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://paultommo.com/privacy/ — 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://paultommo.com/skills/ — 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://paultommo.com/small-business/ — 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://paultommo.com/work/appetize/ — 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://paultommo.com/work/barclays-rise/ — 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://paultommo.com/work/cobrowse/ — 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://paultommo.com/work/digital-dialogues/ — 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://paultommo.com/work/lcon/ — 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://paultommo.com/work/netdata/ — 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://paultommo.com/work/skillcorner/ — 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://paultommo.com/work/tech-matrix/ — 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.
Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://paultommo.com/
Shopify Studio for Craft Food & Drink | Paul Tomlinson
200 yes 459 50
https://paultommo.com/about/
Why craft food & drink? — About Paul Tomlinson | Paul Tomlinson
200 yes 269 50
https://paultommo.com/portfolio/
Portfolio — Paul Tomlinson | Paul Tomlinson
200 yes 144 50
https://paultommo.com/privacy/
Privacy Policy — Paul Tomlinson | Paul Tomlinson
200 yes 512 50
https://paultommo.com/work/digital-dialogues/
DIGITAL DIALOGUES - Paul Tomlinson
200 no 141 2
https://paultommo.com/work/lcon/
LONDON CLINIC OF NUTRITION - Paul Tomlinson
200 no 300 2
https://paultommo.com/work/tech-matrix/
TECH MATRIX - Paul Tomlinson
200 no 124 2
https://paultommo.com/work/appetize/
APPETIZE - Paul Tomlinson
200 no 153 1
https://paultommo.com/work/barclays-rise/
BARCLAYS RISE - Paul Tomlinson
200 no 134 1
https://paultommo.com/work/cobrowse/
COBROWSE - Paul Tomlinson
200 no 153 1
https://paultommo.com/work/conservation-capital/
CONSERVATION CAPITAL - Paul Tomlinson
200 no 198 1
https://paultommo.com/work/covid19humanitarian/
Covid19Humanitarian - Paul Tomlinson
200 no 159 1
https://paultommo.com/work/dovetail-games/
DOVETAIL GAMES - Paul Tomlinson
200 no 149 1
https://paultommo.com/work/ezra-furman/
EZRA FURMAN - Paul Tomlinson
200 no 121 1
https://paultommo.com/work/gamesys/
GAMESYS - Paul Tomlinson
200 no 159 1
https://paultommo.com/work/good-growth-hub/
GOOD GROWTH HUB - Paul Tomlinson
200 no 157 1
https://paultommo.com/work/mariana-mazzucato/
MARIANA MAZZUCATO - Paul Tomlinson
200 no 151 1
https://paultommo.com/work/mugs-games/
MUGS GAMES - Paul Tomlinson
200 no 143 1
https://paultommo.com/work/netdata/
NETDATA - Paul Tomlinson
200 no 154 1
https://paultommo.com/work/northstone/
NORTHSTONE - Paul Tomlinson
200 no 167 1
https://paultommo.com/work/semaine/
SEMAINE - Paul Tomlinson
200 no 139 1
https://paultommo.com/work/skillcorner/
SKILLCORNER - Paul Tomlinson
200 no 178 1
https://paultommo.com/work/sky-sports/
SKY SPORTS - Paul Tomlinson
200 no 104 1
https://paultommo.com/work/unilever-cif/
UNILEVER CIF - Paul Tomlinson
200 no 147 1
https://paultommo.com/blog/10-website-annoyances-as-a-customer/
10 website annoyances as a customer - Paul Tomlinson
200 no 144 1
https://paultommo.com/blog/40-of-users-will-leave-your-site-if-it-takes-more-than-three-seconds-to-load/
40% of users will leave your site if it takes more than three seconds to load - Paul Tomlinson
200 no 222 1
https://paultommo.com/blog/57-of-website-users-spend-their-time-above-the-fold/
57% of website users spend their time above the fold - Paul Tomlinson
200 no 130 1
https://paultommo.com/blog/6-steps-to-boost-your-website-conversion-rates-by-25-with-just-a-great-footer/
6 steps to boost your website conversion rates by 25% with just a great footer. - Paul Tomlinson
200 no 149 1
https://paultommo.com/blog/8-hacks-to-boost-your-pop-up-conversion-rate-without-breaking-a-sweat/
8 hacks to boost your pop-up conversion rate without breaking a sweat. - Paul Tomlinson
200 no 208 1
https://paultommo.com/blog/9-reasons-to-have-a-newsletter/
9 Reasons to have a newsletter - Paul Tomlinson
200 no 202 1
https://paultommo.com/blog/according-to-google-users-form-an-opinion-about-your-website-in-0-05-seconds/
According to Google, users form an opinion about your website in 0.05 seconds. - Paul Tomlinson
200 no 219 1
https://paultommo.com/blog/best-colours-for-ctas/
The best colours for CTAs - Paul Tomlinson
200 no 158 1
https://paultommo.com/blog/building-a-website-is-just-like-baking-a-delicious-cake/
Building a website is just like baking a delicious cake - Paul Tomlinson
200 no 172 1
https://paultommo.com/blog/customers-distrust-bad-domain-names/
Customers distrust bad domain names - Paul Tomlinson
200 no 212 1
https://paultommo.com/blog/customers-like-chatbots-why/
Customers like chatbots. Why? - Paul Tomlinson
200 no 163 1
https://paultommo.com/blog/do-customers-love-the-colours-on-your-website/
Do customers love the colours on your website? - Paul Tomlinson
200 no 330 1
https://paultommo.com/blog/fa-cup-digital-marketing-2023/
Digital Marketing Success at the WFA Cup Final - Paul Tomlinson
200 no 327 1
https://paultommo.com/blog/how-to-create-a-fantastic-facebook-ad/
How to create a fantastic Facebook ad - Paul Tomlinson
200 no 594 1
https://paultommo.com/blog/how-to-create-a-simple-sales-funnel-for-ecommerce/
How to create a simple sales funnel for ecommerce - Paul Tomlinson
200 no 622 1
https://paultommo.com/blog/is-your-website-secure/
Is your website secure? - Paul Tomlinson
200 no 202 1
https://paultommo.com/blog/rebuilding-a-website-is-like-rebuilding-a-house/
Rebuilding a website is like rebuilding a house - Paul Tomlinson
200 no 161 1
https://paultommo.com/blog/stop-making-these-huge-mistakes-when-creating-ctas/
Stop making these HUGE mistakes when creating CTAs - Paul Tomlinson
200 no 138 1
https://paultommo.com/blog/the-secret-to-building-a-great-mailing-list-is/
The secret to building a great mailing list is: - Paul Tomlinson
200 no 196 1
https://paultommo.com/blog/why-do-your-customers-not-trust-you/
Why do your customers not trust you? - Paul Tomlinson
200 no 223 1
https://paultommo.com/blog/
Shopify Studio for Craft Food & Drink | Paul Tomlinson
200 yes 217 0
https://paultommo.com/contact/
Contact | Paul Tomlinson
200 yes 41 0
https://paultommo.com/hubspot/
Building impactful HubSpot websites — Paul Tomlinson | Paul Tomlinson
200 yes 390 0
https://paultommo.com/skills/
Skills - Paul Tomlinson
200 no 140 0
https://paultommo.com/small-business/
Impactful websites for small businesses — Paul Tomlinson | Paul Tomlinson
200 yes 399 0
https://paultommo.com/how-to-create-a-brilliant-landing-page
404: Not found | Paul Tomlinson
404 no 53 1

Audit your own site — free

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

Scan your site →