squirrelscan
.md.json

nikcub.me

https://nikcub.me
Scanned 51 of 51 discovered pages
63D
51
Scanned
51
Discovered
4,576
Passed
504
Warnings
98
Failed

Issues

The most widespread errors and warnings, worst first
  1. 1
    Meta Descriptionerror22 pages

    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. 2
    Meta Tags in Bodyerror6 pages

    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. 3
    Duplicate ID ARIAerror2 pages

    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. 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 account
  • Summary 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

53 rules flagged, ranked by severity then impact
Errors 6Broken or harmful. Fix these first.
Meta DescriptionSEO

Missing meta description

22 pages

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 (163 to 182 chars, max 160) · 7 pages

7 pages affected
/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/craig-wright-is-not-satoshi-nakamoto/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/frictionless-browser-plugin/posts/logging-out-of-facebook-is-not-enough/posts/notes-on-the-celebrity-data-theft/posts/the-download-dot-con
Copy as text

Description too short (41 to 117 chars, min 120) · 14 pages

14 pages affected
/about/asides/contact/posts/posts/how-megaupload-was-investigated-and-indicted/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/persistant-and-unblockable-cookies-using-http-headers/posts/posts/posts/posts/privacy/subscribe/tracking-cookie
Copy as text
core/meta-descriptionRule docs
Meta Tags in BodySEO

Found 16 meta tags in <body>

6 pages

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

6 pages affected
/asides/posts/posts/posts/posts/posts
Copy as text
16 items
description="Long-form writing on security, privacy, and techno..."

on /posts

on /asides

on /posts

+3 more pages

og:description="Long-form writing on security, privacy, and techno..."

on /posts

on /asides

on /posts

+3 more pages

og:image="https://nikcub.me/og-default.png"

on /posts

on /asides

on /posts

+3 more pages

og:image:alt="Articles"

on /posts

on /asides

on /posts

+3 more pages

og:image:height="630"

on /posts

on /asides

on /posts

+3 more pages

og:image:width="1200"

on /posts

on /asides

on /posts

+3 more pages

og:locale="en_US"

on /posts

on /asides

on /posts

+3 more pages

og:site_name="Nik Cubrilovic"

on /posts

on /asides

on /posts

+3 more pages

og:title="Articles"

on /posts

on /asides

on /posts

+3 more pages

og:type="website"

on /posts

on /asides

on /posts

+3 more pages

og:url="https://nikcub.me/posts"

on /posts

on /asides

on /posts

+3 more pages

twitter:card="summary_large_image"

on /posts

on /asides

on /posts

+3 more pages

twitter:creator="@nikcub"

on /posts

on /asides

on /posts

+3 more pages

twitter:description="Long-form writing on security, privacy, and techno..."

on /posts

on /asides

on /posts

+3 more pages

twitter:image="https://nikcub.me/og-default.png"

on /posts

on /asides

on /posts

+3 more pages

twitter:title="Articles"

on /posts

on /asides

on /posts

+3 more pages

content/meta-in-bodyRule docs
Duplicate ID ARIASEO

Rule error: CSS is not defined

2 pages

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.

Rule error: CSS is not defined · 2 pages

2 pages affected
a11y/duplicate-id-ariaRule docs
ARIA Command NameSEO

1 command element(s) without accessible names

1 page

Checks that command elements have accessible names

How to fix

Command elements (buttons, links, menu items) must have accessible names. Add text content, aria-label, aria-labelledby, or title attribute. For icon-only buttons, use aria-label to describe the action (e.g., aria-label='Close'). An element hidden by the hidden attribute, aria-hidden, a closed dialog or an inline style='display:none' is out of the accessibility tree and is not reported, but it needs a name before it is shown. A <style> rule squirrel can decide (a plain selector, no media query) counts too. Vendor-prefixed display values (-webkit-box, -webkit-flex, -ms-flexbox) are read as shown, including the old fallback chain that ends in display: flex. An attribute selector with an operator ([id$=x], [href^=x], [data-a*=x], [class~=x], [lang|=en]) reaches only elements that have the attribute and a value that could satisfy it. A control carrying a no-js class (itself or an ancestor other than <html>) on a page with an external stylesheet or @import is reported as unconfirmed, because the theme may hide it when JavaScript runs. An element a style may hide but squirrel cannot settle (a pseudo-class, a media query, a page that also loads an external stylesheet) is reported as unconfirmed. External stylesheets are not read, so an element hidden only by one is still reported.

1 command element(s) without accessible names

1 page affected
1 item
a[href="https://www.facebook.com/setti..."]

on /posts/howto-setup-secure-and-private-facebook-browsing

a11y/aria-command-nameRule docs
Frame TitleSEO

2 iframe(s) without title attribute

1 page

Checks that iframes and frames have title attributes

How to fix

All iframes must have a title attribute describing their content. This helps screen reader users understand what the iframe contains. Example: <iframe src='video.html' title='Product demo video'>. An element hidden by the hidden attribute, aria-hidden, a closed dialog or an inline style='display:none' is out of the accessibility tree and is not reported, but it needs a name before it is shown. A <style> rule squirrel can decide counts too. An iframe carrying a no-js class (itself or an ancestor other than <html>) on a page with an external stylesheet or @import is reported as unconfirmed, because the theme may hide it when JavaScript runs. One a style may hide but squirrel cannot settle (a pseudo-class, a media query, a page that also loads an external stylesheet) is reported as unconfirmed. External stylesheets are not read, so an element hidden only by one is still reported.

a11y/frame-titleRule docs
Label Content Name MismatchSEO

1 element(s) where visible text doesn't match accessible name

2 pages

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

2 pages affected
1 item
a: visible="↩" vs aria-label="back to reference 1"

on /posts/securing-blockchain-users-with-tor-and-ssl

on /posts/relevance-time-for-twitter

a11y/label-content-name-mismatchRule docs
Recommendations 4Worth doing, not hurting you today.
PaginationSEO

Paginated page canonicalizes to non-paginated URL

4 pages

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 · 4 pages

4 pages affected
/posts/posts/posts/posts
Copy as text
crawl/paginationRule docs
Twitter CardsSEO

No Twitter card or Open Graph tags for Twitter sharing

1 page

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 RegionsSEO

No <main> landmark found

1 page

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 LengthSEO

URL is 121 characters (over 100)

1 page

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/lengthRule docs
Warnings 43Likely to cost you over time.
Canonical ChainSEO

Page redirects before content is served

1 page

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

1 page affected
1 item
crawl/canonical-chainRule docs
Sitemap CoverageSEO

1 indexable page(s) not in sitemap (2%)

1 page

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 TitleSEO

Title too long (61 to 123 chars, max 60)

33 pages

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 (61 to 123 chars, max 60) · 24 pages

24 pages affected
//posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-re-enables-controversial-tracking-cookie/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/frictionless-browser-plugin/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/onymous-part1/posts/persistant-and-unblockable-cookies-using-http-headers/posts/securing-blockchain-users-with-tor-and-ssl/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
Copy as text

Title too short (24 to 26 chars, min 30) · 9 pages

9 pages affected
/contact/fb-table.html/posts/posts/numeronym/posts/posts/posts/posts/subscribe
Copy as text
core/meta-titleRule docs
Canonical URLSEO

Missing canonical URL

1 page

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
CharsetSEO

No charset declaration found

48 pages

Checks for proper character encoding declaration

How to fix

Add <meta charset="UTF-8"> as the first element in your <head> section. This tells browsers how to interpret the text on your page. UTF-8 is the standard encoding that supports all languages and special characters. Placing it first ensures browsers know the encoding before parsing any other content.

No charset declaration found · 48 pages

48 pages affected
//about/asides/contact/posts/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/logging-out-of-facebook-is-not-enough/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/numeronym/posts/onymous-part1/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/posts/posts/posts/privacy/subscribe/tracking-cookie
Copy as text
core/charsetRule docs
Open Graph TagsSEO

Missing og:description

1 page

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
1 item

Missing og:image - social shares will lack imagery

1 page affected
1 item

Missing og:title

1 page affected
1 item
core/og-tagsRule docs
Title UniquenessSEO

1 duplicate title(s) affecting 5 pages

5 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.

1 duplicate title(s) affecting 5 pages · 5 pages

5 pages affected
/posts/posts/posts/posts/posts
Copy as text
1 item
"articles | nik cubrilovic..." (5 pages)

on /posts

on /posts

on /posts

+2 more pages

core/title-uniqueRule docs
FaviconSEO

No favicon found

1 page

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 PolicySecurity

No Content-Security-Policy header

site-wide

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 CAPTCHASecurity

1 to 2 public form(s) without CAPTCHA

48 pages

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
//about/asides/contact/posts/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/logging-out-of-facebook-is-not-enough/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/numeronym/posts/onymous-part1/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/posts/posts/posts/privacy/subscribe/tracking-cookie
Copy as text
2 items
form[0]

on /

on /posts

on /asides

+7 more pages

form[1]

on /subscribe

security/form-captchaRule docs
HTTP to HTTPS RedirectSecurity

20 HTTP URL(s) redirect to HTTPS

20 pages

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
//asides/posts/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/how-megaupload-was-investigated-and-indicted/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/onymous-part1/posts/securing-blockchain-users-with-tor-and-ssl/posts/two-google-chrome-privacy-issues/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/subscribe
Copy as text
security/http-to-httpsRule docs
HTTPS DowngradeSEO

1 to 29 link(s) downgrade to HTTP

35 pages

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 29 link(s) downgrade to HTTP · 35 pages

35 pages affected
/about/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/craig-wright-is-not-satoshi-nakamoto/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/logging-out-of-facebook-is-not-enough/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/numeronym/posts/onymous-part1/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
Copy as text
243 items
links/https-downgradeRule docs
Orphan PagesSEO

25 orphan page(s) with <2 incoming links

25 pages

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
/asides/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/crunchpad-proof-obviousness-in-ipad-design/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/numeronym/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
Copy as text
links/orphan-pagesRule docs
Anchor TextSEO

1 link(s) have empty anchor text

1 page

Checks for empty or generic anchor text

How to fix

Descriptive anchor text helps users and search engines understand link destinations. Avoid generic text like 'click here' or 'read more'. Use natural language that describes the target page. For accessibility, anchor text should make sense out of context. Avoid overly long anchor text or keyword stuffing. When a card links to the same target more than once (e.g. an image link and a headline link), only one of those links needs descriptive text — the group is evaluated together, not link by link.

links/anchor-textRule docs
Dead-End PagesSEO

Page has no outgoing internal links (dead-end)

1 page

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
Duplicate TitleSEO

1 duplicate title(s) found across 5 pages

5 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.

1 duplicate title(s) found across 5 pages · 5 pages

5 pages affected
/posts/posts/posts/posts/posts
Copy as text
1 item
"articles | nik cubrilovic..." (5 pages)

on /posts

on /posts

on /posts

+2 more pages

content/duplicate-titleRule docs
Duplicate DescriptionSEO

1 duplicate description(s) found across 5 pages

5 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.

1 duplicate description(s) found across 5 pages · 5 pages

5 pages affected
/posts/posts/posts/posts/posts
Copy as text
1 item
"long-form writing on security, privacy, ..." (5 pages)

on /posts

on /posts

on /posts

+2 more pages

content/duplicate-descriptionRule docs
Keyword StuffingSEO

1 to 4 word(s) may be overused

20 pages

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
/fb-table.html/posts/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/logging-out-of-facebook-is-not-enough/posts/pain-and-gain/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/posts/posts/posts/tracking-cookie
Copy as text
17 items
content/keyword-stuffingRule docs
Word CountSEO

Thin content: 40 to 289 words (min 300)

11 pages

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: 40 to 289 words (min 300) · 11 pages

11 pages affected
//asides/contact/fb-table.html/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/numeronym/posts/privacy/subscribe/tracking-cookie
Copy as text
content/word-countRule docs
JSON-LD ValidSEO

Invalid JSON-LD syntax

36 pages

Validates JSON-LD structured data

How to fix

JSON-LD structured data helps search engines understand your content and can unlock rich results. Validate against schema.org rules (headline, author, datePublished for articles, name/url for organizations, etc.) and keep the JSON well-formed. Use squirrelscan's built-in schema validator to expose the exact missing property path before verifying on Google's Rich Results Test, and ensure each required field points to a canonical resource.

Invalid JSON-LD syntax · 36 pages

36 pages affected
/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/logging-out-of-facebook-is-not-enough/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/numeronym/posts/onymous-part1/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
Copy as text
2 items
schema/json-ld-validRule docs
Offscreen Image Lazy LoadingSEO

2 below-fold image(s) without lazy loading

1 page

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
BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf-20-page-2069-20of-2099-.webp

on /posts/securing-blockchain-users-with-tor-and-ssl

Screen-20Shot-202014-12-04-20at-202.00.01-20AM.webp

on /posts/securing-blockchain-users-with-tor-and-ssl

images/offscreen-lazyRule docs
Responsive Image SizeSEO

1 small image(s) may be serving oversized files

48 pages

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
//about/asides/contact/posts/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/logging-out-of-facebook-is-not-enough/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/numeronym/posts/onymous-part1/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/posts/posts/posts/privacy/subscribe/tracking-cookie
Copy as text
1 item
image (56x56, no srcset)

on /

on /posts

on /asides

+7 more pages

images/responsive-sizeRule docs
Image DimensionsSEO

1 to 4 image(s) missing width/height (causes CLS)

9 pages

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 4 image(s) missing width/height (causes CLS) · 9 pages

9 pages affected
/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/crunchpad-proof-obviousness-in-ipad-design/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/frictionless-browser-plugin/posts/google-firefox-chrome-lady-gaga/posts/how-megaupload-was-investigated-and-indicted/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/securing-blockchain-users-with-tor-and-ssl
Copy as text
images/dimensionsRule docs
LCP Optimization HintsPerformance

1 to 2 potential LCP image(s) without preload

48 pages

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
//about/asides/contact/posts/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/logging-out-of-facebook-is-not-enough/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/numeronym/posts/onymous-part1/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/posts/posts/posts/privacy/subscribe/tracking-cookie
Copy as text
4 items
/_next/image?url=%2Favatar.webp&w=128&q=75

on /

on /posts

on /asides

+7 more pages

/_next/image?url=%2Fimages%2Fposts%2Fcraig_wright.webp&w=1920&q=75

on /posts/craig-wright-is-not-satoshi-nakamoto

/_next/image?url=%2Fimages%2Fposts%2Fnik.profile.webp&w=1920&q=75

on /about

/images/posts/20111225-pmyb3unhb18e2drdnyr1wuna5k.jpg-20class

on /posts/google-firefox-chrome-lady-gaga

perf/lcp-hintsRule docs
Time to First BytePerformance

Slow server response (606ms)

17 pages

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)

Slow server response (606ms)

1 page affected

Slow server response (628ms)

1 page affected

Slow server response (631ms)

1 page affected

Slow server response (634ms)

1 page affected

Slow server response (644ms)

1 page affected

Slow server response (652ms) · 2 pages

2 pages affected

Slow server response (659ms)

1 page affected

Slow server response (675ms)

1 page affected

Slow server response (693ms)

1 page affected

Slow server response (707ms)

1 page affected

Slow server response (713ms)

1 page affected

Slow server response (721ms)

1 page affected

Slow server response (725ms)

1 page affected

Slow server response (796ms)

1 page affected
perf/ttfbRule docs
CLS Optimization HintsPerformance

2 iframe(s) without dimensions

9 pages

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.

2 iframe(s) without dimensions

1 page affected
2 items
//www.scribd.com/embeds/224070691/content?start_page=1&view_mode=scroll&access_key=key-0NVekfWBPaKGMp7lca97&show_recommendations=true

on /posts/multiple-vulnerabilities-in-mygov-australian-government

//www.scribd.com/embeds/224260090/content?start_page=1&view_mode=scroll&access_key=key-j9B707GMs1zWZwc5kLui&show_recommendations=true

on /posts/multiple-vulnerabilities-in-mygov-australian-government

1 to 4 image(s) without width/height (CLS risk) · 9 pages

9 pages affected
/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/crunchpad-proof-obviousness-in-ipad-design/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/frictionless-browser-plugin/posts/google-firefox-chrome-lady-gaga/posts/how-megaupload-was-investigated-and-indicted/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/securing-blockchain-users-with-tor-and-ssl
Copy as text
14 items
/images/posts/20111225-pmyb3unhb18e2drdnyr1wuna5k.jpg-20class

on /posts/google-firefox-chrome-lady-gaga

/images/posts/2689708043_3afee5af69_o.webp

on /posts/crunchpad-proof-obviousness-in-ipad-design

/images/posts/5909374213_cbae62eb55_m.webp

on /posts/blockplus-a-browser-extension-to-block-google-notifications

/images/posts/5909661385_79445883de_b.webp

on /posts/blockplus-a-browser-extension-to-block-google-notifications

/images/posts/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf-20-page-2025-20of-2099-.webp

on /posts/securing-blockchain-users-with-tor-and-ssl

/images/posts/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf-20-page-2069-20of-2099-.webp

on /posts/securing-blockchain-users-with-tor-and-ssl

/images/posts/Disqus-20-E2-80-B9-20nikcub-20test-20-E2-80-94-20WordPress.webp

on /posts/multiple-vulnerabilities-in-disqus-wordpress-plugin

/images/posts/Screen-20Shot-202014-12-04-20at-202.00.01-20AM.webp

on /posts/securing-blockchain-users-with-tor-and-ssl

/images/posts/blockchain-tor.webp

on /posts/securing-blockchain-users-with-tor-and-ssl

/images/posts/promo.webp

on /posts/frictionless-browser-plugin

perf/cls-hintsRule docs
DOM SizePerformance

Element with 118 to 276 children found

2 pages

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 118 to 276 children found · 2 pages

2 pages affected

Large DOM (2106 nodes)

1 page affected
perf/dom-sizeRule docs
Critical Request ChainsPerformance

2 critical request chain(s) found

48 pages

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
//about/asides/contact/posts/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/logging-out-of-facebook-is-not-enough/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/numeronym/posts/onymous-part1/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/posts/posts/posts/privacy/subscribe/tracking-cookie
Copy as text
2 items
CSS: /_next/static/chunks/11d59d31d0dc4e0e.css?dpl=dpl_5SLwpopeDrb64tvL2Hua3zVnFW7R

on /

on /posts

on /asides

+7 more pages

JS: /_next/static/chunks/a6dad97d9634a72d.js?dpl=dpl_5SLwpopeDrb64tvL2Hua3zVnFW7R

on /

on /posts

on /asides

+7 more pages

perf/critical-request-chainsRule docs
Lazy Loading Above FoldPerformance

1 to 2 above-fold image(s) with lazy loading

8 pages

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
/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/facebook-re-enables-controversial-tracking-cookie/posts/notes-on-the-celebrity-data-theft/posts/the-download-dot-con/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
Copy as text
12 items
/_next/image?url=%2Fimages%2Fposts%2F5909374213_cbae62eb55_m.webp&w=1920&q=75

on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites

/_next/image?url=%2Fimages%2Fposts%2F5909661385_79445883de_b.webp&w=1920&q=75

on /posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites

/_next/image?url=%2Fimages%2Fposts%2F60_screenshot_export.webp&w=1920&q=75

on /posts/60-minutes-australia-on-silk-road-and-bitcoin

/_next/image?url=%2Fimages%2Fposts%2F60min-silkroad_export.webp&w=1920&q=75

on /posts/60-minutes-australia-on-silk-road-and-bitcoin

/_next/image?url=%2Fimages%2Fposts%2FChcGSpBUUAArMOs.webp&w=1920&q=75

on /posts/craig-wright-is-not-satoshi-nakamoto

/_next/image?url=%2Fimages%2Fposts%2FScreen_Shot_2014-09-03_at_6.22.13_AM.webp&w=1920&q=75

on /posts/notes-on-the-celebrity-data-theft

/_next/image?url=%2Fimages%2Fposts%2Fdownload-dotcon.webp&w=1920&q=75

on /posts/the-download-dot-con

/_next/image?url=%2Fimages%2Fposts%2Ffacebook-reenable01.webp&w=1920&q=75

on /posts/facebook-re-enables-controversial-tracking-cookie

/_next/image?url=%2Fimages%2Fposts%2Ffacebook-reenable02.webp&w=1920&q=75

on /posts/facebook-re-enables-controversial-tracking-cookie

/_next/image?url=%2Fimages%2Fposts%2Fsr_reddit_screnshot.webp&w=1920&q=75

on /posts/analyzing-fbi-explanation-silk-road

/_next/image?url=%2Fimages%2Fposts%2Fyahoo-extension-disable.webp&w=1920&q=75

on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file

/_next/image?url=%2Fimages%2Fposts%2Fyahoo-private-key.webp&w=1920&q=75

on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file

perf/lazy-above-foldRule docs
Color ContrastSEO

2 to 11 potential color contrast issue(s)

49 pages

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
//about/asides/contact/fb-table.html/posts/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/crunchpad-proof-obviousness-in-ipad-design/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/facebook-also-doesnt-honor-p3p/posts/facebook-fixes-logout-issue-explains-cookies/posts/facebook-is-losing-e-commerce/posts/facebook-re-enables-controversial-tracking-cookie/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/fidelio-a-browser-plugin-for-secure-web-browsing/posts/finding-a-technical-co-founder/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/google-firefox-chrome-lady-gaga/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/how-megaupload-was-investigated-and-indicted/posts/howto-setup-secure-and-private-facebook-browsing/posts/lies-damn-lies-and-google-statistics/posts/logging-out-of-facebook-is-not-enough/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/notes-on-the-celebrity-data-theft/posts/numeronym/posts/onymous-part1/posts/pain-and-gain/posts/persistant-and-unblockable-cookies-using-http-headers/posts/relevance-time-for-twitter/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/the-google-ipo-skeptics/posts/two-google-chrome-privacy-issues/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/posts/posts/posts/privacy/subscribe/tracking-cookie
Copy as text
28 items, 1 more not listed
Very light text color: 1 instance(s)

on /fb-table.html

White text (verify background): 2 instance(s)

on /fb-table.html

a with class "flex items-center gap-3 text-s..." may have low contrast

on /contact

a with class "inline-flex items-center gap-1..." may have low contrast

on /posts

on /posts

on /posts

+2 more pages

a with class "inline-flex items-center gap-2..." may have low contrast

on /posts

on /asides

on /about

+6 more pages

a with class "mt-4 inline-flex items-center ..." may have low contrast

on /

a with class "mt-8 inline-flex items-center ..." may have low contrast

on /

a with class "text-muted-foreground transiti..." may have low contrast

on /

on /posts

on /asides

+7 more pages

a with class "text-xs text-muted-foreground ..." may have low contrast

on /subscribe

div with class "flex flex-col gap-4 text-sm te..." may have low contrast

on /

on /asides

on /posts/craig-wright-is-not-satoshi-nakamoto

+7 more pages

div with class "flex items-center gap-3 text-x..." may have low contrast

on /

on /posts

on /posts

+3 more pages

div with class "text-sm text-muted-foreground..." may have low contrast

on /posts

on /posts

on /posts

+2 more pages

figcaption with class "mt-2 text-center text-sm text-..." may have low contrast

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

h2 with class "text-xs font-medium uppercase ..." may have low contrast

on /

input with class "h-10 rounded-sm border border-..." may have low contrast

on /

on /posts

on /asides

+7 more pages

input with class "h-11 flex-1 rounded-sm border ..." may have low contrast

on /subscribe

p with class "mb-4 text-sm text-muted-foregr..." may have low contrast

on /subscribe

p with class "mt-1 text-sm text-muted-foregr..." may have low contrast

on /

on /posts

on /asides

+7 more pages

p with class "mt-2 text-center text-sm text-..." may have low contrast

on /posts/craig-wright-is-not-satoshi-nakamoto

on /about

p with class "mt-2 text-muted-foreground..." may have low contrast

on /posts

on /asides

on /posts

+3 more pages

p with class "mt-2 text-sm text-muted-foregr..." may have low contrast

on /

on /posts

on /asides

+7 more pages

p with class "mt-3 text-xs text-muted-foregr..." may have low contrast

on /subscribe

p with class "mt-4 text-lg text-muted-foregr..." may have low contrast

on /subscribe

on /contact

on /about

+2 more pages

p with class "text-[15px] leading-relaxed te..." may have low contrast

on /

on /posts

on /posts

+3 more pages

p with class "text-sm text-muted-foreground..." may have low contrast

on /subscribe

a11y/color-contrastRule docs
One Main LandmarkSEO

Page has no main landmark

1 page

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
Redundant Image AltSEO

1 to 6 image(s) with redundant alt text

9 pages

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 · 9 pages

9 pages affected
/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/craig-wright-is-not-satoshi-nakamoto/posts/facebook-re-enables-controversial-tracking-cookie/posts/notes-on-the-celebrity-data-theft/posts/securing-blockchain-users-with-tor-and-ssl/posts/the-download-dot-con/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file
Copy as text
16 items
""60_screenshot_expor..." duplicates figcaption

on /posts/60-minutes-australia-on-silk-road-and-bitcoin

""sr_reddit_screnshot..." duplicates figcaption

on /posts/analyzing-fbi-explanation-silk-road

""tweet_01_exported"..." duplicates figcaption

on /posts/60-minutes-australia-on-silk-road-and-bitcoin

""tweet_02_exported"..." duplicates figcaption

on /posts/60-minutes-australia-on-silk-road-and-bitcoin

""tweet_03_exported"..." duplicates figcaption

on /posts/60-minutes-australia-on-silk-road-and-bitcoin

""tweet_04_exported"..." duplicates figcaption

on /posts/60-minutes-australia-on-silk-road-and-bitcoin

"60 minutes silk road..." duplicates figcaption

on /posts/60-minutes-australia-on-silk-road-and-bitcoin

"Craig Wright's tweet..." duplicates figcaption

on /posts/craig-wright-is-not-satoshi-nakamoto

"disable yahoo extens..." duplicates figcaption

on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file

"download dot con..." duplicates figcaption

on /posts/the-download-dot-con

"facbeook datr cookie..." duplicates figcaption

on /posts/facebook-re-enables-controversial-tracking-cookie

"ransomware..." duplicates figcaption

on /posts/notes-on-the-celebrity-data-theft

"yahoo private key..." duplicates figcaption

on /posts/yahoo-axis-chrome-extension-leaks-private-certificate-file

alt="blockchain-tor" matches filename

on /posts/securing-blockchain-users-with-tor-and-ssl

a11y/image-redundant-altRule docs
Table HeadersSEO

1 table(s) without <th> headers

1 page

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'.

1 table(s) without <th> headers

1 page affected
1 item
Table 1

on /fb-table.html

a11y/table-headersRule docs
Table Duplicate NameSEO

1 table(s) without accessible names

1 page

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 BylinesSEO

Only 0% of content pages have author attribution

site-wide

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.

Only 0% of content pages have author attribution

eeat/author-bylineRule docs
Content DatesSEO

Only 0% of content has datePublished

site-wide

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.

Only 0% of content has datePublished

eeat/content-datesRule docs
Privacy PolicySecurity

No privacy policy link found

1 page

Checks for privacy policy link presence

How to fix

A privacy policy is legally required in many jurisdictions (GDPR, CCPA). Link to your privacy policy from every page, typically in the footer. The policy should explain what data you collect, how it's used, and user rights. Consider using schema.org markup to identify the policy page.

No privacy policy link found

1 page affected
legal/privacy-policyRule docs