Catalog / venegrad.com
65

SEO audit for venegrad.com

Venegrad.com

other

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

Download Markdown report (feed to ChatGPT / Claude / Cursor)
Screenshot of venegrad.com
50
pages crawled
50
indexable pages
0
errors
161
warnings
552
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Agent Readiness 70 0 50 80
Canonical 70 0 50 0
Meta Description 83 0 29 0
Content 88 0 20 23
Titles 96 0 6 23
Duplicate 98 0 3 0
Headings 98 0 3 0
Images 100 0 0 47
Performance 100 0 0 165
Robots 100 0 0 1
Security 100 0 0 53
Social 100 0 0 100
Structured Data 100 0 0 50
URL 100 0 0 10
Findings

Warnings (8 rules)

warning Control has no accessible name

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

warning Missing canonical tag

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

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

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

  • https://venegrad.com/ — https://www.venegrad.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 Duplicate <title> across pages

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

warning Missing <h1>

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

Notices (20 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

  • https://venegrad.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 · 48 occurrence(s)

notice Likely hero image lacks fetchpriority=high

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

  • https://venegrad.com/ — the likely hero/LCP image (1776117356279_94741.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://venegrad.com/posts — the likely hero/LCP image (1776117356279_94741.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://venegrad.com/posts/cordova — the likely hero/LCP image (1739169895267_17681.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://venegrad.com/posts/css — the likely hero/LCP image (1719264229452_48411.webp) 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://venegrad.com/posts/lessons — the likely hero/LCP image (1776117356279_94741.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://venegrad.com/posts/lessons/100-12---robota-z-masivami-kolekciyami-map-set-weakmap-weakset-generatorami-ta-iteratorami-v-typescript — the likely hero/LCP image (1742953363186_77020.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://venegrad.com/posts/manuals — the likely hero/LCP image (1765880215495_60523.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://venegrad.com/posts/manuals/107-yak-stvoriti-provisioning-profile-sertifikati-ta-peredati-ih-rozrobniku-xcode-na-mac-os — the likely hero/LCP image (1751045321562_13031.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://venegrad.com/posts/manuals/112-avtoimport-pinia-stores-nuxtjs-4 — the likely hero/LCP image (1765880215495_60523.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://venegrad.com/posts/things — the likely hero/LCP image (1752698493213_2962.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://venegrad.com/posts/things/108-chi-biblioteki-ta-kurs-zlo-sered-djuniv — the likely hero/LCP image (1752698493213_2962.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://venegrad.com/posts/vuejs — the likely hero/LCP image (1716984680100_85666.webp) 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://venegrad.com/tags/%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F — the likely hero/LCP image (1761731196301_63762.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://venegrad.com/tags/%D0%BA%D0%BE%D1%81%D1%82%D0%B8%D0%BB%D1%96 — the likely hero/LCP image (1761731196301_63762.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://venegrad.com/tags/%D1%85%D0%B0%D0%BA%D0%B8 — the likely hero/LCP image (1761731196301_63762.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://venegrad.com/tags/Junior — the likely hero/LCP image (1752698493213_2962.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://venegrad.com/tags/apple — the likely hero/LCP image (1761731255125_17117.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://venegrad.com/tags/js — the likely hero/LCP image (1761731048772_24914.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://venegrad.com/tags/mac — the likely hero/LCP image (1761731255125_17117.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://venegrad.com/tags/macos — the likely hero/LCP image (1761731255125_17117.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://venegrad.com/tags/numbers — the likely hero/LCP image (1761731048772_24914.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://venegrad.com/tags/nuxt4 — the likely hero/LCP image (1765880215495_60523.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://venegrad.com/tags/nuxt4-bugs — the likely hero/LCP image (1765880215495_60523.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://venegrad.com/tags/typescript — the likely hero/LCP image (1776117356279_94741.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://venegrad.com/user/268-venegrad — the likely hero/LCP image (avatar-1775305966354.webp) 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 · 47 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 · 32 occurrence(s)

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

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

  • https://venegrad.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://venegrad.com/auth — 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://venegrad.com/auth/register — 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://venegrad.com/policy — 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://venegrad.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://venegrad.com/posts/cordova — 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://venegrad.com/posts/css — 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://venegrad.com/posts/lessons — 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://venegrad.com/posts/lessons/102-14---utilitarni-tipi-v-typescript — 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://venegrad.com/posts/lessons/103-15---tipi-dlya-praci-z-dom-tipizaciya-eventiv-brauzerne-api-v-typescript — 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://venegrad.com/posts/lessons/104-16---mapping-tipiv-ta-stvorennya-tipiv-na-osnovi-isnuuchih-glibinna-tipizaciya-obektiv- — 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://venegrad.com/posts/lessons/105-17---nalashtuvannya-tsconfig-optimizaciya-pidkluchennya-do-front-end-tak-bek-proektiv — 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://venegrad.com/posts/lessons/106-18---nalashtuvannya-typescript-dlya-vue-proektiv — 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://venegrad.com/posts/lessons/114-19---plagini-ta-transformaciya-typescript — 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://venegrad.com/posts/manuals — 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://venegrad.com/posts/manuals/107-yak-stvoriti-provisioning-profile-sertifikati-ta-peredati-ih-rozrobniku-xcode-na-mac-os — 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://venegrad.com/posts/manuals/109-shcho-take-wortex-render-i-yak-iogo-vikoristovuvati — 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://venegrad.com/posts/manuals/110-formatuvannya-chisel-pislya-krapki-v-multivalidnih-formah — 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://venegrad.com/posts/manuals/111-lagi-ta-frizi-na-mac-os-26 — 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://venegrad.com/posts/manuals/112-avtoimport-pinia-stores-nuxtjs-4 — 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://venegrad.com/posts/things — 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://venegrad.com/posts/things/108-chi-biblioteki-ta-kurs-zlo-sered-djuniv — 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://venegrad.com/posts/vuejs — 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://venegrad.com/tags/typescript — 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://venegrad.com/user/268-venegrad — 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://venegrad.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://venegrad.com/auth — 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://venegrad.com/auth/register — 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://venegrad.com/policy — 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://venegrad.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://venegrad.com/posts/cordova — 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://venegrad.com/posts/css — 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://venegrad.com/posts/lessons — 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://venegrad.com/posts/lessons/102-14---utilitarni-tipi-v-typescript — 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://venegrad.com/posts/lessons/103-15---tipi-dlya-praci-z-dom-tipizaciya-eventiv-brauzerne-api-v-typescript — 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://venegrad.com/posts/lessons/104-16---mapping-tipiv-ta-stvorennya-tipiv-na-osnovi-isnuuchih-glibinna-tipizaciya-obektiv- — 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://venegrad.com/posts/lessons/105-17---nalashtuvannya-tsconfig-optimizaciya-pidkluchennya-do-front-end-tak-bek-proektiv — 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://venegrad.com/posts/lessons/106-18---nalashtuvannya-typescript-dlya-vue-proektiv — 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://venegrad.com/posts/lessons/114-19---plagini-ta-transformaciya-typescript — 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://venegrad.com/posts/manuals — 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://venegrad.com/posts/manuals/107-yak-stvoriti-provisioning-profile-sertifikati-ta-peredati-ih-rozrobniku-xcode-na-mac-os — 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://venegrad.com/posts/manuals/109-shcho-take-wortex-render-i-yak-iogo-vikoristovuvati — 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://venegrad.com/posts/manuals/110-formatuvannya-chisel-pislya-krapki-v-multivalidnih-formah — 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://venegrad.com/posts/manuals/111-lagi-ta-frizi-na-mac-os-26 — 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://venegrad.com/posts/manuals/112-avtoimport-pinia-stores-nuxtjs-4 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://venegrad.com/posts/things — 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://venegrad.com/posts/things/108-chi-biblioteki-ta-kurs-zlo-sered-djuniv — 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://venegrad.com/posts/vuejs — 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://venegrad.com/tags/typescript — 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://venegrad.com/user/268-venegrad — 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 robots.txt missing (root returns 404/none)

Rule robots.txt_missing · Robots · 1 occurrence(s)

  • https://venegrad.com/ — robots.txt did not return a 200 at the site root — a healthy site should serve one (declare your sitemap and confirm the host serves root files)

notice No structured data detected

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

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 · 3 occurrence(s)

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

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

notice Title is very short

Rule title.too_short · Titles · 2 occurrence(s)

notice Missing Twitter Card tag

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

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://venegrad.com/
Venegrad.com
200 yes 291 50
https://venegrad.com/auth
Авторизація - Venegrad.com
200 yes 25 50
https://venegrad.com/policy
Venegrad.com
200 yes 435 50
https://venegrad.com/posts/manuals
Мануали - Venegrad.com
200 yes 309 32
https://venegrad.com/posts
Категорії - Venegrad.com
200 yes 294 28
https://venegrad.com/posts/lessons
Курси та заняття - Venegrad.com
200 yes 318 32
https://venegrad.com/posts/vuejs
Vuejs - Venegrad.com
200 yes 300 29
https://venegrad.com/posts/css
CSS - Venegrad.com
200 yes 107 27
https://venegrad.com/posts/things
Думки - Venegrad.com
200 yes 70 26
https://venegrad.com/posts/cordova
Cordova - Venegrad.com
200 yes 294 25
https://venegrad.com/auth/register
Регістрація - Venegrad.com
200 yes 35 1
https://venegrad.com/user/268-venegrad
venegrad - профіль - Venegrad.com
200 yes 225 22
https://venegrad.com/posts/manuals/111-lagi-ta-frizi-na-mac-os-26
Лаги та фрізи на Mac Os 26
200 yes 244 8
https://venegrad.com/posts/manuals/110-formatuvannya-chisel-pislya-krapki-v-multivalidnih-formah
Форматування чисел після крапки в мультивалідних формах
200 yes 304 7
https://venegrad.com/posts/manuals/112-avtoimport-pinia-stores-nuxtjs-4
Автоімпорт pinia stores NuxtJs 4
200 yes 161 7
https://venegrad.com/posts/lessons/114-19---plagini-ta-transformaciya-typescript
#19 - Плагіни та трансформація TypeScript
200 yes 851 6
https://venegrad.com/posts/things/108-chi-biblioteki-ta-kurs-zlo-sered-djuniv
Чи бібліотеки та курс зло серед джунів?
200 yes 876 7
https://venegrad.com/posts/manuals/107-yak-stvoriti-provisioning-profile-sertifikati-ta-peredati-ih-rozrobniku-xcode-na-mac-os
Як створити Provisioning Profile, сертифікати, та передати їх розробнику xCode на Mac Os
200 yes 830 8
https://venegrad.com/posts/manuals/109-shcho-take-wortex-render-i-yak-iogo-vikoristovuvati
Що таке Wortex Render, і як його використовувати
200 yes 542 7
https://venegrad.com/tags/typescript
typescript - мітки - Venegrad.com
200 yes 314 9
https://venegrad.com/posts/manuals/99-yak-pravilno-okrugliti-chislo-do-potribnoi-kilkosti-znakiv-pislya-krapki-js
Як правильно округлити число до потрібної кількості знаків після крапки JS
200 yes 476 3
https://venegrad.com/posts/manuals/101-13---conditional-types-ta-utiliti-partial-required-readonly-pick-omit
#13 - Conditional Types та утиліти Partial, Required, Readonly, Pick, Omit
200 yes 405 4
https://venegrad.com/posts/lessons/105-17---nalashtuvannya-tsconfig-optimizaciya-pidkluchennya-do-front-end-tak-bek-proektiv
#17 - Налаштування tsconfig, оптимізація, підключення до front-end так бек проектів
200 yes 1246 4
https://venegrad.com/posts/lessons/102-14---utilitarni-tipi-v-typescript
#14 - Утилітарні типи в TypeScript
200 yes 692 4
https://venegrad.com/tags/apple
apple - мітки - Venegrad.com
200 yes 237 3
https://venegrad.com/posts/css/56-gradient-v-tr-v-safari
Градієнт в <tr> в Safari
200 yes 244 2
https://venegrad.com/posts/css/63-znaiomstvo-z-individualnimi-vlastivostyami-css-transforms
Знайомство з індивідуальними властивостями CSS Transforms
200 yes 252 2
https://venegrad.com/posts/lessons/103-15---tipi-dlya-praci-z-dom-tipizaciya-eventiv-brauzerne-api-v-typescript
#15 - Типи для праці з DOM, типізація евентів, браузерне API в TypeScript
200 yes 575 3
https://venegrad.com/posts/lessons/104-16---mapping-tipiv-ta-stvorennya-tipiv-na-osnovi-isnuuchih-glibinna-tipizaciya-obektiv-
#16 - Маппінг типів та створення типів на основі існуючих, глибинна типізація обʼєктів
200 yes 450 3
https://venegrad.com/posts/lessons/106-18---nalashtuvannya-typescript-dlya-vue-proektiv
#18 - Налаштування TypeScript для Vue проектів
200 yes 457 3
https://venegrad.com/posts/vuejs/42-animaciya-page-transition-slide-left-right-vue3
Анімація page transition slide left right Vue3
200 yes 503 2
https://venegrad.com/posts/vuejs/43-yak-legko-pidkluchiti-svg-spraiti-v-nuxt-abo-vue-proekt
Як легко підключити SVG спрайти в Nuxt або Vue проект
200 yes 656 2
https://venegrad.com/posts/vuejs/44-yak-zadati-meta-description-title-v-nuxtjs-3-na-riznih-movah
Як задати meta description title в NuxtJS 3 на різних мовах
200 yes 247 2
https://venegrad.com/posts/vuejs/57-yak-u-vue-nalashtuvati-avto-imort-yak-v-nuxtjs
Як у vue налаштувати авто-іморт як в Nuxtjs
200 yes 335 2
https://venegrad.com/posts/lessons/100-12---robota-z-masivami-kolekciyami-map-set-weakmap-weakset-generatorami-ta-iteratorami-v-typescript
#12 - Робота з масивами, колекціями, Map, Set, WeakMap, WeakSet, генераторами та ітераторами в TypeScript
200 yes 757 2
https://venegrad.com/tags/js
js - мітки - Venegrad.com
200 yes 74 2
https://venegrad.com/tags/numbers
numbers - мітки - Venegrad.com
200 yes 74 2
https://venegrad.com/tags/nuxt4
nuxt4 - мітки - Venegrad.com
200 yes 65 2
https://venegrad.com/tags/nuxt4-bugs
nuxt4-bugs - мітки - Venegrad.com
200 yes 65 2
https://venegrad.com/tags/mac
mac - мітки - Venegrad.com
200 yes 111 2
https://venegrad.com/tags/macos
macos - мітки - Venegrad.com
200 yes 152 2
https://venegrad.com/tags/Junior
Junior - мітки - Venegrad.com
200 yes 70 2
https://venegrad.com/tags/css
css - мітки - Venegrad.com
200 yes 70 2
https://venegrad.com/tags/html
html - мітки - Venegrad.com
200 yes 116 2
https://venegrad.com/tags/%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F
Оптимізація - мітки - Venegrad.com
200 yes 72 2
https://venegrad.com/tags/%D0%BA%D0%BE%D1%81%D1%82%D0%B8%D0%BB%D1%96
костилі - мітки - Venegrad.com
200 yes 72 2
https://venegrad.com/tags/%D1%85%D0%B0%D0%BA%D0%B8
хаки - мітки - Venegrad.com
200 yes 112 2
https://venegrad.com/tags/cert
cert - мітки - Venegrad.com
200 yes 78 2
https://venegrad.com/tags/cordova
cordova - мітки - Venegrad.com
200 yes 138 2
https://venegrad.com/tags/xCode
xCode - мітки - Venegrad.com
200 yes 78 2

Audit your own site — free

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

Scan your site →