51 pages • Generated: 7 Feb 2026
63
Health Score (D)
51
Pages
4,576
Passed
504
Warnings
98
Failed

Performance

(134 warnings)
LCP Optimization Hintsperf/lcp-hintswarningdocs
Checks for Largest Contentful Paint optimization opportunities
Solution
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.
lcp-preload: 1 potential LCP image(s) without preload (45 pages)
45 pages affected
//posts/asides/subscribe/posts/fbi-seizes-fake-tor-hosted-jihad-funding-website-as-part-of-operation-onymous-leaves-up-real-site/posts/securing-blockchain-users-with-tor-and-ssl/posts/onymous-part1/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/notes-on-the-celebrity-data-theft/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/two-google-chrome-privacy-issues/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/how-megaupload-was-investigated-and-indicted/posts/crunchpad-proof-obviousness-in-ipad-design/posts/the-download-dot-con/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/lies-damn-lies-and-google-statistics/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/facebook-re-enables-controversial-tracking-cookie/posts/howto-setup-secure-and-private-facebook-browsing/posts/facebook-fixes-logout-issue-explains-cookies/posts/persistant-and-unblockable-cookies-using-http-headers/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/logging-out-of-facebook-is-not-enough/posts/pain-and-gain/posts/numeronym/posts/finding-a-technical-co-founder/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/the-google-ipo-skeptics/posts/relevance-time-for-twitter/posts/fidelio-a-browser-plugin-for-secure-web-browsing/contact/privacy/tracking-cookie/posts/posts/posts/posts
1 item
/_next/image?url=%2Favatar.webp&w=128&q=75
lcp-preload: 2 potential LCP image(s) without preload (3 pages)
3 pages affected
4 items
/_next/image?url=%2Favatar.webp&w=128&q=75
/_next/image?url=%2Fimages%2Fposts%2Fcraig_wright.webp&w=1920&q=75
/images/posts/20111225-pmyb3unhb18e2drdnyr1wuna5k.jpg-20class
/_next/image?url=%2Fimages%2Fposts%2Fnik.profile.webp&w=1920&q=75
Time to First Byteperf/ttfbwarningdocs
Measures server response time (TTFB)
Solution
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)
ttfb: Slow server response (652ms) (2 pages)
2 pages affected
ttfb: Slow server response (699ms)
1 page affected
ttfb: Slow server response (725ms)
1 page affected
ttfb: Slow server response (713ms)
1 page affected
ttfb: Slow server response (796ms)
1 page affected
ttfb: Slow server response (707ms)
1 page affected
ttfb: Slow server response (721ms)
1 page affected
ttfb: Slow server response (841ms)
1 page affected
ttfb: Slow server response (659ms)
1 page affected
ttfb: Slow server response (693ms)
1 page affected
ttfb: Slow server response (606ms)
1 page affected
ttfb: Slow server response (628ms)
1 page affected
ttfb: Slow server response (631ms)
1 page affected
ttfb: Slow server response (634ms)
1 page affected
ttfb: Slow server response (644ms)
1 page affected
ttfb: Slow server response (675ms)
1 page affected
CLS Optimization Hintsperf/cls-hintswarningdocs
Checks for Cumulative Layout Shift prevention
Solution
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.
cls-images: 1 image(s) without width/height (CLS risk) (6 pages)
6 pages affected
6 items
/images/posts/Fund-20The-20Islamic-20Struggle-20Anonymously.webp
/images/posts/Disqus-20-E2-80-B9-20nikcub-20test-20-E2-80-94-20WordPress.webp
/images/posts/image66.webp
/images/posts/20111225-pmyb3unhb18e2drdnyr1wuna5k.jpg-20class
/images/posts/2689708043_3afee5af69_o.webp
/images/posts/promo.webp
cls-images: 4 image(s) without width/height (CLS risk)
1 page affected
4 items
/images/posts/blockchain-tor.webp
/images/posts/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf-20-page-2025-20of-2099-.webp
/images/posts/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf-20-page-2069-20of-2099-.webp
/images/posts/Screen-20Shot-202014-12-04-20at-202.00.01-20AM.webp
cls-images: 2 image(s) without width/height (CLS risk) (2 pages)
2 pages affected
4 items
/images/posts/gqvpbGx.webp
/images/posts/myGov-20-20Home.webp
/images/posts/5909374213_cbae62eb55_m.webp
/images/posts/5909661385_79445883de_b.webp
cls-iframes: 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
//www.scribd.com/embeds/224260090/content?start_page=1&view_mode=scroll&access_key=key-j9B707GMs1zWZwc5kLui&show_recommendations=true
DOM Sizeperf/dom-sizewarningdocs
Detects excessive DOM complexity that impacts performance
Solution
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
dom-max-children: Element with 118 children found
1 page affected
dom-total-nodes: Large DOM (2106 nodes)
1 page affected
dom-max-children: Element with 276 children found
1 page affected
Critical Request Chainsperf/critical-request-chainswarningdocs
Identifies chains of dependent resources that delay rendering
Solution
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>.
critical-request-chains: 2 critical request chain(s) found (48 pages)
48 pages affected
//posts/asides/subscribe/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/securing-blockchain-users-with-tor-and-ssl/posts/onymous-part1/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/notes-on-the-celebrity-data-theft/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/two-google-chrome-privacy-issues/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/how-megaupload-was-investigated-and-indicted/posts/google-firefox-chrome-lady-gaga/posts/crunchpad-proof-obviousness-in-ipad-design/posts/the-download-dot-con/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/lies-damn-lies-and-google-statistics/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/facebook-re-enables-controversial-tracking-cookie/posts/howto-setup-secure-and-private-facebook-browsing/posts/facebook-fixes-logout-issue-explains-cookies/posts/persistant-and-unblockable-cookies-using-http-headers/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/logging-out-of-facebook-is-not-enough/posts/pain-and-gain/posts/numeronym/posts/finding-a-technical-co-founder/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/the-google-ipo-skeptics/posts/relevance-time-for-twitter/posts/fidelio-a-browser-plugin-for-secure-web-browsing/contact/about/privacy/tracking-cookie/posts/posts/posts/posts
2 items
CSS: /_next/static/chunks/11d59d31d0dc4e0e.css?dpl=dpl_5SLwpopeDrb64tvL2Hua3zVnFW7R
JS: /_next/static/chunks/a6dad97d9634a72d.js?dpl=dpl_5SLwpopeDrb64tvL2Hua3zVnFW7R
Lazy Loading Above Foldperf/lazy-above-foldwarningdocs
Detects lazy loading on likely above-fold images
Solution
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.
lazy-above-fold: 1 above-fold image(s) with lazy loading (4 pages)
4 pages affected
4 items
/_next/image?url=%2Fimages%2Fposts%2FChcGSpBUUAArMOs.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2Fsr_reddit_screnshot.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2FScreen_Shot_2014-09-03_at_6.22.13_AM.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2Fdownload-dotcon.webp&w=1920&q=75
lazy-above-fold: 2 above-fold image(s) with lazy loading (4 pages)
4 pages affected
8 items
/_next/image?url=%2Fimages%2Fposts%2F60min-silkroad_export.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2F60_screenshot_export.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2F5909374213_cbae62eb55_m.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2F5909661385_79445883de_b.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2Fyahoo-private-key.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2Fyahoo-extension-disable.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2Ffacebook-reenable01.webp&w=1920&q=75
/_next/image?url=%2Fimages%2Fposts%2Ffacebook-reenable02.webp&w=1920&q=75

Accessibility

(7 errors, 117 warnings)
Duplicate ID ARIAa11y/duplicate-id-ariaerrordocs
Checks that IDs used in ARIA attributes are unique
Solution
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.
a11y/duplicate-id-aria-error: Rule error: CSS is not defined (2 pages)
2 pages affected
ARIA Command Namea11y/aria-command-nameerrordocs
Checks that command elements have accessible names
Solution
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').
aria-command-name: 1 command element(s) without accessible names
1 page affected
1 item
a[href="https://www.facebook.com/setti..."]
Frame Titlea11y/frame-titleerrordocs
Checks that iframes and frames have title attributes
Solution
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'>
frame-title: 2 iframe(s) without title attribute
1 page affected
2 items
iframe (www.scribd.com)
iframe (www.scribd.com)
Label Content Name Mismatcha11y/label-content-name-mismatcherrordocs
Checks that visible label text is part of accessible name
Solution
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'.
label-content-name-mismatch: 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"
Color Contrasta11y/color-contrastwarningdocs
Checks for color contrast issues in styles and classes
Solution
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 (18px+ or 14px+ bold). Use tools like WebAIM Contrast Checker to verify. Common issues: light gray text, text over images without overlay. Don't rely on color alone to convey information - add icons or text labels.
color-contrast: 10 potential color contrast issue(s) (2 pages)
2 pages affected
15 items
p with class "mt-1 text-sm text-muted-foregr..." may have low contrast
a with class "text-muted-foreground transiti..." may have low contrast
a with class "mt-4 inline-flex items-center ..." may have low contrast
h2 with class "text-xs font-medium uppercase ..." may have low contrast
p with class "text-[15px] leading-relaxed te..." may have low contrast
div with class "flex items-center gap-3 text-x..." may have low contrast
a with class "mt-8 inline-flex items-center ..." may have low contrast
p with class "mt-2 text-sm text-muted-foregr..." may have low contrast
input with class "h-10 rounded-sm border border-..." may have low contrast
div with class "flex flex-col gap-4 text-sm te..." may have low contrast
div with class "mb-6 flex flex-wrap items-cent..." may have low contrast
p with class "mb-8 text-lg text-muted-foregr..." may have low contrast
p with class "mt-2 text-center text-sm text-..." may have low contrast
figcaption with class "mt-2 text-center text-sm text-..." may have low contrast
a with class "mt-12 inline-flex items-center..." may have low contrast
color-contrast: 11 potential color contrast issue(s) (6 pages)
6 pages affected
16 items
p with class "mt-1 text-sm text-muted-foregr..." may have low contrast
a with class "text-muted-foreground transiti..." may have low contrast
a with class "inline-flex items-center gap-2..." may have low contrast
p with class "mt-2 text-muted-foreground..." may have low contrast
p with class "text-[15px] leading-relaxed te..." may have low contrast
div with class "flex items-center gap-3 text-x..." may have low contrast
div with class "text-sm text-muted-foreground..." may have low contrast
a with class "inline-flex items-center gap-1..." may have low contrast
p with class "mt-2 text-sm text-muted-foregr..." may have low contrast
input with class "h-10 rounded-sm border border-..." may have low contrast
p with class "mt-4 text-lg text-muted-foregr..." may have low contrast
p with class "text-sm text-muted-foreground..." may have low contrast
input with class "h-11 flex-1 rounded-sm border ..." may have low contrast
p with class "mt-3 text-xs text-muted-foregr..." may have low contrast
p with class "mb-4 text-sm text-muted-foregr..." may have low contrast
a with class "text-xs text-muted-foreground ..." may have low contrast
color-contrast: 7 potential color contrast issue(s) (5 pages)
5 pages affected
11 items
p with class "mt-1 text-sm text-muted-foregr..." may have low contrast
a with class "text-muted-foreground transiti..." may have low contrast
a with class "inline-flex items-center gap-2..." may have low contrast
p with class "mt-2 text-muted-foreground..." may have low contrast
p with class "mt-2 text-sm text-muted-foregr..." may have low contrast
input with class "h-10 rounded-sm border border-..." may have low contrast
div with class "flex flex-col gap-4 text-sm te..." may have low contrast
div with class "mb-6 flex flex-wrap items-cent..." may have low contrast
a with class "mt-12 inline-flex items-center..." may have low contrast
p with class "mt-4 text-lg text-muted-foregr..." may have low contrast
a with class "flex items-center gap-3 text-s..." may have low contrast
color-contrast: 8 potential color contrast issue(s) (28 pages)
28 pages affected
11 items
p with class "mt-1 text-sm text-muted-foregr..." may have low contrast
a with class "text-muted-foreground transiti..." may have low contrast
div with class "mb-6 flex flex-wrap items-cent..." may have low contrast
p with class "mb-8 text-lg text-muted-foregr..." may have low contrast
a with class "mt-12 inline-flex items-center..." may have low contrast
p with class "mt-2 text-sm text-muted-foregr..." may have low contrast
input with class "h-10 rounded-sm border border-..." may have low contrast
div with class "flex flex-col gap-4 text-sm te..." may have low contrast
a with class "inline-flex items-center gap-2..." may have low contrast
p with class "mt-4 text-lg text-muted-foregr..." may have low contrast
p with class "mt-2 text-center text-sm text-..." may have low contrast
color-contrast: 9 potential color contrast issue(s) (7 pages)
7 pages affected
9 items
p with class "mt-1 text-sm text-muted-foregr..." may have low contrast
a with class "text-muted-foreground transiti..." may have low contrast
div with class "mb-6 flex flex-wrap items-cent..." may have low contrast
p with class "mb-8 text-lg text-muted-foregr..." may have low contrast
figcaption with class "mt-2 text-center text-sm text-..." may have low contrast
a with class "mt-12 inline-flex items-center..." may have low contrast
p with class "mt-2 text-sm text-muted-foregr..." may have low contrast
input with class "h-10 rounded-sm border border-..." may have low contrast
div with class "flex flex-col gap-4 text-sm te..." may have low contrast
color-contrast: 2 potential color contrast issue(s)
1 page affected
2 items
White text (verify background): 2 instance(s)
Very light text color: 1 instance(s)
One Main Landmarka11y/landmark-one-mainwarningdocs
Checks that the page has exactly one main landmark
Solution
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.
landmark-one-main: Page has no main landmark
1 page affected
Identical Links Same Purposea11y/identical-links-same-purposewarningdocs
Checks that links with identical text go to the same destination
Solution
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.
identical-links-same-purpose: 2 link text(s) lead to different destinations (2 pages)
2 pages affected
4 items
"wired" → 3 different URLs
"the bbc" → 2 different URLs
"chrome" → 2 different URLs
"firefox" → 2 different URLs
identical-links-same-purpose: 1 link text(s) lead to different destinations (4 pages)
4 pages affected
3 items
"spec" → 3 different URLs
"twitter" → 2 different URLs
"github" → 4 different URLs
Redundant Image Alta11y/image-redundant-altwarningdocs
Checks that image alt text is not redundant with surrounding text
Solution
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.
image-redundant-alt: 1 image(s) with redundant alt text (6 pages)
6 pages affected
6 items
"Craig Wright's tweet..." duplicates figcaption
alt="blockchain-tor" matches filename
""sr_reddit_screnshot..." duplicates figcaption
"ransomware..." duplicates figcaption
"download dot con..." duplicates figcaption
"facbeook datr cookie..." duplicates figcaption
image-redundant-alt: 6 image(s) with redundant alt text
1 page affected
6 items
"60 minutes silk road..." duplicates figcaption
""60_screenshot_expor..." duplicates figcaption
""tweet_04_exported"..." duplicates figcaption
""tweet_03_exported"..." duplicates figcaption
""tweet_02_exported"..." duplicates figcaption
""tweet_01_exported"..." duplicates figcaption
image-redundant-alt: 2 image(s) with redundant alt text (2 pages)
2 pages affected
4 items
"Google Plus logo wid..." duplicates figcaption
"blockplus demo..." duplicates figcaption
"yahoo private key..." duplicates figcaption
"disable yahoo extens..." duplicates figcaption
Link Texta11y/link-textwarningdocs
Checks for descriptive link text
Solution
Link text should describe the destination, not generic phrases like 'click here'. Screen reader users often navigate by links, hearing them out of context. Good: 'View our pricing plans'. Bad: 'Click here'. For icon-only links, add aria-label: <a href='/search' aria-label='Search'><svg>...</svg></a>. Empty links are especially problematic - add text or aria-label.
link-text-generic: 1 link(s) with generic text (42 pages)
42 pages affected
//asides/subscribe/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/securing-blockchain-users-with-tor-and-ssl/posts/onymous-part1/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/notes-on-the-celebrity-data-theft/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/two-google-chrome-privacy-issues/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/how-megaupload-was-investigated-and-indicted/posts/google-firefox-chrome-lady-gaga/posts/crunchpad-proof-obviousness-in-ipad-design/posts/the-download-dot-con/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/lies-damn-lies-and-google-statistics/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/facebook-re-enables-controversial-tracking-cookie/posts/howto-setup-secure-and-private-facebook-browsing/posts/persistant-and-unblockable-cookies-using-http-headers/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/logging-out-of-facebook-is-not-enough/posts/pain-and-gain/posts/numeronym/posts/finding-a-technical-co-founder/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/the-google-ipo-skeptics/posts/relevance-time-for-twitter/posts/fidelio-a-browser-plugin-for-secure-web-browsing/contact/about/privacy/tracking-cookie
1 item
subscribe
link-text-generic: 2 link(s) with generic text (4 pages)
4 pages affected
4 items
subscribe
next
here
previous
link-text-empty: 1 link(s) with no accessible text
1 page affected
1 item
link-text-generic: 3 link(s) with generic text (2 pages)
2 pages affected
3 items
subscribe
previous
next
Skip Linka11y/skip-linkwarningdocs
Checks for bypass mechanisms for keyboard navigation
Solution
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.
skip-link: No bypass mechanism for repetitive content
1 page affected
Table Headersa11y/table-headerswarningdocs
Checks that data tables have proper headers
Solution
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'.
table-headers: 1 table(s) without <th> headers
1 page affected
1 item
Table 1
Landmark Regionsa11y/landmark-regionsinfodocs
Checks for proper landmark regions (main, nav, footer)
Solution
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.
landmark-main: No <main> landmark found
1 page affected
Table Duplicate Namea11y/table-duplicate-namewarningdocs
Checks that data tables have unique accessible names
Solution
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.
tables-without-names: 1 table(s) without accessible names
1 page affected

Core SEO

(49 errors, 61 warnings)
Meta Titlecore/meta-titleerrordocs
Validates page title presence and length
Solution
Every page needs a unique, descriptive title tag between 30-60 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.
meta-title: Title too long (69 chars, max 60) (2 pages)
2 pages affected
meta-title: Title too short (25 chars, min 30) (5 pages)
5 pages affected
meta-title: Title too short (26 chars, min 30) (2 pages)
2 pages affected
meta-title: Title too long (64 chars, max 60)
1 page affected
meta-title: Title too long (113 chars, max 60)
1 page affected
meta-title: Title too long (62 chars, max 60) (2 pages)
2 pages affected
meta-title: Title too long (78 chars, max 60)
1 page affected
meta-title: Title too long (68 chars, max 60)
1 page affected
meta-title: Title too long (123 chars, max 60)
1 page affected
meta-title: Title too long (87 chars, max 60)
1 page affected
meta-title: Title too long (93 chars, max 60)
1 page affected
meta-title: Title too long (61 chars, max 60)
1 page affected
meta-title: Title too long (107 chars, max 60)
1 page affected
meta-title: Title too long (72 chars, max 60)
1 page affected
meta-title: Title too long (70 chars, max 60)
1 page affected
meta-title: Title too long (79 chars, max 60)
1 page affected
meta-title: Title too long (67 chars, max 60)
1 page affected
meta-title: Title too short (24 chars, min 30) (2 pages)
2 pages affected
Meta Descriptioncore/meta-descriptionerrordocs
Validates meta description presence and length
Solution
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.
meta-description: Description too short (54 chars, min 120) (5 pages)
5 pages affected
meta-description: Description too short (62 chars, min 120)
1 page affected
meta-description: Description too short (115 chars, min 120)
1 page affected
meta-description: Description too long (172 chars, max 160)
1 page affected
meta-description: Description too long (168 chars, max 160)
1 page affected
meta-description: Description too long (170 chars, max 160) (2 pages)
2 pages affected
meta-description: Description too short (106 chars, min 120)
1 page affected
meta-description: Description too short (41 chars, min 120)
1 page affected
meta-description: Description too long (163 chars, max 160) (2 pages)
2 pages affected
meta-description: Description too short (47 chars, min 120)
1 page affected
meta-description: Description too long (182 chars, max 160)
1 page affected
meta-description: Description too short (70 chars, min 120)
1 page affected
meta-description: Description too short (117 chars, min 120)
1 page affected
meta-description: Description too short (79 chars, min 120) (2 pages)
2 pages affected
meta-description: Missing meta description
1 page affected
Canonical URLcore/canonicalwarningdocs
Validates canonical URL presence and format
Solution
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".
canonical: Missing canonical URL
1 page affected
Charsetcore/charsetwarningdocs
Checks for proper character encoding declaration
Solution
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.
charset: No charset declaration found (48 pages)
48 pages affected
//posts/asides/subscribe/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/securing-blockchain-users-with-tor-and-ssl/posts/onymous-part1/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/notes-on-the-celebrity-data-theft/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/two-google-chrome-privacy-issues/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/how-megaupload-was-investigated-and-indicted/posts/google-firefox-chrome-lady-gaga/posts/crunchpad-proof-obviousness-in-ipad-design/posts/the-download-dot-con/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/lies-damn-lies-and-google-statistics/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/facebook-re-enables-controversial-tracking-cookie/posts/howto-setup-secure-and-private-facebook-browsing/posts/facebook-fixes-logout-issue-explains-cookies/posts/persistant-and-unblockable-cookies-using-http-headers/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/logging-out-of-facebook-is-not-enough/posts/pain-and-gain/posts/numeronym/posts/finding-a-technical-co-founder/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/the-google-ipo-skeptics/posts/relevance-time-for-twitter/posts/fidelio-a-browser-plugin-for-secure-web-browsing/contact/about/privacy/tracking-cookie/posts/posts/posts/posts
Open Graph Tagscore/og-tagswarningdocs
Validates Open Graph meta tags for social sharing
Solution
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.
og-title: Missing og:title
1 page affected
1 item
og-description: Missing og:description
1 page affected
1 item
og-image: Missing og:image - social shares will lack imagery
1 page affected
1 item
Title Uniquenesscore/title-uniquewarningdocs
Checks that page titles are unique across the site
Solution
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.
title-unique: 1 duplicate title(s) affecting 5 pages
1 item
"articles | nik cubrilovic..." (5 pages)
from: /posts
from: /posts
from: /posts
... +2 more pages
Faviconcore/faviconwarningdocs
Checks for favicon presence
Solution
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.
favicon: No favicon found
1 page affected
Twitter Cardscore/twitter-cardsinfodocs
Validates Twitter Card meta tags
Solution
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.
twitter-card: No Twitter card or Open Graph tags for Twitter sharing
1 page affected

Images

(58 warnings)
Offscreen Image Lazy Loadingimages/offscreen-lazywarningdocs
Checks if offscreen images use lazy loading
Solution
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.
offscreen-images-not-lazy: 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
Screen-20Shot-202014-12-04-20at-202.00.01-20AM.webp
Responsive Image Sizeimages/responsive-sizewarningdocs
Checks if images are sized appropriately for their display size
Solution
Serve images at appropriate sizes for their display dimensions. Oversized images waste bandwidth and slow page load. Undersized images look blurry on high-DPI displays. Use srcset to serve different sizes for different screens. For responsive images, serve 1x, 2x, and optionally 3x versions. Image CDNs can automatically resize images on-the-fly.
images-possibly-oversized: 1 small image(s) may be serving oversized files (48 pages)
48 pages affected
//posts/asides/subscribe/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/securing-blockchain-users-with-tor-and-ssl/posts/onymous-part1/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/notes-on-the-celebrity-data-theft/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/two-google-chrome-privacy-issues/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/how-megaupload-was-investigated-and-indicted/posts/google-firefox-chrome-lady-gaga/posts/crunchpad-proof-obviousness-in-ipad-design/posts/the-download-dot-con/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/lies-damn-lies-and-google-statistics/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/facebook-re-enables-controversial-tracking-cookie/posts/howto-setup-secure-and-private-facebook-browsing/posts/facebook-fixes-logout-issue-explains-cookies/posts/persistant-and-unblockable-cookies-using-http-headers/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/logging-out-of-facebook-is-not-enough/posts/pain-and-gain/posts/numeronym/posts/finding-a-technical-co-founder/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/the-google-ipo-skeptics/posts/relevance-time-for-twitter/posts/fidelio-a-browser-plugin-for-secure-web-browsing/contact/about/privacy/tracking-cookie/posts/posts/posts/posts
1 item
image (56x56, no srcset)
Image Dimensionsimages/dimensionswarningdocs
Checks for width/height attributes (prevents CLS)
Solution
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.

Security

(50 warnings)
Content Security Policysecurity/cspwarningdocs
Checks for Content-Security-Policy header and validates directives
Solution
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.
csp-missing: No Content-Security-Policy header
Site vulnerable to XSS without CSP
Form CAPTCHAsecurity/form-captchawarningdocs
Checks for CAPTCHA protection on public forms
Solution
Add CAPTCHA protection (reCAPTCHA, Cloudflare Turnstile, hCaptcha, 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 CAPTCHA solutions like Turnstile offer invisible protection with minimal user friction.
form-captcha: 1 public form(s) without CAPTCHA (47 pages)
47 pages affected
//posts/asides/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/securing-blockchain-users-with-tor-and-ssl/posts/onymous-part1/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/notes-on-the-celebrity-data-theft/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/two-google-chrome-privacy-issues/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/how-megaupload-was-investigated-and-indicted/posts/google-firefox-chrome-lady-gaga/posts/crunchpad-proof-obviousness-in-ipad-design/posts/the-download-dot-con/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/lies-damn-lies-and-google-statistics/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/facebook-re-enables-controversial-tracking-cookie/posts/howto-setup-secure-and-private-facebook-browsing/posts/facebook-fixes-logout-issue-explains-cookies/posts/persistant-and-unblockable-cookies-using-http-headers/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/logging-out-of-facebook-is-not-enough/posts/pain-and-gain/posts/numeronym/posts/finding-a-technical-co-founder/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/the-google-ipo-skeptics/posts/relevance-time-for-twitter/posts/fidelio-a-browser-plugin-for-secure-web-browsing/contact/about/privacy/tracking-cookie/posts/posts/posts/posts
1 item
form[0]
form-captcha: 2 public form(s) without CAPTCHA
1 page affected
2 items
form[0]
form[1]
HTTP to HTTPS Redirectsecurity/http-to-httpswarningdocs
Checks whether HTTP URLs redirect to HTTPS
Solution
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.
http-to-https: 20 HTTP URL(s) redirect to HTTPS
20 items
(41 warnings)
Broken External Linkslinks/broken-external-linkswarningdocs
Detects external links returning 4xx/5xx errors or timeouts
Solution
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.
broken-external-links: 72 broken external link(s): 26 with 404, 2 with 429, 26 failed, 3 with 520, 5 with 500, 1 with 403, 3 with 401, 5 with 503, 1 with 999
72 items
HTTPS Downgradelinks/https-downgradewarningdocs
Detects links from HTTPS pages to HTTP destinations
Solution
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.
https-downgrade: 21 link(s) downgrade to HTTP
1 page affected
21 items
https-downgrade: 7 link(s) downgrade to HTTP (5 pages)
5 pages affected
34 items
https-downgrade: 9 link(s) downgrade to HTTP (2 pages)
2 pages affected
17 items
https-downgrade: 4 link(s) downgrade to HTTP (7 pages)
7 pages affected
28 items
Orphan Pageslinks/orphan-pageswarningdocs
Detects pages with no internal links pointing to them
Solution
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.
orphan-pages: 25 orphan page(s) with <2 incoming links
25 items
Anchor Textlinks/anchor-textwarningdocs
Checks for empty or generic anchor text
Solution
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.
Internal Linkslinks/internal-linkswarningdocs
Validates internal link count
Solution
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.
internal-links: Too few internal links (0, min 1)
1 page affected
Dead-End Pageslinks/dead-end-pageswarningdocs
Pages with no outgoing internal links, potentially trapping users
Solution
Add navigation links or related content links to help users continue browsing. Internal links improve user experience and help search engines discover content.
dead-end: Page has no outgoing internal links (dead-end)
1 page affected
Weak Internal Linkslinks/weak-internal-linkswarningdocs
Detects pages with only 1 dofollow internal link pointing to them
Solution
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.
weak-internal-links: 24 page(s) have only 1 internal link
24 items

Content

(6 errors, 33 warnings)
Meta Tags in Bodycontent/meta-in-bodyerrordocs
Detects meta tags incorrectly placed in document body
Solution
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.
meta-in-body: Found 16 meta tags in <body> (6 pages)
6 pages affected
16 items
description="Long-form writing on security, privacy, and techno..."
og:title="Articles"
og:description="Long-form writing on security, privacy, and techno..."
og:url="https://nikcub.me/posts"
og:site_name="Nik Cubrilovic"
og:locale="en_US"
og:image="https://nikcub.me/og-default.png"
og:image:width="1200"
og:image:height="630"
og:image:alt="Articles"
og:type="website"
twitter:card="summary_large_image"
twitter:creator="@nikcub"
twitter:title="Articles"
twitter:description="Long-form writing on security, privacy, and techno..."
twitter:image="https://nikcub.me/og-default.png"
Duplicate Titlecontent/duplicate-titlewarningdocs
Checks for duplicate title tags across the site
Solution
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.
duplicate-title: 1 duplicate title(s) found across 5 pages
1 item
"articles | nik cubrilovic..." (5 pages)
from: /posts
from: /posts
from: /posts
... +2 more pages
Duplicate Descriptioncontent/duplicate-descriptionwarningdocs
Checks for duplicate meta descriptions across the site
Solution
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.
duplicate-description: 1 duplicate description(s) found across 5 pages
1 item
"long-form writing on security, privacy, ..." (5 pages)
from: /posts
from: /posts
from: /posts
... +2 more pages
Keyword Stuffingcontent/keyword-stuffingwarningdocs
Detects excessive keyword repetition in content
Solution
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.
keyword-stuffing: 2 word(s) may be overused (3 pages)
3 pages affected
6 items
"google" (4.4%)
"blockplus" (3.3%)
"character" (3.6%)
"logo" (3.3%)
"facebook" (3.9%)
"cookie" (3.2%)
keyword-stuffing: 4 word(s) may be overused
1 page affected
4 items
"deleted" (9.2%)
"request" (4.6%)
"facebook" (3.9%)
"lzfw" (3.9%)
Word Countcontent/word-countwarningdocs
Checks content length for thin content issues
Solution
Pages with thin content (under 300 words) often struggle to rank well. Search engines prefer comprehensive content that thoroughly covers a topic. Add more valuable, relevant content to thin pages. Aim for at least 500 words for standard pages and 1000+ for in-depth articles. Focus on quality over quantity—padding with fluff hurts user experience. Consider consolidating multiple thin pages into one comprehensive resource.
word-count: Thin content: 250 words (min 300)
1 page affected
word-count: Thin content: 40 words (min 300)
1 page affected
word-count: Thin content: 78 words (min 300)
1 page affected
word-count: Thin content: 289 words (min 300)
1 page affected
word-count: Thin content: 220 words (min 300)
1 page affected
word-count: Thin content: 80 words (min 300)
1 page affected
word-count: Thin content: 182 words (min 300)
1 page affected
word-count: Thin content: 186 words (min 300)
1 page affected
word-count: Thin content: 189 words (min 300)
1 page affected
word-count: Thin content: 218 words (min 300)
1 page affected

Structured Data

(36 errors)
JSON-LD Validschema/json-ld-validwarningdocs
Validates JSON-LD structured data
Solution
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.
json-ld-valid: Invalid JSON-LD syntax (36 pages)
36 pages affected
/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/securing-blockchain-users-with-tor-and-ssl/posts/onymous-part1/posts/60-minutes-australia-on-silk-road-and-bitcoin/posts/analyzing-fbi-explanation-silk-road/posts/notes-on-the-celebrity-data-theft/posts/multiple-vulnerabilities-in-disqus-wordpress-plugin/posts/cs-cart-v4-2-0-session-hijacking-and-other-vulnerabilities/posts/multiple-vulnerabilities-in-mygov-australian-government/posts/two-google-chrome-privacy-issues/posts/blockplus-v4-released-block-google-widgets-and-links-from-other-google-sites/posts/yahoo-axis-chrome-extension-leaks-private-certificate-file/posts/facebook-also-doesnt-honor-p3p/posts/facebook-is-losing-e-commerce/posts/how-megaupload-was-investigated-and-indicted/posts/google-firefox-chrome-lady-gaga/posts/crunchpad-proof-obviousness-in-ipad-design/posts/the-download-dot-con/posts/frictionless-browser-plugin/posts/google-android-the-accidental-empire/posts/lies-damn-lies-and-google-statistics/posts/unicode-uf8ff-aka-the-apple-logo-character-on-macs/posts/facebook-re-enables-controversial-tracking-cookie/posts/howto-setup-secure-and-private-facebook-browsing/posts/facebook-fixes-logout-issue-explains-cookies/posts/persistant-and-unblockable-cookies-using-http-headers/posts/blockplus-a-browser-extension-to-block-google-notifications/posts/logging-out-of-facebook-is-not-enough/posts/pain-and-gain/posts/numeronym/posts/finding-a-technical-co-founder/posts/guide-to-finding-a-good-and-safe-company-or-product-name/posts/the-google-ipo-skeptics/posts/relevance-time-for-twitter/posts/fidelio-a-browser-plugin-for-secure-web-browsing
2 items
Validation: Article.publisher.logo is required
Article missing publisher.logo

Crawlability

(6 warnings)
Canonical Chaincrawl/canonical-chainwarningdocs
Checks for redirect chains on canonical URLs
Solution
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-redirect-chain: Page redirects before content is served
1 page affected
1 item
Sitemap Coveragecrawl/sitemap-coveragewarningdocs
Checks for indexable pages that are not in the sitemap
Solution
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.
sitemap-coverage: 1 indexable page(s) not in sitemap (2%)
1 item
Paginationcrawl/paginationinfodocs
Checks that paginated pages have proper canonicals
Solution
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.
pagination-canonical: Paginated page canonicalizes to non-paginated URL (4 pages)
4 pages affected

E-E-A-T

(2 warnings)
Author Bylineseeat/author-bylinewarningdocs
Checks for visible author names on content pages
Solution
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.
author-byline: Only 0% of content pages have author attribution
Add author bylines to build E-E-A-T
Content Dateseeat/content-dateswarningdocs
Checks for published and modified dates on content
Solution
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.
date-published: Only 0% of content has datePublished
Add dates to Article schema
(1 warning)
Privacy Policylegal/privacy-policywarningdocs
Checks for privacy policy link presence
Solution
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.
privacy-policy: No privacy policy link found
1 page affected

URL Structure

(1 warning)
URL Lengthurl/lengthinfodocs
Checks URL length for optimal SEO
Solution
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.