Issues
The most widespread errors and warnings, worst first- 1
Meta descriptions should be 120-160 characters and provide a compelling summary of the page. While not a direct ranking factor, good descriptions improve click-through rates from search results. Write unique descriptions for each page that accurately preview the content. Include a call-to-action when appropriate. If missing, search engines will auto-generate snippets which may not represent your page optimally.
- 2
Move all meta tags from <body> to <head>. Meta tags in the body are ignored by browsers and search engines. Common offenders: meta description, viewport, robots, and Open Graph tags. This is often caused by incorrect HTML structure or dynamic rendering issues.
- 3
IDs referenced by ARIA attributes (aria-labelledby, aria-describedby, aria-controls, etc.) must be unique on the page. Duplicate IDs cause assistive technology to potentially reference the wrong element. Rename duplicate IDs to be unique.
- 4
For controls with visible labels, the accessible name should contain the visible text. Voice control users say what they see - if the accessible name doesn't include the visible label, voice commands won't work. Example: A button showing 'Search' should not have aria-label='Find products'.
Get the full audit with squirrelscan cloud
This audit ran on your machine, without the cloud checks. A free account adds these to the same report, with 500 free credits every month and no card needed.
squirrel auth loginCreate a free accountSummary and ranked issues
An AI summary of the audit, with the fixes ranked for your stack and one fix plan to hand your coding agent.
Browser rendering
Every page rendered in a real headless browser, so JavaScript-heavy sites are audited as visitors see them.
AI analysis
Page classification, site profile, parsability scoring and authority checks.
Shared data
Full adblock and privacy filter lists, a global dead-link cache and search demand data.
Tech stack history
The CMS, framework, CDN and analytics behind the site, with what changed between audits.
Publishing and history
Shareable reports, issues tracked over time, scheduled audits and your team in the dashboard.
Findings
47 rules flagged, ranked by severity then impactMeta DescriptionSEOMissing meta description
22 pages
Missing meta description
Validates meta description presence and length
How to fix
Meta descriptions should be 120-160 characters and provide a compelling summary of the page. While not a direct ranking factor, good descriptions improve click-through rates from search results. Write unique descriptions for each page that accurately preview the content. Include a call-to-action when appropriate. If missing, search engines will auto-generate snippets which may not represent your page optimally.
Missing meta description
1 page affected
Description too long · 7 pages
7 pages affected
Copy as text
7 items
on /posts/blockplus-a-browser-extension-to-block-google-notifications
Description too short · 14 pages
14 pages affected
14 items
on /posts/multiple-vulnerabilities-in-disqus-wordpress-plugin
core/meta-descriptionRule docs Meta Tags in BodySEOFound 16 meta tags in <body>
6 pages
Found 16 meta tags in <body>
Detects meta tags incorrectly placed in document body
How to fix
Move all meta tags from <body> to <head>. Meta tags in the body are ignored by browsers and search engines. Common offenders: meta description, viewport, robots, and Open Graph tags. This is often caused by incorrect HTML structure or dynamic rendering issues.
Found 16 meta tags in <body> · 6 pages
16 items
on /posts
on /asides
on /posts
+3 more pages
on /posts
on /asides
on /posts
+3 more pages
content/meta-in-bodyRule docs Duplicate ID ARIASEO1 problematic ID(s) in ARIA attributes
2 pages
1 problematic ID(s) in ARIA attributes
Checks that IDs used in ARIA attributes are unique
How to fix
IDs referenced by ARIA attributes (aria-labelledby, aria-describedby, aria-controls, etc.) must be unique on the page. Duplicate IDs cause assistive technology to potentially reference the wrong element. Rename duplicate IDs to be unique.
1 problematic ID(s) in ARIA attributes · 2 pages
1 item
a11y/duplicate-id-ariaRule docs Label Content Name MismatchSEO1 element(s) where visible text doesn't match accessible name
2 pages
1 element(s) where visible text doesn't match accessible name
Checks that visible label text is part of accessible name
How to fix
For controls with visible labels, the accessible name should contain the visible text. Voice control users say what they see - if the accessible name doesn't include the visible label, voice commands won't work. Example: A button showing 'Search' should not have aria-label='Find products'.
1 element(s) where visible text doesn't match accessible name · 2 pages
1 item
a11y/label-content-name-mismatchRule docs PaginationSEOPaginated page canonicalizes to non-paginated URL
1 page
Paginated page canonicalizes to non-paginated URL
Checks that paginated pages have proper canonicals
How to fix
Paginated pages should NOT all canonicalize to page 1. Each page should have a self-referencing canonical. Use rel='next' and rel='prev' links to indicate pagination sequence (though Google no longer uses these for indexing, they help users). Consider view-all pages or infinite scroll as alternatives. Ensure each paginated page has unique, valuable content.
Paginated page canonicalizes to non-paginated URL
1 page affected
crawl/paginationRule docs Twitter CardsSEONo Twitter card or Open Graph tags for Twitter sharing
1 page
No Twitter card or Open Graph tags for Twitter sharing
Validates Twitter Card meta tags
How to fix
Twitter Cards enhance how links appear in tweets. The twitter:card meta tag specifies the card type (summary, summary_large_image, player, or app). Add twitter:card, twitter:title, twitter:description, and twitter:image tags. For large images, use summary_large_image with images at least 800x418 pixels. Validate using Twitter's Card Validator tool.
No Twitter card or Open Graph tags for Twitter sharing
1 page affected
core/twitter-cardsRule docs Landmark RegionsSEONo <main> landmark found
1 page
No <main> landmark found
Checks for proper landmark regions (main, nav, footer)
How to fix
Landmark regions help screen reader users navigate page structure. Use semantic HTML5 elements: <main> for primary content, <nav> for navigation, <header> for page header, <footer> for footer, <aside> for sidebars, and <section>/<article> for content sections. Alternatively, use ARIA roles: role='main', role='navigation', etc. Each page should have exactly one <main> element.
No <main> landmark found
1 page affected
a11y/landmark-regionsRule docs URL LengthSEOURL is 121 characters (over 100)
1 page
URL is 121 characters (over 100)
Checks URL length for optimal SEO
How to fix
Shorter URLs are easier to read, share, and may rank better. Keep URLs under 75 characters when possible. URLs over 100 characters can be truncated in search results and social shares. Remove unnecessary parameters, stop words, and path segments. Use descriptive but concise slugs. Long URLs often indicate poor site architecture.
URL is 121 characters (over 100)
url/lengthRule docs Canonical ChainSEOPage redirects before content is served
2 pages
Page redirects before content is served
Checks for redirect chains on canonical URLs
How to fix
Canonical URLs should point directly to the final destination, not through redirects. Redirect chains waste crawl budget and dilute link equity. If your canonical URL redirects, update it to point to the final URL. Check that canonical URLs use the preferred protocol (https) and www/non-www version. Self-referencing canonicals should match the page URL exactly.
Page redirects before content is served · 2 pages
crawl/canonical-chainRule docs Sitemap CoverageSEO1 indexable page(s) not in sitemap (2%)
1 page
1 indexable page(s) not in sitemap (2%)
Checks for indexable pages that are not in the sitemap
How to fix
Your sitemap should include all pages you want search engines to index. Pages that are crawlable and indexable (no noindex, not blocked by robots.txt) should generally be in your sitemap. Missing pages may not be discovered or indexed efficiently. Use a sitemap generator that automatically includes all indexable pages, or manually add important pages.
1 indexable page(s) not in sitemap (2%)
1 page affected
crawl/sitemap-coverageRule docs Meta TitleSEOTitle too long
30 pages
Title too long
Validates page title presence and length
How to fix
Every page needs a unique, descriptive title tag between 30-75 characters. Titles appear in browser tabs, search results, and social shares. Write titles that accurately describe the page content while including your primary keyword near the beginning. If your title is too short, add more descriptive context. If too long, prioritize the most important information first and trim secondary details. Avoid keyword stuffing or duplicate titles across pages.
Title too long · 24 pages
24 pages affected
Copy as text
24 items
on /posts/blockplus-a-browser-extension-to-block-google-notifications
on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites
on /posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities
on /posts/guide-to-finding-a-good-and-safe-company-or-product-name
on /posts/multiple-vulnerabilities-in-disqus-wordpress-plugin
on /posts/multiple-vulnerabilities-in-mygov-australian-government
on /posts/persistant-and-unblockable-cookies-using-http-headers
Title too short · 6 pages
6 pages affected
6 items
core/meta-titleRule docs Canonical URLSEOMissing canonical URL
1 page
Missing canonical URL
Validates canonical URL presence and format
How to fix
Canonical URLs tell search engines which version of a page is the "master" copy, preventing duplicate content issues. Every page should specify a canonical URL, typically pointing to itself. Add a <link rel="canonical" href="..."> tag in the head section. Use absolute URLs and ensure consistency (with or without trailing slash, www vs non-www). For paginated content, point to the main page or use rel="prev/next".
Missing canonical URL
1 page affected
core/canonicalRule docs Open Graph TagsSEOMissing og:description
1 page
Missing og:description
Validates Open Graph meta tags for social sharing
How to fix
Open Graph tags control how your content appears when shared on Facebook, LinkedIn, and other platforms. Required tags: og:title, og:description, og:image, og:url, and og:type. Add OG tags in your page head. Use images at least 1200x630 pixels for best display. Keep og:title under 60 characters and og:description under 200. Test shares using Facebook's Sharing Debugger tool.
Missing og:description
1 page affected
Missing og:image - social shares will lack imagery
1 page affected
Missing og:title
1 page affected
core/og-tagsRule docs Title UniquenessSEO1 duplicate title(s) affecting 2 pages
2 pages
1 duplicate title(s) affecting 2 pages
Checks that page titles are unique across the site
How to fix
Each page should have a unique title that accurately describes its content. Duplicate titles confuse search engines and users about which page to display. Use a pattern like 'Page Topic | Brand Name' to ensure uniqueness. CMS often generate duplicate titles - audit and customize them.
core/title-uniqueRule docs FaviconSEONo favicon found
1 page
No favicon found
Checks for favicon presence
How to fix
Favicons help with brand recognition and UX. Include multiple formats: <link rel='icon' href='/favicon.ico'> for legacy, <link rel='icon' type='image/svg+xml' href='/favicon.svg'> for modern browsers, and <link rel='apple-touch-icon' href='/apple-touch-icon.png'> for iOS. 32x32px for .ico, 180x180px for Apple touch icon.
No favicon found
1 page affected
core/faviconRule docs Content Security PolicySecurityNo Content-Security-Policy header
site-wide
No Content-Security-Policy header
Checks for Content-Security-Policy header and validates directives
How to fix
CSP prevents XSS attacks by restricting which resources can load. Start with a report-only policy to identify issues. Key directives: default-src 'self', script-src (avoid 'unsafe-inline'), img-src, style-src, frame-ancestors. Use nonces or hashes instead of 'unsafe-inline' for scripts. Test thoroughly as strict CSP can break functionality.
No Content-Security-Policy header
security/cspRule docs Form CAPTCHASecurity1 to 2 public form(s) without CAPTCHA
48 pages
1 to 2 public form(s) without CAPTCHA
Checks for CAPTCHA protection on public forms
How to fix
Add CAPTCHA protection (reCAPTCHA, Cloudflare Turnstile, hCaptcha, FormShield, etc.) to public-facing forms to prevent spam and bot submissions. Contact forms, comment forms, newsletter signups, and registration forms are common targets for automated abuse. Modern solutions like Turnstile and FormShield offer invisible protection with minimal user friction.
1 to 2 public form(s) without CAPTCHA · 48 pages
48 pages affected
Copy as text
2 items
on /subscribe
security/form-captchaRule docs HTTP to HTTPS RedirectSecurity20 HTTP URL(s) redirect to HTTPS
20 pages
20 HTTP URL(s) redirect to HTTPS
Checks whether HTTP URLs redirect to HTTPS
How to fix
Ensure all HTTP URLs redirect to their HTTPS equivalents using permanent (301) redirects. This consolidates link equity and avoids mixed indexing. Configure your server to enforce HTTPS globally and verify that both the homepage and key internal URLs redirect correctly. WARNING: This rule makes external HTTP requests to probe redirect behavior.
20 HTTP URL(s) redirect to HTTPS · 20 pages
20 pages affected
Copy as text
security/http-to-httpsRule docs Broken External LinksSEO107 broken external link(s): 35 with 404, 3 with 520, 47 failed, 2 with 403, 6 with 401, 5 with 500, 3 with 429, 5 with 503, 1 with 999
4 pages
107 broken external link(s): 35 with 404, 3 with 520, 47 failed, 2 with 403, 6 with 401, 5 with 500, 3 with 429, 5 with 503, 1 with 999
Detects external links returning 4xx/5xx errors or timeouts
How to fix
Broken external links hurt user experience and credibility. Regularly audit external links using automated tools. Remove or replace broken links with working alternatives. Consider using archived versions (archive.org) if the original content is gone. For important resources, consider hosting your own copies of critical documentation or linking to more stable sources.
107 broken external link(s): 35 with 404, 3 with 520, 47 failed, 2 with 403, 6 with 401, 5 with 500, 3 with 429, 5 with 503, 1 with 999 · 4 pages
4 pages affected
50 items
links/broken-external-linksRule docs HTTPS DowngradeSEO1 to 5 link(s) downgrade to HTTP
15 pages
1 to 5 link(s) downgrade to HTTP
Detects links from HTTPS pages to HTTP destinations
How to fix
Links from HTTPS to HTTP pages create security warnings and break the trust chain. Users may see 'not secure' warnings. Update all links to use HTTPS. If the target site doesn't support HTTPS, consider if you really need to link there. For internal links, ensure your entire site uses HTTPS.
1 to 5 link(s) downgrade to HTTP · 15 pages
15 pages affected
Copy as text
34 items
on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
on /posts/multiple-vulnerabilities-in-mygov-australian-government
on /posts/multiple-vulnerabilities-in-mygov-australian-government
links/https-downgradeRule docs Orphan PagesSEO25 orphan page(s) with <2 incoming links
25 pages
25 orphan page(s) with <2 incoming links
Detects pages with no internal links pointing to them
How to fix
Orphan pages have no internal links and are hard for search engines to discover. They may not get indexed or rank well. Add internal links from relevant pages. Include in navigation or sidebar. Add to sitemap. Create contextual links from related content. If intentionally orphaned (e.g., landing pages), ensure they're accessible via sitemap.
25 orphan page(s) with <2 incoming links · 25 pages
25 pages affected
Copy as text
links/orphan-pagesRule docs Internal LinksSEOToo few internal links (0, min 1)
1 page
Too few internal links (0, min 1)
Validates internal link count
How to fix
Internal links help users navigate your site and distribute page authority. Each page should have at least one internal link pointing to it (not counting navigation). Add contextual internal links from related content. Use descriptive anchor text that indicates what the linked page is about. Avoid orphan pages (no internal links) and ensure important pages receive more internal links. Review your site structure to create logical content clusters.
Too few internal links (0, min 1)
1 page affected
links/internal-linksRule docs Redirect ChainsSEO1 link target(s) point to redirecting URLs
48 pages
1 link target(s) point to redirecting URLs
Detects URLs that redirect and links pointing to redirects
How to fix
Redirects add latency and waste crawl budget, especially when chained. Make sure every internal link hits the final destination directly, not the intermediate redirect, and consult the chain context emitted by this rule to trace multi-hop paths. Consolidate redirect rules, prefer 301s for permanent moves, and audit redirects regularly to remove legacy hops.
1 link target(s) point to redirecting URLs · 48 pages
48 pages affected
Copy as text
1 item
on /
on /posts
on /asides
+45 more pages
1 page(s) redirect to another URL
1 page affected
links/redirect-chainsRule docs Dead-End PagesSEOPage has no outgoing internal links (dead-end)
1 page
Page has no outgoing internal links (dead-end)
Pages with no outgoing internal links, potentially trapping users
How to fix
Add navigation links or related content links to help users continue browsing. Internal links improve user experience and help search engines discover content.
Page has no outgoing internal links (dead-end)
1 page affected
links/dead-end-pagesRule docs Weak Internal LinksSEO24 page(s) have only 1 internal link
24 pages
24 page(s) have only 1 internal link
Detects pages with only 1 dofollow internal link pointing to them
How to fix
Pages with only a single internal link have weak internal linking support and may struggle to rank. Search engines use internal links to understand page importance and distribute link equity. Add contextual links from related content, include in navigation or sidebar, or link from category/hub pages to strengthen internal link profiles.
24 page(s) have only 1 internal link · 24 pages
24 pages affected
Copy as text
links/weak-internal-linksRule docs Duplicate TitleSEO1 duplicate title(s) found across 2 pages
2 pages
1 duplicate title(s) found across 2 pages
Checks for duplicate title tags across the site
How to fix
Each page should have a unique title tag that accurately describes its content. Duplicate titles confuse search engines about which page to rank and make your pages less distinguishable in search results. Use unique, descriptive titles that include relevant keywords. For similar pages (e.g., pagination), add differentiating elements like page numbers or category names.
content/duplicate-titleRule docs Duplicate DescriptionSEO1 duplicate description(s) found across 2 pages
2 pages
1 duplicate description(s) found across 2 pages
Checks for duplicate meta descriptions across the site
How to fix
Each page should have a unique meta description that summarizes its specific content. Duplicate descriptions reduce click-through rates and provide poor user experience in search results. Write unique, compelling descriptions for each page. For pages without unique content (like paginated results), consider using no description rather than a duplicate.
content/duplicate-descriptionRule docs Keyword StuffingSEO1 to 4 word(s) may be overused
20 pages
1 to 4 word(s) may be overused
Detects excessive keyword repetition in content
How to fix
Keyword stuffing is repeating words unnaturally to manipulate rankings. Search engines penalize this practice. Write naturally for users first. Use keywords where they fit naturally. Aim for 1-2% keyword density at most. Use synonyms and related terms instead of repeating the exact same phrase. Focus on providing value, not gaming algorithms.
1 to 4 word(s) may be overused · 20 pages
20 pages affected
Copy as text
17 items
on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites
on /posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs
on /posts/guide-to-finding-a-good-and-safe-company-or-product-name
on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
on /posts/facebook-is-losing-e-commerce
on /posts/facebook-re-enables-controversial-tracking-cookie
on /posts/logging-out-of-facebook-is-not-enough
+1 more pages
on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites
on /posts/blockplus-a-browser-extension-to-block-google-notifications
on /posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs
on /posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities
content/keyword-stuffingRule docs Word CountSEOThin content: 42 to 292 words (min 300)
11 pages
Thin content: 42 to 292 words (min 300)
Checks content length for thin content issues
How to fix
Pages with thin content (under 300 words) often struggle to rank well and are actively deindexed by Google since the June 2025 core update. Add more valuable, relevant content to thin pages—aim for at least 500 words for standard pages and 1000+ for in-depth articles. If a page can't be fleshed out, voluntarily noindex it or consolidate it into a more comprehensive resource. Trimming thin pages from your index is better than leaving low-value content for Google to penalize.
Thin content: 42 to 292 words (min 300) · 11 pages
content/word-countRule docs Offscreen Image Lazy LoadingSEO2 below-fold image(s) without lazy loading
1 page
2 below-fold image(s) without lazy loading
Checks if offscreen images use lazy loading
How to fix
Add loading='lazy' to images below the fold to defer loading until needed. This reduces initial page load time and saves bandwidth. Exception: Don't lazy-load LCP image or above-the-fold content. Use loading='eager' for critical images.
2 below-fold image(s) without lazy loading
1 page affected
2 items
images/offscreen-lazyRule docs Responsive Image SizeSEO1 small image(s) may be serving oversized files
48 pages
1 small image(s) may be serving oversized files
Checks whether small images serve files heavier than their displayed size needs
How to fix
Serve images at the size they are displayed. A thumbnail shown at 64x64 needs at most a 128x128 file for high-density screens; a file much heavier than that wastes bandwidth and slows the page. Generate a thumbnail-sized variant and reference it, or list 1x and 2x candidates in srcset so the browser picks the smallest sharp one. Image CDNs can resize on the fly.
1 small image(s) may be serving oversized files · 48 pages
48 pages affected
Copy as text
images/responsive-sizeRule docs Image DimensionsSEO1 to 2 image(s) missing width/height (causes CLS)
2 pages
1 to 2 image(s) missing width/height (causes CLS)
Checks for width/height attributes (prevents CLS)
How to fix
Specifying width and height attributes prevents Cumulative Layout Shift (CLS) by reserving space before images load. Add width and height attributes to img tags matching the image's intrinsic dimensions. Use CSS for responsive sizing if needed. For responsive images, the aspect ratio from width/height prevents layout shifts even when CSS overrides the actual size.
1 to 2 image(s) missing width/height (causes CLS) · 2 pages
2 pages affected
images/dimensionsRule docs LCP Optimization HintsPerformance1 to 2 potential LCP image(s) without preload
48 pages
1 to 2 potential LCP image(s) without preload
Checks for Largest Contentful Paint optimization opportunities
How to fix
LCP measures when the largest content element becomes visible. Optimize by: 1) Preload your LCP image with <link rel='preload' as='image'>. 2) Don't use loading='lazy' on above-fold images as it delays loading. 3) Minimize render-blocking CSS/JS in <head>. 4) Use modern image formats (WebP/AVIF) for faster loading. 5) Consider using fetchpriority='high' on the LCP image.
1 to 2 potential LCP image(s) without preload · 48 pages
48 pages affected
Copy as text
4 items
on /about
perf/lcp-hintsRule docs Time to First BytePerformanceVery slow server response (1149ms)
6 pages
Very slow server response (1149ms)
Measures server response time (TTFB)
How to fix
Time to First Byte (TTFB) measures how quickly your server responds. Slow TTFB indicates server/backend issues. Thresholds (Core Web Vitals): - Good: < 600ms - Needs improvement: 600-1000ms - Poor: > 1000ms Fixes for slow TTFB: - Enable server caching (Redis, Varnish, CDN) - Optimize database queries - Use CDN for static assets - Upgrade server resources - Reduce server-side processing - Enable HTTP/2 or HTTP/3 - Use edge computing (Cloudflare Workers, Vercel Edge)
Very slow server response (1149ms)
1 page affected
Slow server response (610ms)
1 page affected
Slow server response (649ms)
1 page affected
Slow server response (692ms)
1 page affected
Slow server response (758ms)
Slow server response (870ms)
1 page affected
perf/ttfbRule docs CLS Optimization HintsPerformance1 to 2 image(s) without width/height (CLS risk)
2 pages
1 to 2 image(s) without width/height (CLS risk)
Checks for Cumulative Layout Shift prevention
How to fix
CLS measures visual stability - how much content shifts during load. Prevent layout shifts by: 1) Always set width and height attributes on images and iframes. 2) Reserve space for ads and embeds with CSS min-height. 3) Use CSS aspect-ratio for responsive media. 4) Avoid inserting content above existing content. 5) Use transform animations instead of properties that trigger layout.
1 to 2 image(s) without width/height (CLS risk) · 2 pages
2 pages affected
3 items
on /posts/multiple-vulnerabilities-in-mygov-australian-government
on /posts/multiple-vulnerabilities-in-mygov-australian-government
perf/cls-hintsRule docs DOM SizePerformanceElement with 61 to 276 children found
3 pages
Element with 61 to 276 children found
Detects excessive DOM complexity that impacts performance
How to fix
Large DOMs slow page rendering, increase memory usage, and harm mobile performance. Google recommends keeping total nodes under 1500. Fixes for large DOMs: - Use virtualization for long lists (e.g., react-window) - Lazy-load off-screen content - Reduce unnecessary wrapper elements - Use CSS instead of DOM for visual effects - Paginate large content sections
Element with 61 to 276 children found · 3 pages
Large DOM (2114 nodes)
1 page affected
perf/dom-sizeRule docs Critical Request ChainsPerformance2 critical request chain(s) found
48 pages
2 critical request chain(s) found
Identifies chains of dependent resources that delay rendering
How to fix
Critical request chains are sequences of dependent network requests that must complete before the page can render. Reduce chain depth by: 1) Inlining critical CSS instead of linking external files. 2) Adding async or defer to non-critical scripts. 3) Avoiding CSS @import — use <link> tags instead. 4) Using <link rel='preload'> for critical resources. 5) Reducing the number of render-blocking resources in <head>.
2 critical request chain(s) found · 48 pages
48 pages affected
Copy as text
perf/critical-request-chainsRule docs Lazy Loading Above FoldPerformance1 to 2 above-fold image(s) with lazy loading
8 pages
1 to 2 above-fold image(s) with lazy loading
Detects lazy loading on likely above-fold images
How to fix
Don't use loading='lazy' on images that appear above the fold (visible without scrolling). Lazy loading these images delays LCP because the browser waits for layout before fetching. For hero images and LCP candidates: 1) Remove loading='lazy'. 2) Add fetchpriority='high'. 3) Consider preloading with <link rel='preload' as='image'>. Only use lazy loading for below-fold images.
1 to 2 above-fold image(s) with lazy loading · 8 pages
8 pages affected
Copy as text
12 items
on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites
on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites
on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
perf/lazy-above-foldRule docs Color ContrastSEO2 to 11 potential color contrast issue(s)
49 pages
2 to 11 potential color contrast issue(s)
Measures the contrast of text whose color and background are both set inline
How to fix
Text must have sufficient contrast with its background for readability. WCAG AA requires 4.5:1 for normal text and 3:1 for large text (18pt+, or 14pt+ bold). Darken the text or lighten the background until the pair clears the ratio, and check the pair, not the color alone. squirrel only measures pairs it can resolve from the markup; verify colors set in stylesheets with browser DevTools or a contrast checker. Don't rely on color alone to convey information - add icons or text labels.
2 to 11 potential color contrast issue(s) · 49 pages
49 pages affected
Copy as text
28 items, 1 more not listed
on /contact
on /posts
on /posts
on /posts
+2 more pages
on /posts
on /asides
on /about
+6 more pages
on /posts/craig-wright-is-not-satoshi-nakamoto
on /posts/securing-blockchain-users-with-tor-and-ssl
+7 more pages
on /
on /
on /
on /posts
on /asides
+7 more pages
on /subscribe
on /
on /asides
on /posts/craig-wright-is-not-satoshi-nakamoto
+7 more pages
on /
on /posts
on /posts
+3 more pages
on /posts/craig-wright-is-not-satoshi-nakamoto
on /posts/securing-blockchain-users-with-tor-and-ssl
+7 more pages
on /posts
on /posts
on /posts
+2 more pages
on /posts/craig-wright-is-not-satoshi-nakamoto
on /posts/60-minutes-australia-on-silk-road-and-bitcoin
on /posts/analyzing-fbi-explanation-silk-road
+5 more pages
on /
on /
on /posts
on /asides
+7 more pages
on /subscribe
on /subscribe
on /posts/craig-wright-is-not-satoshi-nakamoto
on /posts/securing-blockchain-users-with-tor-and-ssl
+7 more pages
on /
on /posts
on /asides
+7 more pages
on /about
on /posts
on /asides
on /posts
+3 more pages
on /
on /posts
on /asides
+7 more pages
on /subscribe
on /subscribe
on /contact
on /about
+2 more pages
on /
on /posts
on /posts
+3 more pages
on /subscribe
a11y/color-contrastRule docs One Main LandmarkSEOPage has no main landmark
1 page
Page has no main landmark
Checks that the page has exactly one main landmark
How to fix
Each page should have exactly one <main> element or element with role='main'. This helps screen reader users quickly navigate to the primary content. Multiple main landmarks confuse navigation. Use <aside>, <nav>, or other landmarks for secondary content.
Page has no main landmark
1 page affected
a11y/landmark-one-mainRule docs Identical Links Same PurposeSEO1 to 2 link text(s) lead to different destinations
6 pages
1 to 2 link text(s) lead to different destinations
Checks that links with identical text go to the same destination
How to fix
Links with the same visible text should go to the same URL. When identical link text leads to different destinations, it confuses screen reader users who navigate by listing links. Make link text unique or more descriptive to differentiate destinations.
1 to 2 link text(s) lead to different destinations · 6 pages
6 pages affected
7 items
on /about
on /posts/persistant-and-unblockable-cookies-using-http-headers
a11y/identical-links-same-purposeRule docs Redundant Image AltSEO1 to 6 image(s) with redundant alt text
8 pages
1 to 6 image(s) with redundant alt text
Checks that image alt text is not redundant with surrounding text
How to fix
Image alt text should not start with 'image of', 'photo of', 'picture of', etc. Screen readers already announce that it's an image. Alt text should describe the content or function, not state the obvious. Also avoid duplicating adjacent text in the alt.
1 to 6 image(s) with redundant alt text · 8 pages
8 pages affected
Copy as text
18 items
on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites
on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites
on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
a11y/image-redundant-altRule docs Skip LinkSEONo bypass mechanism for repetitive content
1 page
No bypass mechanism for repetitive content
Checks for bypass mechanisms for keyboard navigation
How to fix
Skip links allow keyboard users to bypass repetitive navigation and jump directly to main content. Add a hidden link at the very beginning of your page: <a href='#main-content' class='skip-link'>Skip to main content</a>. Style it to become visible on focus. Ensure the target (#main-content) has tabindex='-1' if it's not naturally focusable. Alternative: use landmark roles like <main> which screen readers can navigate to directly.
No bypass mechanism for repetitive content
1 page affected
a11y/skip-linkRule docs Table HeadersSEO1 table(s) without <th> headers
1 page
1 table(s) without <th> headers
Checks that data tables have proper headers
How to fix
Data tables need proper headers for screen reader users to understand relationships. Use <th> for header cells, not styled <td>. Add scope='col' or scope='row' to clarify header direction. For complex tables, use id and headers attributes to associate data cells with headers. Include a <caption> to describe the table's purpose. Layout tables should have role='presentation'.
a11y/table-headersRule docs Table Duplicate NameSEO1 table(s) without accessible names
1 page
1 table(s) without accessible names
Checks that data tables have unique accessible names
How to fix
When a page has multiple data tables, each should have a unique accessible name to help users distinguish between them. Use <caption>, aria-label, or aria-labelledby with unique text for each table.
1 table(s) without accessible names
1 page affected
a11y/table-duplicate-nameRule docs Author BylinesSEONo content pages have author attribution
site-wide
No content pages have author attribution
Checks for visible author names on content pages
How to fix
Author bylines demonstrate experience and accountability. Show author names prominently on articles, blog posts, and expert content. Include author credentials where relevant. Link author names to bio pages. For YMYL content (health, finance), author transparency is especially important for Google's E-E-A-T assessment.
No content pages have author attribution
eeat/author-bylineRule docs Content DatesSEONo content pages have datePublished
site-wide
No content pages have datePublished
Checks for published and modified dates on content
How to fix
Visible dates show content freshness and help users assess relevance. Include datePublished and dateModified in Article schema. Show human-readable dates on pages. Update dateModified when making significant changes. Fresh content signals ongoing maintenance and expertise. Stale dates may hurt rankings for time-sensitive topics.
No content pages have datePublished
eeat/content-datesRule docs Pages
The same findings, by URL. Worst first.Built from each rule's listed examples, so a very widespread rule may not name every page.