YourSiteIsBroken · Website Intelligence

Website Health & AI-Readiness Report

Sample Client: Independent Bookstore (demo) · books.toscrape.com
September 13, 2026 · 25 pages audited · 260+ checks · 21 categories
Google sees a fraction of this site — the fix list is small and worth real money
31
Overall · F
100
AI-Readiness
101
Critical errors
607
Warnings
2047
Checks passed
46
Fix-plan items
01 · Executive briefing

What we found, and what it means

The short version, written for decision-makers — not developers.

YourSiteIsBroken Analyst · 260-check dataset · books.toscrape.com · claude engine

We crawled all 25 pages of books.toscrape.com the way a search engine does and ran 260+ checks across 21 categories. The site scored 31/100 — grade F. That number is not a verdict on the business; it is a measurement of how much of this website search engines and browsers can actually use. Right now, roughly one check in three fails: 101 failed checks and 607 warnings, concentrated in security (34/100), core SEO (37/100) and performance (41/100).

The pattern behind the score is consistent: the store works when a human opens it in a browser, but it is nearly invisible to machines. There is no XML sitemap and no robots.txt, so Google discovers pages by luck. Twenty of twenty-five pages ship without a meta description, so Google writes its own snippets — and its versions rarely sell. Every page loads an insecure script over HTTP, which modern browsers flag as mixed content. There is no About page, no Contact page, no privacy policy — the trust signals Google's quality systems look for, and the pages customers look for before spending money.

Here is the encouraging part: almost nothing on this list is structural. A sitemap is one generated file. Descriptions are an afternoon of copywriting. The mixed-content script is one line to fix. This is the rare kind of F grade that climbs to a B in a single focused week — and the traffic difference between the two is typically the difference between a shop search engines ignore and one they send customers to.

02 · Priority findings

The five issues costing you the most

Ranked by business impact — severity × category weight × pages affected.

1
Core SEO

errorMeta Description

Twenty of your twenty-five pages have no meta description, so Google invents its own snippet from whatever text it finds first — usually navigation or boilerplate. You are leaving the single cheapest conversion lever in SEO unused: pages with written descriptions earn meaningfully more clicks at the same ranking. This is an afternoon of work for a permanent lift on every search result you appear in.

The 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.
Affecting ~20 of 25 audited page(s)
2
Security

errorMixed Content

Every page on the site loads at least one script over plain HTTP while the page itself is HTTPS. Modern browsers flag this as mixed content and may block the script outright — showing visitors (and Chrome's security indicators) an inconsistent, less trustworthy site. Beyond the trust cost, it can silently break page features. This is usually a one-line fix that removes a warning every visitor's browser is evaluating.

The fix: Mixed content occurs when an HTTPS page loads resources over HTTP, breaking the security chain. Browsers may block these resources. Update all resource URLs to use HTTPS or protocol-relative URLs (//example.com). Check images, scripts, stylesheets, fonts, and iframes. Use Content-Security-Policy: upgrade-insecure-requests to automatically upgrade HTTP to HTTPS.
Affecting ~25 of 25 audited page(s)
3
Core SEO

warningCanonical URL

No page declares a canonical URL. The store's URLs contain tracking and pagination parameters, so Google can index the same product under several addresses — splitting each page's ranking power across duplicates and occasionally ranking the wrong variant. Declaring canonicals tells Google which address is the real one, consolidating every signal onto a single URL per page.

The 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".
Affecting ~25 of 25 audited page(s)
4
Core SEO

warningCharset

Pages ship without a charset declaration, so browsers and crawlers guess the text encoding. Guess wrong and accented characters and symbols render as mojibake — in titles, in snippets, and in your listings on Google. It is a one-line declaration in the page head that eliminates an entire class of rendering roulette for both visitors and search engines.

The 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.
Affecting ~25 of 25 audited page(s)
5
Core SEO

warningOpen Graph Tags

Open Graph tags are missing, which means every link shared on social media, Slack, or Discord renders as a bare URL instead of a titled card with a product image. For a bookstore — a category where covers sell books — sharing is a genuine acquisition channel, and right now every share arrives undressed. Complete OG tags turn each share into a small advertisement.

The 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.
Affecting ~25 of 25 audited page(s)
03 · AI-Readiness

Can AI assistants recommend you?

How ChatGPT, Perplexity, Gemini and Google AI Overviews experience your site today.

100
AI-Readiness
Verdict · AI-ready today — a rare strength

Here is the surprise in your data: the site scores 100/100 on AI-Readiness. AI crawlers are not blocked, the content parses cleanly, and assistants like ChatGPT and Perplexity can read every page you publish. Among the sites we audit, that is genuinely uncommon — most businesses discover they are invisible to AI answers; you are not.

But treat this as an asset to protect, not a finished job. Your AI-readiness matters exactly as much as your discoverability — and today the missing sitemap, descriptions and structured data mean there is less for both Google and AI assistants to work with. Keep crawler access open, and when the fix plan's structured-data items land, AI answers will have rich, citable facts about your catalog to draw on.

04 · Scorecards

Every category, scored

21 categories from 0–100, weakest first, with analyst notes.

Security
34
34/100 — beyond the mixed-content failure, the site ships none of the standard hardening headers (CSP, HSTS, X-Frame-Options, SRI). Any one of them is a small fix; together they are what security scanners and cautious buyers check.
Core SEO
37
37/100 — titles, descriptions, canonicals and charset declarations are missing or incomplete across the site. This is the highest-leverage category on the list: every fix here compounds across all 25 pages.
Performance
41
41/100 — a 150KB+ stylesheet, duplicate JavaScript libraries and unminified scripts slow every page. The fix plan's performance items are the ones visitors will feel first.
E-E-A-T
44
44/100 — no About page, no Contact page, no privacy policy. These are the trust pages both Google's quality systems and first-time buyers look for before taking a website seriously.
Legal Compliance
44
Images
46
Crawlability
58
58/100 — no sitemap and no robots.txt. The store is navigable by humans and largely unnavigable by machines; a generated sitemap fixes the map, robots.txt fixes the rules.
URL Structure
59
Content
62
Accessibility
74
AI-Readiness
100
Site Integrity
100
Links
100
Mobile
100
Social Media
100
05 · Complete fix plan

Every finding, prioritized

Hand this to any developer — each row carries its own fix guidance.

Issue & fixCategoryPages
errorMeta Description 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 t… Core SEO ~20
errorMixed Content Mixed content occurs when an HTTPS page loads resources over HTTP, breaking the security chain. Browsers may block these resources. Update all resource URLs to use HTTPS or protocol-relative URLs (//example.com). Check images, scripts, stylesheets, fonts, and … Security ~25
warningCanonical URL 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="...&quo… Core SEO ~25
warningCharset 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… Core SEO ~25
warningOpen Graph Tags 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… Core SEO ~25
warningCSS File Size Too Large Large CSS files slow down rendering and increase bandwidth. Split large stylesheets into smaller chunks, remove unused selectors, and minify CSS. Consider critical CSS inlining for above-the-fold styles and lazy-loading non-critical CSS. Performance ~25
warningCritical Request Chains 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 … Performance ~25
warningDuplicate JavaScript Remove duplicate JavaScript library loads to reduce page weight and avoid conflicts. Check for the same library loaded from different CDNs or versions. Use a single source for each dependency. Consider using a module bundler to deduplicate shared dependencies. Performance ~25
warningJS Libraries Keep JavaScript libraries updated to their latest versions. Outdated libraries may contain security vulnerabilities that attackers can exploit. Consider replacing large libraries like jQuery with modern vanilla JavaScript or smaller alternatives. Use npm audit… Performance ~25
warningUnminified JavaScript Minify JavaScript to reduce file size and improve load times. Use build tools like Terser, esbuild, or UglifyJS. Most bundlers (Webpack, Vite, Rollup) minify automatically in production. Minification shortens variable names, removes whitespace, and dead code. Performance ~25
warningCache Headers Use Cache-Control headers to enable browser caching. For static assets (CSS, JS, images), set long max-age (1 year) with immutable when using hashed filenames. For HTML, use shorter max-age or no-cache with revalidation. Example: 'Cache-Control: public, ma… Performance ~25
warningLCP Image Fetch Priority The Largest Contentful Paint image should be discovered and fetched as early as possible. When the hero image is loaded eagerly but left at default priority, the browser races it against other resources and LCP suffers. Add fetchpriority='high' to the … Performance ~25
warningLCP Optimization Hints 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 ren… Performance ~24
errorSitemap Exists XML sitemaps help search engines discover and index your pages. Create a sitemap.xml at your domain root listing all important pages. Reference it in robots.txt with 'Sitemap: https://yoursite.com/sitemap.xml'. Submit it to Google Search Console and Bi… Crawlability
errorRobots.txt robots.txt tells search engines which pages to crawl. Place it at the root of your domain (example.com/robots.txt). Include your sitemap URL. Avoid blocking important resources (CSS, JS, images) that search engines need to render pages. Never use 'Disallow… Crawlability
warningCLS Optimization Hints 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 medi… Performance ~20
warningSubresource Integrity Cross-origin scripts and stylesheets can be tampered with in transit or at the source (a compromised CDN or third-party host), and the browser has no way to detect it without help. Add an integrity attribute with a sha256/sha384/sha512 hash of the expected fil… Security ~25
warningMeta Title 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… Core SEO ~7
warningTitle Uniqueness 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 t… Core SEO ~3
infoTwitter Cards 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_larg… Core SEO ~25
warningOne Main Landmark 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>, & Accessibility ~25
warningSkip Link 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> Accessibility ~25
warningKeyword Stuffing 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 … Content ~15
warningWeak Caching (site-wide) Set Cache-Control with an appropriate max-age on every response (short for HTML, long + immutable for hashed static assets), expose an ETag or Last-Modified for cheap revalidation, and enable gzip/Brotli for text responses. Consistent caching across the whole … Performance ~5
warningWord Count 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 a… Content ~9
infoINP Optimization Hints INP measures responsiveness to user interactions. Improve by: 1) Minimize third-party scripts that block the main thread. 2) Use async/defer for non-critical scripts. 3) Break up long JavaScript tasks into smaller chunks. 4) Use web workers for heavy computati… Performance ~25
warningImage Dimensions 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 respons… Images ~25
warningOffscreen Image Lazy Loading 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. Images ~22
warningHeading Hierarchy Proper heading structure (H1 → H2 → H3) helps users and search engines understand your content organization. Skipping levels (H1 → H3) creates confusion. Use headings in sequential order without skipping levels. Each section should use the next heading level d… Content ~5
warningContent Security Policy 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 has… Security
warningHSTS Header HSTS forces browsers to only connect via HTTPS, preventing downgrade attacks. Add the header: Strict-Transport-Security: max-age=31536000; includeSubDomains. Start with a short max-age (1 day) to test, then increase to 1 year. The includeSubDomains directive p… Security
warningX-Frame-Options X-Frame-Options prevents your site from being embedded in iframes, protecting against clickjacking attacks. Set: X-Frame-Options: DENY (no framing) or SAMEORIGIN (same origin only). For modern browsers, CSP frame-ancestors is preferred: Content-Security-Policy… Security
warningDuplicate Title 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 ke… Content ~3
warningHeading Order Headings should follow a logical hierarchy without skipping levels. Screen reader users navigate by headings, so skipping from H1 to H3 is confusing. Correct order: H1 -> H2 -> H3 (not H1 -> H3). You can have multiple headings at the same level, and y… Accessibility ~5
warningAbout Page An About page establishes credibility and trust. Include company history, mission, team overview, and credentials. Link from main navigation or footer. For E-E-A-T, explain your expertise and why visitors should trust you. Include contact information and physi… E-E-A-T
warningContact Page A contact page with multiple contact methods builds trust. Include: email address or contact form, phone number (if applicable), physical address, and social media links. Make contact information easy to find from any page. For local businesses, include busine… E-E-A-T
warningPrivacy Policy A privacy policy is required by law in many jurisdictions (GDPR, CCPA) and signals trustworthiness. Link it from your footer on every page. Cover: what data you collect, how you use it, third-party sharing, user rights, and contact for privacy concerns. Keep i… E-E-A-T
warningLink Text 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… Accessibility ~4
warningURL Hyphens Use hyphens (-) to separate words in URLs, not underscores (_). Google treats hyphens as word separators but treats underscores as word joiners. 'blue-shoes' = 'blue' + 'shoes', but 'blue_shoes' = 'blueshoes'. This affec… URL Structure ~22
infoLandmark Regions 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… Accessibility ~25
warningPrivacy Policy 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… Legal Compliance
infollms.txt llms.txt (llmstxt.org) is a Markdown file at your domain root that points AI agents and answer engines at your most useful, clean content. Add a /llms.txt with an H1 title, a short summary, and sections of Markdown links to key pages; optionally add /llms-full… Agent Experience
infoMarkdown Response Agents and answer engines parse Markdown more reliably than rendered HTML. Serve a Markdown representation of your key pages: honor `Accept: text/markdown` via content negotiation, and/or publish a `.md` variant (e.g. /index.md). This is a recommendation only … Agent Experience
infoImage Optimization Optimize images to reduce file sizes without visible quality loss. Use tools like Squoosh, ImageOptim, or TinyPNG. Consider using an image CDN (Cloudinary, Imgix, Cloudflare Images) for automatic optimization and responsive delivery. Modern formats (WebP, AVIF… Images ~22
infoSub-processor Disclosure Under GDPR Art. 28, processors must disclose the sub-processors they engage and offer a Data Processing Agreement (DPA). Publish a /subprocessors page listing each third party that handles customer personal data (purpose, location), keep it current, and link a… Legal Compliance
infoURL Length 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 descripti… URL Structure ~6
06 · Roadmap

Your next 90 days

The same fixes, sequenced so the fastest wins come first.

Week 1 · Quick wins
Ship the four fixes with the highest return on effort this week: generate and submit an XML sitemap, add a robots.txt, fix the mixed-content script, and declare charset on every template. Each is a small, contained change — together they unblock crawling and clear the browser warnings.
  • Meta Description
  • Mixed Content
  • Sitemap Exists
  • Robots.txt
Month 1 · Structural
Weeks two to four are the content and trust pass: write meta descriptions and Open Graph tags for every page, declare canonicals, and publish the three missing trust pages — About, Contact, and a privacy policy. This is where the grade climbs from F toward B and where search consoles start showing the difference.
  • Canonical URL
  • Charset
  • Open Graph Tags
  • CSS File Size Too Large
Months 2–3 · Polish & protect
From month two, shift to polish and protection: performance work (minifying scripts, deduplicating libraries, right-sizing images) and the security headers. Then keep it — sites drift, and a monthly re-audit catches a broken sitemap or a new mixed-content script while it is still a one-line fix.
  • Critical Request Chains
  • Duplicate JavaScript
  • JS Libraries
07 · Final word

Where this goes

This report tells a story that is common and very fixable: a store built for human eyes that never learned to speak to machines. The fix list is unusually favorable — no rebuild, no migration, just a disciplined week of fundamentals. Work the plan top to bottom, re-audit when you reach the end, and the delta will show up where it matters: in impressions, in clicks, and at the till.