Slop Score — https://vu1nz.com/
72/100 — Sloppy
0 is pristine, 100 is maximum slop. This is a measure of observable defects — placeholder copy, duplicate pages, leaked template variables, missing first-party evidence, stale dates, unlabelled links, design drift. It does not estimate whether anything was written by AI.
| Metric | Value |
|---|---|
| Pages crawled | 50 (capped at 50) |
| Words analyzed | 79,613 |
| Issues found | 42 |
| Content slop points | 38 |
| Code slop points | 99 |
| Design slop points | 83 |
| Duration | 2.3s |
Site-wide issues
Code — 9 pages share 2 duplicate titles
Give every page a unique title describing that page specifically. Duplicates tell an answer engine the pages are interchangeable, so it picks one and drops the rest.
"sign in · vu1nz" × 5 (https://vu1nz.com/login)"sign in to github · github" × 4 (https://vu1nz.com/api/auth/github)
Code — 9 pages share 2 duplicate meta descriptions
Give every page a unique meta description describing that page specifically. Duplicates tell an answer engine the pages are interchangeable, so it picks one and drops the rest.
"sign in with github to manage your vu1nz subscriptions, scan" × 5 (https://vu1nz.com/login)"github is where people build software. more than 150 million" × 4 (https://vu1nz.com/api/auth/github)
Content — 5 pages with no
Add one H1 per page stating what the page is about. Answer engines use it as the page's headline claim.
https://vu1nz.com/comparehttps://vu1nz.com/api/auth/githubhttps://vu1nz.com/api/auth/github?next=%2Fdashboardhttps://vu1nz.com/api/auth/github?next=%2Fapi%2Fgithub%2Fapp%2Finstallhttps://vu1nz.com/api/auth/github?next=%2Fdashboard%2Fapi-keys
Content — 2 pages are near-duplicates of each other (1 pair ≥70% identical)
Consolidate these into one strong page and redirect the rest, or rewrite each to cover something genuinely different. Near-duplicate pages are the clearest fingerprint of scaled content, and they compete with each other instead of ranking.
75% — https://vu1nz.com/ ≈ https://vu1nz.com/compare
Content — 4 pages open with an identical first sentence
Write a page-specific opening for each. A shared intro means the first thing every crawler reads is the same, so nothing distinguishes the pages.
"skip to content you signed in with another tab or window rel…" × 4
Design — 9 distinct font families declared
Cut to two or three typefaces (one display, one text, optionally one mono). Every extra family is another web font to download and another way the page looks unplanned.
interinter fallbackjetbrains monojetbrains mono fallbackvar(--font-sans)var(--font-mono)var(--default-font-familyvar(--default-mono-font-familyvar(--font-display)
Per-page findings (28 pages, worst first)
| Page | Slop points | Issues |
|---|---|---|
| /blog/security-awareness-training-ci-cd-software-supply-chain | 13 | 2 |
| /blog/vivint-security-ci-cd-supply-chain-defense | 13 | 2 |
| /blog/security-license-ci-cd-architecture | 13 | 2 |
| /blog/security-testing-cicd-supply-chain-architecture | 13 | 2 |
| / | 9 | 1 |
| /compare | 9 | 1 |
| /github-actions | 9 | 1 |
| /api/auth/github | 8 | 2 |
| /api/auth/github?next=%2Fdashboard | 8 | 2 |
| /api/auth/github?next=%2Fapi%2Fgithub%2Fapp%2Finstall | 8 | 2 |
| /api/auth/github?next=%2Fdashboard%2Fapi-keys | 8 | 2 |
| /faq | 5 | 1 |
| /blog/protective-security-specialist-cicd-supply-chain | 4 | 1 |
| /blog/cyber-security-analyst-jobs-cicd-supply-chain-2026 | 4 | 1 |
| /blog/securitas-security-services-usa-cicd-security-architecture | 4 | 1 |
| /blog/security-systems-ci-cd-software-supply-chain | 4 | 1 |
| /blog/security-public-storage-cicd-workflow | 4 | 1 |
| /blog/vector-security-ci-cd-supply-chain | 4 | 1 |
| /blog/adt-security-ci-cd-automated-detection-triage | 4 | 1 |
| /blog/cyber-security-certifications-devsecops-architecture-guide | 4 | 1 |
| /blog/identity-and-access-management-for-cloud-security | 4 | 1 |
| /blog/ai-agents-github-actions-security | 4 | 1 |
| /blog/adt-home-security-cicd-supply-chain-defense | 4 | 1 |
| /blog/encrypted-messaging-github-actions-security | 4 | 1 |
| /blog/security-service-ci-cd-supply-chain-defense | 4 | 1 |
| /blog/screen-sharing-ci-cd-security | 4 | 1 |
| /blog/security-service-architecture-cicd-supply-chain | 4 | 1 |
| /blog/trane-supply-ci-cd-supply-chain-security | 4 | 1 |
/blog/security-awareness-training-ci-cd-software-supply-chain
https://vu1nz.com/blog/security-awareness-training-ci-cd-software-supply-chain — 3,574 words, 13 slop points
- Code: Unrendered {{template}} variable rendered on the page (1×) Trace the template or data binding that produced this and give it a fallback. Visible
undefined/{{var}}text gets indexed verbatim and quoted back by answer engines. Evidence:{{ github.event.pull_request.head.sha }} - Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/vivint-security-ci-cd-supply-chain-defense
https://vu1nz.com/blog/vivint-security-ci-cd-supply-chain-defense — 3,512 words, 13 slop points
- Code: Unrendered {{template}} variable rendered on the page (1×) Trace the template or data binding that produced this and give it a fallback. Visible
undefined/{{var}}text gets indexed verbatim and quoted back by answer engines. Evidence:{{ github.event.pull_request.head.sha }} - Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/security-license-ci-cd-architecture
https://vu1nz.com/blog/security-license-ci-cd-architecture — 3,852 words, 13 slop points
- Code: Unrendered {{template}} variable rendered on the page (2×) Trace the template or data binding that produced this and give it a fallback. Visible
undefined/{{var}}text gets indexed verbatim and quoted back by answer engines. Evidence:{{ steps.diff.outputs.needs_scan }},{{ secrets.SECURITY_LICENSE_KEY }} - Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/security-testing-cicd-supply-chain-architecture
https://vu1nz.com/blog/security-testing-cicd-supply-chain-architecture — 3,380 words, 13 slop points
- Code: Unrendered {{template}} variable rendered on the page (1×) Trace the template or data binding that produced this and give it a fallback. Visible
undefined/{{var}}text gets indexed verbatim and quoted back by answer engines. Evidence:{{ github.event.pull_request.head.sha }} - Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/
https://vu1nz.com/ — 1,088 words, 9 slop points
- Code: Unrendered {{template}} variable rendered on the page (1×) Trace the template or data binding that produced this and give it a fallback. Visible
undefined/{{var}}text gets indexed verbatim and quoted back by answer engines. Evidence:{{ secrets.AWS_KEY }}
/compare
https://vu1nz.com/compare — 840 words, 9 slop points
- Code: Unrendered {{template}} variable rendered on the page (1×) Trace the template or data binding that produced this and give it a fallback. Visible
undefined/{{var}}text gets indexed verbatim and quoted back by answer engines. Evidence:{{ secrets.AWS_KEY }}
/github-actions
https://vu1nz.com/github-actions — 654 words, 9 slop points
- Code: Unrendered {{template}} variable rendered on the page (6×) Trace the template or data binding that produced this and give it a fallback. Visible
undefined/{{var}}text gets indexed verbatim and quoted back by answer engines. Evidence:{{ secrets.GITHUB_TOKEN }},{{ secrets.VU1NZ_LICENSE }},{{ secrets.GITHUB_TOKEN }},{{ secrets.VU1NZ_LICENSE }},{{ secrets.ANTHROPIC_API_KEY }}
/api/auth/github
https://vu1nz.com/api/auth/github — 104 words, 8 slop points
- Content: Thin page — only 104 visible words Either expand this to 300+ words of substantive content or remove it from the sitemap and internal nav. Thin pages dilute the crawl budget an answer engine spends on you.
- Code: 4 placeholder hrefs (# / javascript:void) Give every link real text or an aria-label, and point it at a real URL.
href="#"navigation is invisible to crawlers and unusable with a keyboard or screen reader.
/api/auth/github?next=%2Fdashboard
https://vu1nz.com/api/auth/github?next=%2Fdashboard — 104 words, 8 slop points
- Content: Thin page — only 104 visible words Either expand this to 300+ words of substantive content or remove it from the sitemap and internal nav. Thin pages dilute the crawl budget an answer engine spends on you.
- Code: 4 placeholder hrefs (# / javascript:void) Give every link real text or an aria-label, and point it at a real URL.
href="#"navigation is invisible to crawlers and unusable with a keyboard or screen reader.
/api/auth/github?next=%2Fapi%2Fgithub%2Fapp%2Finstall
https://vu1nz.com/api/auth/github?next=%2Fapi%2Fgithub%2Fapp%2Finstall — 104 words, 8 slop points
- Content: Thin page — only 104 visible words Either expand this to 300+ words of substantive content or remove it from the sitemap and internal nav. Thin pages dilute the crawl budget an answer engine spends on you.
- Code: 4 placeholder hrefs (# / javascript:void) Give every link real text or an aria-label, and point it at a real URL.
href="#"navigation is invisible to crawlers and unusable with a keyboard or screen reader.
/api/auth/github?next=%2Fdashboard%2Fapi-keys
https://vu1nz.com/api/auth/github?next=%2Fdashboard%2Fapi-keys — 104 words, 8 slop points
- Content: Thin page — only 104 visible words Either expand this to 300+ words of substantive content or remove it from the sitemap and internal nav. Thin pages dilute the crawl budget an answer engine spends on you.
- Code: 4 placeholder hrefs (# / javascript:void) Give every link real text or an aria-label, and point it at a real URL.
href="#"navigation is invisible to crawlers and unusable with a keyboard or screen reader.
/faq
https://vu1nz.com/faq — 1,044 words, 5 slop points
- Content: Almost no first-party evidence (1 signal of 6) Add at least two things only you could publish: a real metric with its source, a named customer quote, a comparison table, a screenshot of your own product, or a code sample. This is what separates a page worth citing from a page worth skipping. Evidence:
stat:true,quote:false,named-proof:false,original-image:false,code:false
/blog/protective-security-specialist-cicd-supply-chain
https://vu1nz.com/blog/protective-security-specialist-cicd-supply-chain — 3,488 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/cyber-security-analyst-jobs-cicd-supply-chain-2026
https://vu1nz.com/blog/cyber-security-analyst-jobs-cicd-supply-chain-2026 — 3,504 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/securitas-security-services-usa-cicd-security-architecture
https://vu1nz.com/blog/securitas-security-services-usa-cicd-security-architecture — 3,509 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/security-systems-ci-cd-software-supply-chain
https://vu1nz.com/blog/security-systems-ci-cd-software-supply-chain — 3,415 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/security-public-storage-cicd-workflow
https://vu1nz.com/blog/security-public-storage-cicd-workflow — 3,771 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/vector-security-ci-cd-supply-chain
https://vu1nz.com/blog/vector-security-ci-cd-supply-chain — 3,419 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/adt-security-ci-cd-automated-detection-triage
https://vu1nz.com/blog/adt-security-ci-cd-automated-detection-triage — 3,341 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/cyber-security-certifications-devsecops-architecture-guide
https://vu1nz.com/blog/cyber-security-certifications-devsecops-architecture-guide — 3,625 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/identity-and-access-management-for-cloud-security
https://vu1nz.com/blog/identity-and-access-management-for-cloud-security — 3,848 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/ai-agents-github-actions-security
https://vu1nz.com/blog/ai-agents-github-actions-security — 4,033 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/adt-home-security-cicd-supply-chain-defense
https://vu1nz.com/blog/adt-home-security-cicd-supply-chain-defense — 3,891 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/encrypted-messaging-github-actions-security
https://vu1nz.com/blog/encrypted-messaging-github-actions-security — 3,821 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/security-service-ci-cd-supply-chain-defense
https://vu1nz.com/blog/security-service-ci-cd-supply-chain-defense — 3,600 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/screen-sharing-ci-cd-security
https://vu1nz.com/blog/screen-sharing-ci-cd-security — 2,739 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/security-service-architecture-cicd-supply-chain
https://vu1nz.com/blog/security-service-architecture-cicd-supply-chain — 3,716 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
/blog/trane-supply-ci-cd-supply-chain-security
https://vu1nz.com/blog/trane-supply-ci-cd-supply-chain-security — 3,986 words, 4 slop points
- Design: 3 of 3 images have no width/height — causes layout shift Set explicit
widthandheight(or an aspect-ratio box) on every image so the browser can reserve space before the file loads. This is the most common cause of content jumping as a page renders.
Clean pages (22)
- /scanner
- /pricing
- /api
- /mcp
- /advisories
- /free-scan
- /blog
- /blog/what-dependabot-misses
- /blog/anatomy-of-shai-hulud-npm-worm
- /blog/ship-safer-with-vu1nz-github-actions
- /login
- /register
- /billing
- /login?next=/api/github/app/install
- /status
- /login?next=/dashboard/api-keys
- /blog/introducing-vu1nz-os
- /blog/idor-testing-checklist
- /blog/proof-based-xss-detection
- /password_reset
- /join?return_to=%2Flogin%2Foauth%2Fauthorize%3Fclient_id%3DOv23liCgRRqa45vHR8Ae%26redirect_uri%3Dhttps%253A%252F%252Fvu1nz.com%252Fapi%252Fauth%252Fgithub%252Fcallback%26scope%3Dread%253Auser%2Buser%253Aemail%2Bread%253Aorg%26state%3D3c0908c7fd2bd5f12d819d6ab28ea4f5&source=oauth
- /join?return_to=%2Flogin%2Foauth%2Fauthorize%3Fclient_id%3DOv23liCgRRqa45vHR8Ae%26redirect_uri%3Dhttps%253A%252F%252Fvu1nz.com%252Fapi%252Fauth%252Fgithub%252Fcallback%26scope%3Dread%253Auser%2Buser%253Aemail%2Bread%253Aorg%26state%3D45b149c98b434266804fec93882b12ca&source=oauth