Catalog / wordsonaplate.com
65

SEO audit for wordsonaplate.com

Words on a Plate

other

Health 65/100 (fair) · 50 pages crawled · generated 2026-07-29

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

By Angelica Lai

Screenshot of wordsonaplate.com
50
pages crawled
46
indexable pages
0
errors
118
warnings
499
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Performance 72 0 47 183
Agent Readiness 74 0 43 45
Content 96 0 6 47
Duplicate 96 0 6 5
Images 97 0 5 28
Indexability 98 0 4 0
Budget 98 0 3 0
Links 99 0 2 24
Canonical 99 0 1 0
Headings 99 0 1 0
Amp 100 0 0 39
Crawlability 100 0 0 2
Meta Description 100 0 0 42
Security 100 0 0 33
Sitemap 100 0 0 2
Social 100 0 0 39
Structured Data 100 0 0 6
Titles 100 0 0 4
Findings

Warnings (13 rules)

warning Control has no accessible name

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

warning robots.txt-disallowed URL receives internal links (crawl-budget leak)

Rule budget.disallow_linked · Budget · 1 occurrence(s)

  • https://wordsonaplate.com/random — internal links point to https://wordsonaplate.com/random, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://wordsonaplate.com/, https://wordsonaplate.com/about, https://wordsonaplate.com/publishedworks.

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

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

  • https://wordsonaplate.com/tagged/writing — this noindex page has 25 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://wordsonaplate.com/, https://wordsonaplate.com/post/771627717460443136/right-spot-right-time, https://wordsonaplate.com/tagged/writing.
  • https://wordsonaplate.com/tagged/writing/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://wordsonaplate.com/tagged/writing.

warning Missing canonical tag

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

warning noindex set via the X-Robots-Tag HTTP header (easy to miss)

Rule directives.noindex_via_x_robots · Indexability · 2 occurrence(s)

  • https://wordsonaplate.com/tagged/writing — this page is noindex via the X-Robots-Tag HTTP header (not a meta tag) — set at the server/CDN layer and easy to miss. Confirm it's intentional; one broad rule can deindex a whole path.
  • https://wordsonaplate.com/tagged/writing/page/2 — this page is noindex via the X-Robots-Tag HTTP header (not a meta tag) — set at the server/CDN layer and easy to miss. Confirm it's intentional; one broad rule can deindex a whole path.

warning Duplicate page content

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

warning Duplicate <title> across pages

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

warning Missing <h1>

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

warning Page is noindex

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

warning Internal link points to a redirect

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

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

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

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

notice AMP markup present (no Google Search benefit since Jul 2026)

Rule amp.deprecated · Amp · 39 occurrence(s)

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

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

  • https://wordsonaplate.com/publishedworks — 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.

notice Duplicate meta description across pages

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

notice Likely hero image lacks fetchpriority=high

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

  • https://wordsonaplate.com/ — the likely hero/LCP image (f4abf4cb993d736538db274606e2a573c2f8ae02.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://wordsonaplate.com/about — the likely hero/LCP image (tumblr_inline_nim9iwqlly1qfp9jf.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://wordsonaplate.com/page/2 — the likely hero/LCP image (5a341799b6cac8ae0e54cd6453936b8076e81c05.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://wordsonaplate.com/post/164859272084/on-memory-why-i-take-photos-of-my-food — the likely hero/LCP image (tumblr_inline_ovljcfg5co1qfp9jf_500.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://wordsonaplate.com/post/166018970739/dont-tell-me-not-to-politicize-death — the likely hero/LCP image (tumblr_inline_ox9okturkk1qfp9jf_500.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://wordsonaplate.com/post/177815117329/hello-to-a-city-i-dont-yet-know — the likely hero/LCP image (tumblr_inline_pelveuh08w1qfp9jf_500.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://wordsonaplate.com/post/180312143079/claypot-tofu-without-the-claypot — the likely hero/LCP image (tumblr_inline_pihyz1lgje1qfp9jf_500.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://wordsonaplate.com/post/181851945709/its-not-home-until-ive-had-chinese-food — the likely hero/LCP image (tumblr_inline_pl120sy6je1qfp9jf_500.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://wordsonaplate.com/post/185101890439/the-lucky-ones — the likely hero/LCP image (tumblr_inline_przra6945c1qfp9jf_500.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://wordsonaplate.com/post/614601409536622592/morning-routines — the likely hero/LCP image (7f5de3f88466e3719ca4998aa6f7d700c8fb52ce.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://wordsonaplate.com/post/614696338658148352/absorbing-the-light — the likely hero/LCP image (4f3e3ada488339dac46bb178df5220ecbb94b11d.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://wordsonaplate.com/post/614896486009946112/a-care-package — the likely hero/LCP image (5a341799b6cac8ae0e54cd6453936b8076e81c05.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://wordsonaplate.com/post/615057219827941376/counterbalance — the likely hero/LCP image (7c8f36238cfd3487790f83ad7785e9404c54b8de.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://wordsonaplate.com/post/615223364637851648/the-resilience-of-sourdough — the likely hero/LCP image (7ac4f7f0c8342951e10fdf79cff58bdade3833de.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://wordsonaplate.com/post/615504317717348352/oils-and-fats — the likely hero/LCP image (090a814e0c8dd4213e18872632b63f3d34ce81bb.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://wordsonaplate.com/post/616146547944652800/we-stretch-and-we-stretch — the likely hero/LCP image (b1d35368a3d773c58bab79cb07b23264136182cb.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://wordsonaplate.com/post/617147860223410177/getting-unstuck — the likely hero/LCP image (6288269be4d380b0f12ee6d58a65e22e5c58b57c.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://wordsonaplate.com/post/627553094944833536/this-is-a-phobia — the likely hero/LCP image (2cd55b474491d6cd425f15dbcf6c53af963a441c.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://wordsonaplate.com/post/632002781129195520/press-and-hold — the likely hero/LCP image (3279c1d0fde98b363b2eb191ec247171491cf598.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://wordsonaplate.com/post/643871295885426688/lets-walk-together-we-went-to-a-lunar-new-year — the likely hero/LCP image (1c91981c45f906b2f99c8e7dacda6df0e8616256.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://wordsonaplate.com/post/665344295259209728/miscarriage-ritual — the likely hero/LCP image (3b377b45514ebf8743b3083ecaf9c9ac75df1a04.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://wordsonaplate.com/post/771627717460443136 — the likely hero/LCP image (f4abf4cb993d736538db274606e2a573c2f8ae02.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://wordsonaplate.com/post/771627717460443136/right-spot-right-time — the likely hero/LCP image (f4abf4cb993d736538db274606e2a573c2f8ae02.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://wordsonaplate.com/tagged/writing — the likely hero/LCP image (f4abf4cb993d736538db274606e2a573c2f8ae02.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://wordsonaplate.com/tagged/writing/page/2 — the likely hero/LCP image (tumblr_inline_olsatch5nl1qfp9jf_500.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 · 28 occurrence(s)

notice Internal link has no anchor text / accessible name

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

notice Legacy <meta name=keywords> tag present (Google ignores it)

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

notice Meta description too long

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

notice Meta description too short

Rule meta_desc.too_short · Meta Description · 3 occurrence(s)

notice Missing Open Graph tags

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

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

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

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

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

  • https://wordsonaplate.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://wordsonaplate.com/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://wordsonaplate.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://wordsonaplate.com/page/2 — 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://wordsonaplate.com/post/180312143079/claypot-tofu-without-the-claypot — 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://wordsonaplate.com/post/181851945709/its-not-home-until-ive-had-chinese-food — 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://wordsonaplate.com/post/185101890439/the-lucky-ones — 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://wordsonaplate.com/post/614601409536622592/morning-routines — 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://wordsonaplate.com/post/614696338658148352/absorbing-the-light — 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://wordsonaplate.com/post/614896486009946112/a-care-package — 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://wordsonaplate.com/post/615057219827941376/counterbalance — 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://wordsonaplate.com/post/615223364637851648/the-resilience-of-sourdough — 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://wordsonaplate.com/post/615504317717348352/oils-and-fats — 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://wordsonaplate.com/post/616146547944652800/we-stretch-and-we-stretch — 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://wordsonaplate.com/post/617147860223410177/getting-unstuck — 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://wordsonaplate.com/post/627553094944833536/this-is-a-phobia — 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://wordsonaplate.com/post/632002781129195520/press-and-hold — 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://wordsonaplate.com/post/643871295885426688/lets-walk-together-we-went-to-a-lunar-new-year — 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://wordsonaplate.com/post/665344295259209728/miscarriage-ritual — 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://wordsonaplate.com/post/771627717460443136 — 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://wordsonaplate.com/post/771627717460443136/right-spot-right-time — 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://wordsonaplate.com/privacypolicy — 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://wordsonaplate.com/publishedworks — 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://wordsonaplate.com/tagged/writing — 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://wordsonaplate.com/tagged/writing/page/2 — 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 · 48 occurrence(s)

  • https://wordsonaplate.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://wordsonaplate.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://wordsonaplate.com/archive — 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://wordsonaplate.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://wordsonaplate.com/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://wordsonaplate.com/post/181851945709/its-not-home-until-ive-had-chinese-food — 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://wordsonaplate.com/post/185101890439/the-lucky-ones — 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://wordsonaplate.com/post/614601409536622592/morning-routines — 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://wordsonaplate.com/post/614696338658148352/absorbing-the-light — 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://wordsonaplate.com/post/614896486009946112/a-care-package — 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://wordsonaplate.com/post/615057219827941376/counterbalance — 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://wordsonaplate.com/post/615223364637851648/the-resilience-of-sourdough — 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://wordsonaplate.com/post/615504317717348352/oils-and-fats — 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://wordsonaplate.com/post/616146547944652800/we-stretch-and-we-stretch — 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://wordsonaplate.com/post/617147860223410177/getting-unstuck — 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://wordsonaplate.com/post/627553094944833536/this-is-a-phobia — 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://wordsonaplate.com/post/632002781129195520/press-and-hold — 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://wordsonaplate.com/post/643871295885426688/lets-walk-together-we-went-to-a-lunar-new-year — 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://wordsonaplate.com/post/665344295259209728/miscarriage-ritual — 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://wordsonaplate.com/post/771627717460443136 — 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://wordsonaplate.com/post/771627717460443136/right-spot-right-time — 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://wordsonaplate.com/privacypolicy — 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://wordsonaplate.com/publishedworks — 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://wordsonaplate.com/tagged/writing — 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://wordsonaplate.com/tagged/writing/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.

notice URL redirects to another URL

Rule redirect.single · Crawlability · 1 occurrence(s)

notice Blocked by robots.txt

Rule robots.blocked · Crawlability · 1 occurrence(s)

notice Deep page has no BreadcrumbList structured data

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

notice Missing recommended security headers

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

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

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

notice Indexable page not listed in sitemap

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

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

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

notice Missing Twitter Card tag

Rule twitter.missing · Social · 35 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://wordsonaplate.com/
Words on a Plate
200 yes 2641 48
https://wordsonaplate.com/about
Words on a Plate — About
200 yes 292 47
https://wordsonaplate.com/archive
Words on a Plate: Archive
200 yes 8 47
https://wordsonaplate.com/contact
Words on a Plate — Contact
200 yes 67 47
https://wordsonaplate.com/privacypolicy
Words on a Plate — Privacy Policy
200 yes 400 47
https://wordsonaplate.com/publishedworks
Words on a Plate — Published Works
200 yes 244 47
https://wordsonaplate.com/tagged/writing
Words on a Plate
200 no 2624 25
https://wordsonaplate.com/post/771627717460443136/right-spot-right-time
Words on a Plate — Right Spot, Right Time
200 yes 1987 4
https://wordsonaplate.com/post/627553094944833536/this-is-a-phobia
Words on a Plate — This Is a Phobia
200 yes 1066 3
https://wordsonaplate.com/post/643871295885426688/lets-walk-together-we-went-to-a-lunar-new-year
Words on a Plate — Let’s Walk Together We went to a Lunar New Year...
200 yes 914 3
https://wordsonaplate.com/post/665344295259209728/miscarriage-ritual
Words on a Plate — This Is Your Name
200 yes 975 3
https://wordsonaplate.com/post/615057219827941376/counterbalance
Words on a Plate — Counterbalance
200 yes 421 2
https://wordsonaplate.com/post/615223364637851648/the-resilience-of-sourdough
Words on a Plate — The Resilience of Sourdough
200 yes 415 2
https://wordsonaplate.com/post/615504317717348352/oils-and-fats
Words on a Plate — Oils and Fats
200 yes 470 2
https://wordsonaplate.com/post/616146547944652800/we-stretch-and-we-stretch
Words on a Plate — We Stretch and We Stretch
200 yes 545 2
https://wordsonaplate.com/post/617147860223410177/getting-unstuck
Words on a Plate — Getting Unstuck
200 yes 1344 2
https://wordsonaplate.com/post/632002781129195520/press-and-hold
Words on a Plate — Press and Hold
200 yes 617 2
https://wordsonaplate.com/page/2
Words on a Plate
200 yes 2694 1
https://wordsonaplate.com/post/164403202274/the-places-we-grew-up-in
Words on a Plate — The Places We Grew Up In
200 yes 1019 3
https://wordsonaplate.com/post/164859272084/on-memory-why-i-take-photos-of-my-food
Words on a Plate — On Memory: Why I Take Photos of My Food
200 yes 856 3
https://wordsonaplate.com/post/177815117329/hello-to-a-city-i-dont-yet-know
Words on a Plate — Hello to a City I Don’t Yet Know
200 yes 730 3
https://wordsonaplate.com/post/181851945709/its-not-home-until-ive-had-chinese-food
Words on a Plate — It’s Not Home Until I’ve Had Chinese Food
200 yes 756 3
https://wordsonaplate.com/post/614601409536622592/morning-routines
Words on a Plate — Morning Routines
200 yes 800 3
https://wordsonaplate.com/post/771627717460443136
Words on a Plate — Right Spot, Right Time
200 yes 1987 2
https://wordsonaplate.com/post/158116975729/this-is-me-my-mother-my-grandmother
Words on a Plate — This Is Me, My Mother, My Grandmother
200 yes 747 2
https://wordsonaplate.com/tagged/writing/page/2
Words on a Plate
200 no 1952 1
https://wordsonaplate.com/post/166018970739/dont-tell-me-not-to-politicize-death
Words on a Plate — Don’t Tell Me Not to ‘Politicize’ Death
200 yes 1240 2
https://wordsonaplate.com/post/180312143079/claypot-tofu-without-the-claypot
Words on a Plate — Claypot Tofu Without the Claypot
200 yes 868 2
https://wordsonaplate.com/post/185101890439/the-lucky-ones
Words on a Plate — The Lucky Ones
200 yes 850 2
https://wordsonaplate.com/post/614696338658148352/absorbing-the-light
Words on a Plate — Absorbing the Light
200 yes 553 2
https://wordsonaplate.com/post/614896486009946112/a-care-package
Words on a Plate — A Care Package
200 yes 504 2
https://wordsonaplate.com/post/118668022429/you-gotta-wake-up-slow
Words on a Plate — You Gotta Wake Up Slow
200 yes 698 2
https://wordsonaplate.com/post/120331729889/the-bottom-feeder
Words on a Plate — The Bottom Feeder
200 yes 781 2
https://wordsonaplate.com/post/126847953744/when-it-comes-full-circle
Words on a Plate — When It Comes Full Circle
200 yes 1059 2
https://wordsonaplate.com/post/129470221529/tea-eggs-going-somewhere-and-returning
Words on a Plate — Tea Eggs: Going Somewhere and Returning
200 yes 925 2
https://wordsonaplate.com/post/131475819134/hypnagogia
Words on a Plate — Hypnagogia
200 yes 894 2
https://wordsonaplate.com/post/139741427169/do-you-see-the-green
Words on a Plate — Do You See the Green?
200 yes 725 2
https://wordsonaplate.com/post/140536352224/my-mothers-hands
Words on a Plate — My Mother’s Hands
200 yes 589 2
https://wordsonaplate.com/post/144788543284/everything-is-nothing
Words on a Plate — Everything Is Nothing
200 yes 978 2
https://wordsonaplate.com/post/150378393424/heres-to-new-loves
Words on a Plate — Here’s to New Loves
200 yes 1065 2
https://wordsonaplate.com/post/157576530054/when-youre-far-from-home
Words on a Plate — When You’re Far From Home
200 yes 716 2
https://wordsonaplate.com/post/120332020279/dukkah-spiced-salmon-recipe-found-on-blue-apron
Words on a Plate — Dukkah-spiced salmon, recipe found on Blue Apron....
200 yes 56 1
https://wordsonaplate.com/post/126880280739/kimchi-fried-rice-the-story-when-it-comes-full
Words on a Plate — Kimchi Fried Rice The Story: When It Comes Full...
200 yes 69 1
https://wordsonaplate.com/post/131774618414/guest-post-when-you-fast
Words on a Plate — Guest Post: When You Fast
200 yes 582 1
https://wordsonaplate.com/post/139743925614/banh-mi-sandwiches-with-tofu-tempeh-cucumbers
Words on a Plate — Banh mi sandwiches with tofu, tempeh, cucumbers &...
200 yes 64 1
https://wordsonaplate.com/post/144780402194/vegan-coconut-matcha-dessert-the-story-my
Words on a Plate — Vegan coconut matcha dessert! The Story: My...
200 yes 62 1
https://wordsonaplate.com/post/150614349989/vegan-clam-chowder-recipe
Words on a Plate — Lucas’ Vegan “Clam” Chowder Recipe
200 yes 545 1
https://wordsonaplate.com/post/153042009304/ill-find-you-in-the-water
Words on a Plate — I’ll Find You in the Water
200 yes 357 1
https://wordsonaplate.com/random 0 no 0 47
https://wordsonaplate.com/rss 200 no 0 47

Audit your own site — free

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

Scan your site →