https://ui.philippekam.dev/perf-stress is missing a canonical URL.
↗ ui.philippekam.dev/perf-stressAdd <link rel="canonical" href="https://ui.philippekam.dev/perf-stress" /> to the <head>.
4 ship-blockers, 14 should-fix
Heuristic score over 15 sampled pages, not Google's classifier. How to read this ↓
These rules still ran and emitted findings: the site-type profile lowered their severity so the score reflects how the signal applies to this kind of site, not a one-size-fits-all penalty.
aeo/answer-firstaeo/citable-factsaeo/freshness-signalscontent/eeat-signalscontent/heading-structurecontent/missing-authorspam/thin-contenttech/og-completenessSave this audit to your history, sign in.
Monitor this domain with Pro →Origin looks unprepared for crawl load. A cache-cold dynamic origin at this rate will struggle under bot traffic and may leak to your database bill.
Fix: add an edge CDN with a sensible s-maxage, or an app-layer query cache (Redis / Next.js unstable_cache) between the route handler and the database.
content/citation-coveragewarningmoderate10 pageshttps://ui.philippekam.dev/components/black-hole makes 21 quantified claims but cites 0 authoritative sources.
tech/canonical-consistencyerrorquick1 pagehttps://ui.philippekam.dev/perf-stress is missing a canonical URL.
content/unique-valueerrorstructural1 pagehttps://ui.philippekam.dev/perf-stress has low unique-content density 0.115 (11.5% of its 1 distinct words are page-distinctive; floor 0.20). Most of its vocabulary also appears on other pages.
content/meta-uniquenesserrormoderate11 pages11 pages share the same meta description template after entity masking.
links/orphan-pageserrormoderate1 pagehttps://ui.philippekam.dev/perf-stress has no inbound links from other pages in this crawl.
https://ui.philippekam.dev/perf-stress is missing a canonical URL.
↗ ui.philippekam.dev/perf-stressAdd <link rel="canonical" href="https://ui.philippekam.dev/perf-stress" /> to the <head>.
https://ui.philippekam.dev/perf-stress has low unique-content density 0.115 (11.5% of its 1 distinct words are page-distinctive; floor 0.20). Most of its vocabulary also appears on other pages.
↗ ui.philippekam.dev/perf-stressRaise originality density: add page-specific text, a distinct lead, this record's own facts, page-specific examples. Content repeated across pages on the same axis (boilerplate, shared legal/spec blocks, per-axis data like a role's regulations across that role's documents) is common vocabulary and does NOT raise density, even when it is useful.
11 pages share the same meta description template after entity masking.
Write a unique meta description for each page that highlights what makes it specifically different.
https://ui.philippekam.dev/perf-stress has no inbound links from other pages in this crawl.
↗ ui.philippekam.dev/perf-stressLink to this page from a relevant hub or index page, and include it in your site navigation.
https://ui.philippekam.dev/components/black-hole makes 21 quantified claims but cites 0 authoritative sources.
↗ ui.philippekam.dev/components/black-holeCite the primary sources behind your numbers: link the statute, standard, dataset, .gov/.edu page, or research that backs each statistic. AI Overviews and Google's helpful-content systems weight pages that ground claims in authoritative references. Note: this rule detects statistic+citation co-occurrence, not semantic correctness.
No llms.txt found at https://ui.philippekam.dev/llms.txt. llms.txt is a draft standard with low adoption: absence isn't a defect, only a missed opportunity.
Create https://ui.philippekam.dev/llms.txt to guide AI engines toward your most authoritative, citable content. Start with an # H1 title, a blockquote summary, then ## sections listing your key pages as markdown links. See https://llmstxt.org for the emerging convention.
https://ui.philippekam.dev/: 11 of 11 <img> tags declare neither width/height attributes nor inline sizing (e.g. /previews/radiant-veil.jpg, /previews/chromatic-leaks.jpg, /previews/halo-ring.jpg). Without an aspect ratio the browser cannot reserve space, so content shifts as each image loads, which is what Cumulative Layout Shift measures.
↗ ui.philippekam.dev/Set the intrinsic width and height attributes on each <img> and let CSS scale it (width: 100%; height: auto). The browser derives aspect-ratio from the attribute pair and reserves the box before the bytes arrive. In a template, bind both from the same data source as the src.
https://ui.philippekam.dev/perf-stress has no meta description, so Google will compose the snippet itself from page text, so you lose control over the SERP pitch and likely CTR.
↗ ui.philippekam.dev/perf-stressAdd <meta name="description" content="..."> to <head> with a summary written for THIS page (not a site-wide boilerplate line).
https://ui.philippekam.dev/perf-stress has no outbound links to other pages in this crawl.
↗ ui.philippekam.dev/perf-stressAdd outbound links to related pages on your site to help users and crawlers discover more content.
https://ui.philippekam.dev/ has no dateModified signal (no JSON-LD dateModified, no modification meta tag, no visible "Last updated"). Evergreen pages may legitimately omit this: verify whether freshness signals matter for this page type.
↗ ui.philippekam.dev/Add a freshness signal so AI engines know the page is current. Three recommended places: (1) dateModified in your JSON-LD schema, (2) a visible "Last updated: YYYY-MM-DD" line in the page content, (3) accurate <lastmod> in your sitemap. For pSEO templates, automate dateModified to update when your underlying data source changes.
https://ui.philippekam.dev/ has 0 unique citable facts. AI Overviews cite specific numbers and named references.
↗ ui.philippekam.dev/Replace vague language ("varies", "several weeks", "affordable", "many options") with specific values a reader or AI engine would cite: exact prices, percentages, dates, timeframes, version numbers, named products, standards, or regulations that apply to this page. For pSEO templates, bind these values from your data source so each page gets entity-specific numbers instead of repeating the same template wording. Target: 8+ unique facts per page.
https://ui.philippekam.dev/components/chromatic-leaks has no <h1> element.
↗ ui.philippekam.dev/components/chromatic-leaksAdd a single <h1> that names the page's primary topic. Google uses H1 to disambiguate when the title tag is unclear.
https://ui.philippekam.dev/components/chromatic-leaks does not open with a direct, extractable answer: opener is identical to other pages after entity masking; no specific numbers, dates, or dollar amounts
↗ ui.philippekam.dev/components/chromatic-leaksRestructure the template to open with entity-specific facts. Instead of boilerplate or a topic preamble, lead with a complete-answer sentence containing the key number, date, agency, or form name a reader (or AI Overview) would cite. Target: <100 words, at least one concrete number, at least one named entity.
https://ui.philippekam.dev/ has thin content (98 words).
Add at least 202 more words of substantive content relevant to this page's specific topic.
All 15 pages have no author signals (meta author, schema author, byline, or rel="author" link). This is a site-wide E-E-A-T risk. Author bylines matter most on blog/news content; technical docs and product pages legitimately omit them.
Add author attribution site-wide: <meta name="author" content="Name">, a visible byline, or author data in your JSON-LD schema.
All 15 pages have fewer than 2 out of 4 E-E-A-T signal categories. Site-wide trust signals are missing.
Add trust signals site-wide: author info, publication dates, about page links, sources, or "last updated" markers.
https://ui.philippekam.dev/ serves 11 images and not one uses srcset or <picture>, so phones download the desktop-sized file. Google recommends responsive images; this is guidance rather than a requirement, and no image dimension or byte limit is documented.
↗ ui.philippekam.dev/Emit a srcset with a handful of widths plus a sizes attribute, or wrap the img in <picture> to offer a modern format with a fallback. Most image CDNs and framework Image components generate both from one source URL.
https://ui.philippekam.dev/perf-stress is missing Open Graph tags: og:title, og:description, og:image, og:type, og:url.
↗ ui.philippekam.dev/perf-stressAdd the missing meta tags inside <head>: <meta property="og:title" content="..."> <meta property="og:description" content="..."> <meta property="og:image" content="..."> <meta property="og:type" content="..."> <meta property="og:url" content="...">.
Is this your site?
Claim it to manage the listing, get a verified badge, and a followed backlink.
ui.philippekam.dev passed the audit. Embed the badge on your site or README; it always shows your current grade.
[](https://pseolint.dev/r/8qVZ5NjwH3)<a href="https://pseolint.dev/r/8qVZ5NjwH3"><img src="https://pseolint.dev/api/badge/ui.philippekam.dev" alt="pseolint grade for ui.philippekam.dev" /></a>sitemap.xml as the source of truth. Pro lifts the budget to 500 pages on manual re-audits and crawls beyond the sitemap.