SEOking

Website audit report

sheafui.dev

83
/ 100
B · Good

29 issues found across 130 checks. Nothing critical.

Checks run
130
Passed
91
Failed
29
Pages crawled
12

Scanned 2026-09-01T23:20:59+00:00 · 1 host IP · cert expires in 54 days

This report is not offered to search engines. It is reachable by link only. If you own sheafui.dev you can publish or delete it.

How you compare

Measured against every site SEOking has audited: a corpus that grows with each scan and cannot be reconstructed after the fact.

Your position

72th percentile of 29 sites audited. The average site scores 72, the median 71.

The most unusual thing you fail

Software versions are not disclosed

90% of the sites we have audited get this right and yours does not. Of everything on this report, it is the fault that most sets you apart from your competition, which makes it the first thing worth fixing.

Inbox Trust Index

Our own measure of whether your domain is trusted by the systems that decide if mail reaches an inbox. No other website audit reports this. It is built from BounceZero's deliverability platform.

69
/ 100
Fair

Working, but with faults that measurably cost you inbox placement.

What is pulling it down: DMARC enforcement. See the email deliverability section below.

Measured against our corpus

We have measured deliverability across 223,556 domains. Yours is not among them, which simply means no one has needed to verify an address at it. The score above is from live measurements of your own DNS.

For context, 3.7% of the domains we have measured accept mail to any address, which makes their bounce behaviour unpredictable.

How your page actually renders

Loaded in a real browser at phone size. This is close to what a visitor and Google's renderer see.

Screenshot of sheafui.dev on a mobile viewport
390 × 844 viewport
Largest paint
1.2s
Layout shift
0
Requests
17
Words rendered
522
JS errors
0
Failed resources
1

Your plan

The 29 faults on this report come from 13 underlying causes. Fixing a cause fixes everything under it, so this is ordered by score returned per unit of work, not by severity alone.

The 6 quickest steps here take you from 83 to about 91. That is 8 points for changes measured in minutes and hours, not weeks.

  1. 1. Fix email authentication

    DNS edit · minutes→ 85/100

    These are all records in your DNS. One editing session fixes every one of them, and it is the change most likely to stop your mail being filtered.

    Fixes 4 findings: DMARC policy is enforced · MTA-STS policy published · TLS reporting enabled · BIMI logo published

  2. 2. Complete the security headers

    Server or CDN config · under an hour→ 87/100

    All set in the same place — your web server or CDN. Half of them are single lines.

    Fixes 6 findings: HSTS header · Content Security Policy header · Cookies are protected · MIME sniffing protection header · Clickjacking protection header · Referrer policy header

  3. 3. Harden DNS and hosting

    Server or CDN config · under an hour→ 89/100

    Resilience and reputation work — lower urgency, but cheap while you are already in these systems.

    Fixes 4 findings: All page resources load successfully · DNSSEC enabled · CAA record restricts certificate issuance · Software versions are not disclosed

  4. 4. Remaining individual fixes

    Mixed · varies→ 91/100

    These do not share a root cause with anything else on the report.

    Fixes 3 findings: Pages deliver what their titles promise · No phrase is repeated unnaturally · The writing is readable

  5. 5. Correct caching and compression at the origin

    Server or CDN config · under an hour→ 92/100

    One misconfigured cache header suppresses browser caching, CDN caching and compression at once. Fixing it speeds up every page for every visitor, including the ones your ads paid for.

    Fixes 1 finding: Browser caching is allowed

  6. 6. Fix what search engines are allowed to see

    Server or CDN config · under an hour→ 93/100

    These decide whether your pages can appear at all. Nothing else on this report matters until they are right.

    Fixes 1 finding: Homepage canonical is correct

  7. 7. Point the site's own authority at the pages that earn

    Template change · a few hours→ 94/100

    Internal links decide which of your pages search engines treat as important, and the decision is usually an accident of navigation design. It costs nothing to change and it changes what ranks.

    Fixes 1 finding: Each page covers a distinct subject

  8. 8. Fix the page on a phone

    Template change · a few hours→ 95/100

    Google indexes the mobile version of your site, and these are measured in a real phone-sized browser rather than inferred. A page that scrolls sideways or needs pinching to read loses the visitor before the content matters.

    Fixes 1 finding: Tap targets are big enough to hit

  9. 9. Write the titles and descriptions

    Content work · days→ 96/100

    Your title and description are the advert Google runs for you, free, every time someone searches.

    Fixes 2 findings: Meta descriptions are unique · Link previews are configured for X/Twitter

  10. 10. Reduce what the page has to load

    Development work · days to weeks→ 98/100

    Image and script weight drive every speed metric you are failing. This is the slowest fix here and the one with the longest tail.

    Fixes 2 findings: Images declare width and height · Images load lazily

  11. 11. Serve images at the right size and format

    Development work · days to weeks→ 99/100

    Images are what Largest Contentful Paint usually measures, and WebP is typically a third smaller than the same JPEG. On image-led pages this is the largest saving available.

    Fixes 2 findings: Images use a modern format · Images are sized for the device

  12. 12. Decide whether AI assistants may cite you

    Server or CDN config · under an hour→ 99/100

    A growing share of questions are answered without a results page. Being quotable is a distribution channel, and it is usually blocked by a plugin default rather than a decision.

    Fixes 1 finding: A curated summary is published for assistants

  13. 13. Strengthen thin pages

    Content work · days→ 100/100

    Pages with little unique content rarely rank and can hold back how the whole site is judged.

    Fixes 1 finding: Links describe where they go

Fix these first

Ranked by severity, then by how much score each returns.

  1. high

    1. DMARC policy is enforced

    +9 pts

    No DMARC record. You have neither protection against domain spoofing nor any visibility into it.

    How to fix: Publish v=DMARC1; p=none; rua=mailto:dmarc@yourdomain to start, then tighten to quarantine.

  2. high

    2. Browser caching is allowed

    +6 pts

    This site tells browsers never to store anything. Every returning visitor re-downloads the entire page. This belongs on cart and checkout pages only.

    cache-control: max-age=0, must-revalidate, no-cache, no-store, private

    How to fix: Restrict no-store to authenticated pages and let everything else cache.

Full results

Security & trust

Whether the connection, certificate and headers hold up.

5 passed · 6 failed
70%
  • HSTS headermedium

    Missing. Tells browsers to only ever connect over HTTPS.

    Send Strict-Transport-Security: max-age=31536000; includeSubDomains

  • Content Security Policy headermedium

    Missing. Limits where scripts may load from, which is the main defence against injected code and card skimmers.

    Add a Content-Security-Policy header, starting in report-only mode.

  • Cookies are protectedmedium

    Cookies are set without the Secure and/or HttpOnly flags, so they can be read by scripts or sent over insecure connections.

    XSRF-TOKEN=eyJpdiI6ImJUSDRrVnFFaHdSTktud2R5MERDVmc9PSIsInZhbHVlIjoic3RiZi9KdEVhOWk0QlZYaW5pam8yRWs5c29JM1FLb1BIWkk4cmJ2VUVOL3BocUgrd1VDU01scWMycE0vem0zMTU0RG1JRnhJZkJ4czQyVXpmdjNxdzZNRGhVQUV5SFg2c1VmK

    Add Secure, HttpOnly and SameSite to every cookie you set.

  • MIME sniffing protection headerlow

    Missing. Stops browsers guessing file types.

    Send X-Content-Type-Options: nosniff

  • Clickjacking protection headerlow

    Missing. Stops your site being framed inside someone else's.

    Send X-Frame-Options: SAMEORIGIN, or use CSP frame-ancestors.

  • Referrer policy headerlow

    Missing. Controls how much of your URL is leaked to other sites.

    Send Referrer-Policy: strict-origin-when-cross-origin

  • Served over HTTPS

    Secure connection working.

  • HTTP redirects to HTTPS

    Plain HTTP requests are redirected to the secure version.

  • No insecure mixed content

    All resources load securely.

  • Certificate is not near expiry

    Certificate valid for another 54 days (expires 2026-10-26).

  • Modern TLS version

    Negotiated TLSv1.3.

Email deliverability

Whether your mail reaches inboxes or spam folders.

5 passed · 4 failed
74%
  • DMARC policy is enforcedhigh

    No DMARC record. You have neither protection against domain spoofing nor any visibility into it.

    Publish v=DMARC1; p=none; rua=mailto:dmarc@yourdomain to start, then tighten to quarantine.

  • MTA-STS policy publishedlow

    No MTA-STS policy, so mail to you can be delivered unencrypted if an attacker strips TLS.

    Publish an MTA-STS policy and the _mta-sts TXT record.

  • TLS reporting enabledlow

    No TLS-RPT record, so delivery-encryption failures go unreported.

    Publish a _smtp._tls TXT record with a reporting address.

  • BIMI logo publishedlow

    No BIMI record. With DMARC at enforcement you could display your logo next to your messages in Gmail and Apple Mail.

    Once DMARC is at quarantine or reject, publish a BIMI record with an SVG logo.

  • DKIM signing is configured

    DKIM keys published on selector(s): default.

  • Domain can receive email

    2 mail server(s) configured.

  • SPF ends with a fail qualifier

    Ends in ~all (soft fail) — the usual safe setting.

  • SPF stays under the lookup limit

    The record forces about 1 DNS lookups. Comfortably within the limit of 10.

  • Exactly one SPF record

    One SPF record, as required.

Speed & Core Web Vitals

How fast real visitors experience the site.

4 passed · 5 failed · 1 skipped
47%
  • Browser caching is allowedhigh

    This site tells browsers never to store anything. Every returning visitor re-downloads the entire page. This belongs on cart and checkout pages only.

    cache-control: max-age=0, must-revalidate, no-cache, no-store, private

    Restrict no-store to authenticated pages and let everything else cache.

  • Images declare width and heightmedium

    0 of 3 images declare dimensions. Images without dimensions cause the page to jump as they load, which is what Cumulative Layout Shift measures.

    Set width and height attributes on every image.

  • Images use a modern formatmedium

    All 12 image(s) are JPEG or PNG, with no WebP or AVIF alternative. WebP is typically 25-35% smaller at the same quality and is supported by every current browser — on image-led pages this is usually the single largest saving available, and images are what Largest Contentful Paint measures.

    https://sheafui.dev/images/blog/dark/slider.png, https://sheafui.dev/images/blog/light/slider.png, /mohamed.png, https://sheafui.dev/images/blog/dark/modals-guide.png

    Serve WebP or AVIF with a <picture> element falling back to the original, or enable automatic conversion at your CDN.

  • Images load lazilylow

    0 of 3 images use lazy loading.

    Add loading="lazy" to images below the fold.

  • Images are sized for the devicelow

    0 of 17 image(s) provide a srcset. Without one, a phone downloads the full desktop image and then scales it down — paying for pixels it never shows.

    Add srcset and sizes so each device downloads an appropriate image.

  • Core Web Vitals from real users

    Not available: PageSpeed API returned 429. This usually means the site does not yet have enough Chrome traffic for Google to report field data. Lab measurements below still apply.

  • Compression enabled

    Served with gzip compression.

  • Server responds quickly

    Median response across 12 page(s) was 141 ms.

  • Homepage HTML is not oversized

    Homepage HTML is 265 KB.

  • Reasonable number of scripts

    9 external script file(s) on the homepage.

Search fundamentals

The tags, files and signals search engines read first.

31 passed · 3 failed · 3 skipped
95%
  • Homepage canonical is correctmedium

    No canonical tag, so duplicate URLs of the same page can compete.

    Set a self-referencing canonical on every page.

  • Link previews are configured for X/Twitterlow

    No twitter:card tags. Open Graph covers most platforms, but X falls back to a bare link without them, and a link with no image or title is measurably less likely to be opened.

    Add twitter:card ("summary_large_image"), twitter:title and twitter:description.

  • A curated summary is published for assistantslow

    No /llms.txt. It is a short, plain-text map of what a site is and which pages matter — a convention some assistants read to decide what to quote, and cheap to publish. It is not yet a standard anyone is obliged to honour, so treat it as a low-cost bet rather than a requirement.

    Publish /llms.txt: a heading, one paragraph describing the business, and a linked list of your most important pages.

  • International targeting

    Not applicable — this site publishes in a single language and declares no regional or translated versions, so hreflang annotations are not needed. Adding them to a single-language site does nothing.

  • Search Console connected

    Not measured — not configured on this instance. Connecting Search Console adds what no crawl can see: the queries this site already appears for, where it ranks, and how many people click. It is read-only and can be disconnected at any time.

  • Current search visibility

    Not measured — ranking data is not configured on this instance.

  • Homepage is indexable

    Homepage is open to indexing.

  • Mobile viewport declared

    Mobile viewport is declared.

  • Homepage title is present and well sized

    Title is 49 characters.

  • XML sitemap published

    Sitemap found listing 75 URLs.

  • Homepage meta description is present

    Description is 125 characters.

  • Structured data present

    Structured data found: Organization, WebSite.

  • robots.txt does not block the site

    robots.txt present and open to search engines.

  • Canonicals point at indexable pages

    Every canonical points at a page that is allowed to be indexed.

  • Canonical targets are live pages

    Canonical targets all return 200.

  • Sitemap and page directives agree

    No page is both listed in the sitemap and marked noindex.

  • Structured data parses

    All structured data blocks are valid JSON.

  • Noindex directives are readable

    No page relies on a directive Google is blocked from reading.

  • Marked-up content qualifies for rich results

    Every marked-up entity carries the properties Google requires.

  • Most crawled pages are indexable

    12 of 12 crawled page(s) (100%) can actually be indexed.

  • The business is identified in structured data

    Identified as Organization, Person.

  • The business is a describable entity

    Organization or Person markup names the business to assistants.

  • No canonical chains

    No canonical points at a page that then canonicals somewhere else.

  • Sitemap lists canonical pages only

    Every sitemap URL is its own canonical.

  • Structured data is in the served HTML

    All structured data is present in the HTML the server sends.

  • AI assistants can cite this site

    Every major assistant is allowed to read and cite these pages.

  • Content is marked up to be answered

    FAQPage or HowTo markup gives assistants a structured answer to cite.

  • Breadcrumbs are marked up

    BreadcrumbList markup is present.

  • Pages are close to the homepage

    Every crawled page sits within four levels of the homepage (deepest: 3).

  • The entity links out to its profiles

    sameAs links the entity to its real profiles across the web.

  • Social preview configured

    6 Open Graph tags found.

  • URLs are readable

    URLs use lowercase, hyphenated, extension-free paths.

  • Content is not served behind query parameters

    0 of 12 crawled URLs carry query parameters other than tracking tags.

  • Page language declared

    Language attribute present.

  • Site-wide search is declared

    WebSite markup is present.

  • Structured data in use

    72 structured data object(s) across 12 page(s): Answer, Article, BreadcrumbList, FAQPage, ListItem, Organization, Person, Question, WebSite.

  • Model-training access is stated

    No model-training crawler is blocked, so this content may be used to train future models. This is a business decision rather than an SEO one, and it is separate from being cited in answers: refusing training does not remove you from AI results, and allowing it does not put you in them.

Content & structure

Whether pages are unique, linked and crawlable.

23 passed · 6 failed
76%
  • Each page covers a distinct subjectmedium

    1 pair(s) of pages appear to cover the same subject, judged from their titles and headings. Two pages competing for one query split the links and relevance that should accumulate on one, and Google alternates between them — so neither settles into a stable position. Confirm against Search Console, which shows exactly which page it chooses.

    Sheaf UI Roadmap: Upcoming Laravel &amp; Livewire Components
       https://sheafui.dev/roadmap
       https://sheafui.dev/custom-component
    1 affected URL

    Decide which page owns the subject. Merge the weaker one into it and redirect, or narrow each to a genuinely different question.

  • Pages deliver what their titles promisemedium

    3 page(s) have a title and heading whose subject barely appears in the body. Either the title is written for a query the page does not answer — which loses the visitor on arrival and is measurable as a bounce — or the page is about something its title does not say.

    25% of the title's subject in the body
       Blog | Sheaf UI
       https://sheafui.dev/blog/posts
    33% of the title's subject in the body
       Overview Guide | Sheaf UI
       https://sheafui.dev/docs/guides/overview
    29% of the title's subject in the body
       Sheaf UI Roadmap: Upcoming Laravel &amp; Livewire Components
       https://sheafui.dev/roadmap
    3 affected URLs

    Make the opening paragraph answer the title directly, or change the title to what the page is really about.

  • Meta descriptions are uniquemedium

    2 pages share 1 duplicated meta description(s). A description is the advert for that specific page; repeating one across a site means Google usually discards it and writes its own from the page text, so you lose control of what searchers read before deciding whether to click.

    Sheaf UI provides Laravel/Livewire components with code that&#039;s you own, designed for …
       used on 2 pages
    2 affected URLs

    Write one description per page, describing what is on that page.

  • No phrase is repeated unnaturallymedium

    4 phrase(s) make up more than 5% of a page's own words. Repetition at that level reads badly to a person and has not helped rankings in over a decade — it is now a signal in the wrong direction.

    "gt lt" is 13% of the page
       https://sheafui.dev/docs/components/accordion
    "lt x-ui" is 17% of the page
       https://sheafui.dev/docs/components/alerts
    "x-ui alerts" is 16% of the page
       https://sheafui.dev/docs/components/alerts
    "gt lt" is 14% of the page
       https://sheafui.dev/docs/components/alerts
    4 affected URLs

    Write the phrase once where it belongs and use natural variations elsewhere.

  • Links describe where they golow

    66 of 573 internal link(s) use text like 'click here' or no text at all (12%). Anchor text is one of the strongest signals of what the destination page is about — 'read more' describes nothing, so the target loses the relevance the link should have passed it, and screen-reader users hear a list of identical links.

    (no text)  on https://sheafui.dev/
    (no text)  on https://sheafui.dev/
    (no text)  on https://sheafui.dev/
    (no text)  on https://sheafui.dev/
    (no text)  on https://sheafui.dev/
    (no text)  on https://sheafui.dev/blog/posts

    Use the destination's subject as the link text: 'our pricing' rather than 'click here'.

  • The writing is readablelow

    Median reading ease is 41.2 — difficult. 4 page(s) score below 40, which is the range of academic and legal writing. That is correct for a terms page and costly on anything meant to sell, because the reader who bounces was the one who arrived.

      18.0 (very difficult)  https://sheafui.dev/roadmap
      21.1 (very difficult)  https://sheafui.dev/custom-component
      30.6 (difficult)  https://sheafui.dev/
      35.7 (difficult)  https://sheafui.dev/blog/posts
      40.9 (difficult)  https://sheafui.dev/services

    Shorter sentences and plainer words in the pages that convert. Legal pages can stay as they are.

  • Page titles are unique

    All 12 crawled pages have distinct titles.

  • Pages carry more than their template

    Across 12 page(s), the median page is 84% its own content and the rest navigation, footer and legal text.

    1 affected URL
  • Every page is linked from somewhere

    All 12 crawled pages are reachable by internal links.

  • Pages have enough content

    All 12 crawled pages carry substantial content.

  • Every page has a meta description

    0 of 12 crawled pages have no meta description.

  • Images have alt text

    0 of 17 images across the crawl have no alt attribute. Alt text is how search engines read images and how screen readers describe them.

  • Navigation is present on every page

    Every crawled page carries at least three internal links, so navigation is consistently rendered.

  • Pages are meaningfully different from each other

    No two crawled pages share substantially the same text.

  • No broken internal pages

    All 12 crawled pages returned successfully.

  • Missing pages return a real 404

    No page answers 200 while telling the visitor nothing was found.

  • Navigation promotes pages that earn money

    6 link(s) appear on nearly every page — the site-wide navigation, which is where most internal authority is allocated.

  • Content identifies who wrote it

    Authorship is declared.

  • Every page is linked from another

    Every crawled page is linked from at least one other page.

  • There is a route to who you are

    An about or contact page is linked.

  • Content carries recent dates

    2 of 12 crawled pages declare a date; the most recent is 2026-03-22.

  • One H1 per page

    0 of 12 pages do not have exactly one H1 heading.

  • No long redirect chains

    No multi-step redirects found.

  • Sitemap matches the real site

    Sitemap lists 75 URLs; we reached 12 by crawling. 63 sitemap URLs were not linked from the pages we visited.

  • No dead-end pages

    Every crawled page links onward.

  • Internal authority is spread, not pooled

    Pages receive 7.3 internal links on average across the crawl, with no single page absorbing most of them.

  • A publisher is declared in structured data

    Publisher is declared in structured data.

  • Where internal authority goes

    Internal links concentrate authority on the pages below, in order. This is the site's own ranking of itself, derived from how it links — read it against what the business actually sells, because search engines read it the same way. Only the crawled sample is modelled, so this describes the navigation rather than every page.

  • What each page is about

    The terms that distinguish each page from the others on this site — not the most frequent words, but the ones this page uses and the others do not. Read them as what a search engine would take the page to be about, and check that it matches what it is for.

Local business signals

What Google needs to place you in map results.

0 passed · 0 failed · 1 skipped
100%
  • Local business signals

    Not applicable — nothing on this site indicates a physical location customers visit: no address, phone link, opening hours, map or local business markup. Local search checks are skipped and do not affect the score. If you do serve customers from premises, publishing an address and phone number is the place to start.

Infrastructure

DNS, hosting and delivery configuration.

12 passed · 3 failed · 4 skipped
91%
  • DNSSEC enabledlow

    DNSSEC is not enabled, so DNS answers for your domain can't be cryptographically verified.

    Enable DNSSEC at your DNS provider.

  • CAA record restricts certificate issuancelow

    No CAA record, so any certificate authority may issue certificates for your domain.

    Publish a CAA record naming the certificate authority you use.

  • Software versions are not disclosedlow

    Response headers advertise exact software versions, which tells an attacker precisely which exploits to try.

    nginx/1.24.0 (Ubuntu)

    Suppress Server and X-Powered-By version details.

  • Mail server IP is not blacklisted

    Not checked: the blocklists declined queries from this resolver, so reputation could not be confirmed either way. This is excluded from your score rather than guessed at.

  • Certificate history reviewed

    Not measured — the certificate transparency log did not answer in time.

  • Server log analysis

    Not measured — no log file supplied. Server logs are the only source that shows what Googlebot actually fetched rather than what it could fetch: which pages it spends its crawl on, which it has never asked for, and what it receives when it does.

  • Whole-site analysis

    Not measured — no whole-site crawl has been run for this domain. The audit above reasons from a sample of pages chosen to cover each template, which describes how the site is built. It cannot say how many of the site's pages are indexable, which templates are thin across every instance, or what sits too deep to be crawled — those are counts, and a sample cannot produce one.

  • Redundant nameservers

    2 nameserver(s) configured.

  • No subdomain can be taken over

    Checked 0 subdomain(s); none point at a cloud service that has released them.

  • No lookalike domain can send mail as your brand

    We generated and checked 58 plausible misspellings and variants of your domain. None is registered.

  • No unbounded URL spaces

    No filter, session or calendar URLs that would generate an unbounded space were found.

  • Pages are reached without redirect chains

    Every page was reached directly or in a single hop.

  • Crawled URLs return content

    0 of 12 URL(s) followed during this crawl returned a redirect or an error (0%).

  • Certificate is not shared with unrelated domains

    Your certificate covers only your own domain.

  • Sitemap files are within Google's limits

    Every sitemap file is within the 50,000 URL and 50 MB limits.

  • Sitemap lastmod dates are meaningful

    63 of 75 sitemap URL(s) carry a lastmod date across 58 distinct value(s).

  • Internal links pass authority

    0 internal link(s) are marked nofollow.

  • Hosting network identified

    Served from AS47583 (AS-HOSTINGER Hostinger International Limited), announced in 89.117.36.0/23 — a block of 512 addresses.

  • What this audit examined

    12 page(s) were examined, chosen to cover 11 of the 64 distinct page templates found across 75 known URLs. Pages are sampled by template rather than in sitemap order, because the first pages of a sitemap are usually all the same kind — a sample of one template would describe that template rather than the site. Findings below therefore apply to the templates listed, and a fault in a template is normally a fault on every page built from it.

Off-page authority

Who links to this site, with what text, and how that compares.

0 passed · 0 failed · 1 skipped
100%
  • Off-page profile

    Not measured — off-page data is not configured on this instance.

What Google's renderer sees

The site loaded in a real browser, the way a visitor and a crawler get it.

11 passed · 2 failed
88%
  • All page resources load successfullymedium

    1 resource(s) failed to load. Missing images and stylesheets are visible to customers; missing scripts break features.

    https://static.hotjar.com/c/hotjar-6592448.js?sv=6 (failed)
    1 affected URL

    Fix or remove these URLs.

  • Tap targets are big enough to hitmedium

    45 of 55 tappable element(s) are smaller than 48x48 pixels, and 13 sit closer than 8 pixels to a neighbour. On a phone that means links and buttons that are hard to hit without zooming, and mis-taps on a checkout or contact button cost conversions directly.

    A (32x32)
    Sheaf UI (71x32)
    Open main menu (32x32)
    shadcn/ui (74x20)
    Get started (138x40)

    Give tappable elements at least 48x48 CSS pixels and 8 pixels of spacing — usually padding on the link rather than a bigger font.

  • Content is in the HTML, not built by JavaScript

    The served HTML contains 4393 words and the rendered page 522 — the content is present before JavaScript runs.

  • The mobile page matches the desktop page

    What the server sends a phone matches what it sends a desktop browser.

  • JavaScript does not rewrite indexing directives

    The canonical and robots directives are the same before and after JavaScript runs.

  • Largest Contentful Paint under 2.5s (lab)

    Measured 1.2s on a simulated phone viewport. Google's threshold for 'good' is 2.5s.

  • Navigation links are crawlable without JavaScript

    27 links in the served HTML, 27 after rendering — navigation is discoverable.

  • Layout stays stable while loading (lab)

    Cumulative Layout Shift measured at 0.000 (good is 0.1 or less).

  • No JavaScript errors on load

    The page loaded without JavaScript errors.

  • The page fits the screen

    The page fits the mobile viewport with no sideways scrolling.

  • No excessive JavaScript blocking

    0 long JavaScript task(s) blocked the main thread while loading.

  • Body text is legible on a phone

    0 of 71 text block(s) render below 12px on a mobile viewport.

  • Reasonable number of requests

    The page made 17 network requests to load.

Scan details

Final URLhttps://sheafui.dev/
Host IPs89.117.36.52
Pages crawled12 of 12 attempted
Sitemap URLs75
Nameserversdns1.registrar-servers.com, dns2.registrar-servers.com
Mail serversmx1.privateemail.com, mx2.privateemail.com
DKIM selectorsdefault
Mail server IPs162.255.118.7, 162.255.118.8
TLSTLSv1.3 · TLS_AES_256_GCM_SHA384 · issued by Let's Encrypt
Detected stackcustom / origin / Namecheap · Google Analytics 4
Browser renderCamoufox (stealth Firefox) · 5.5s · 522 words, 27 links after JavaScript
12 URLs crawled
  • https://sheafui.dev/
  • https://sheafui.dev/blog/posts
  • https://sheafui.dev/docs/guides/dark-mode
  • https://sheafui.dev/blog/post/building-ultimate-modal-system-tall-stack
  • https://sheafui.dev/docs/components/key-value
  • https://sheafui.dev/docs/components/accordion
  • https://sheafui.dev/docs/guides/overview
  • https://sheafui.dev/roadmap
  • https://sheafui.dev/team
  • https://sheafui.dev/services
  • https://sheafui.dev/custom-component
  • https://sheafui.dev/docs/components/alerts

Want these fixed?

BounceZero Ltd does this work: technical remediation, local SEO and email deliverability. Tell us what you want fixed and we'll reply with what it takes. No call required, no obligation.

We only email you about this request. No list, no newsletter.

Watch this site

We re-audit on a schedule and email you only when a check that was passing starts failing. That is usually a recent change to the site or its DNS, and it is findable while still fresh. No digest, no newsletter.

Monitoring means repeatedly fetching your site and emailing about it, so we ask you to prove you own sheafui.dev first.