stashed.pages.devscanned Jul 5, 2026 · 11:010.14s
Public AI visibility report

stashed.pages.devAI visibilityPoor

This site is difficult for AI tools to read right now.

The main areas needing attention are plain-text page access and sitemap.

Recommended next step

add content negotiation for Accept: text/markdown on the homepage and return a markdown representation with Content-Type: text/markdown.

Keep the HTML response for regular browser requests.

Turn this scan into weekly monitoring.

Send yourself a magic link that opens a workspace already watching this domain for weekly AI visibility changes.

Overall score

32/100
Poor
Download PDF
Go to fixesOverall position1,022 out of 1,169Leaderboard

// score breakdown

Points by check

8 checks

Crawlability10/20
Robots.txt7.5/15
llms.txt7.5/15
Sitemap0/10
Markdown support0/15
Semantic HTML7.1/10
Structured data0/10
Content signals0/5
0pass4warn4fail

Public link

llmscan.dev/scan/wR4TSK4hxov_OPaIrimiQ

Signals checked

8 AI visibility signals

Fix bundle

4 copy-ready files

Share badge

Poor · 32/100

Add a polished proof badge

A compact badge for footer, press, or trust sections that links visitors to this public report.

Embed codellmscan.dev/scan/wR4TSK4hxov_OPaIrimiQ
<a href="https://www.llmscan.dev/scan/wR4TSK4hxov_OPaIrimiQ"
  target="_blank"
  rel="noopener"
>
  <img
    src="https://www.llmscan.dev/scan/wR4TSK4hxov_OPaIrimiQ/badge.png"
    alt="LLM Scan AI visibility score badge"
    width="460"
    height="120"
    style="width: 260px; max-width: 100%; height: auto;"
  />
</a>
Open badge
L
LLM Scan
Poor
Score
32/100

Share your score

Post the public report with: “We scored 32/100 for AI-readability.”

Download fixes

Grab generated files and implementation notes for the highest-impact gaps.

Rescan weekly

Save this domain to catch regressions after content, sitemap, or robots changes.

Monitor weekly

// signal breakdown

8 signals AI systems depend on

The homepage is reachable, but no canonical link tag was found.

Signal weight

10/20
Warn

Evidence

url
https://stashed.pages.dev/
finalUrl
https://stashed.pages.dev/
status
200

Recommendation

Next step: Serve a non-empty HTML homepage with a canonical link tag that points to the preferred public URL.

The robots.txt file was found, but it contains formatting issues.

Signal weight

8/15
Warn

Evidence

robotsTxtUrl
https://stashed.pages.dev/robots.txt
exists
true
rawRobotsTxt
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="icon" type="image/png" sizes="32x32" href="/icon/32.png" /> <link rel="icon" type="image/png" sizes="16x16" href="/icon/16.png" /> <link rel="apple-touch-icon" href="/icon/128.png" /> <title>Stashed — Save & Find Anything on the Web</title> <meta name="description" content="Stashed replaces the bookmark graveyard with a personal memory for the web. Save any page in one click and find it again in seconds with smart tags and full-text search." /> <style> :root { --bg: #0d0f14; --panel: #151821; --panel-2: #1b1f2b; --line: #262b38; --text: #eef1f6; --text-2: #aab2c4; --text-3: #7e879b; --accent: #6e8bff; --accent-2: #8a7bff; --ok: #3ecf8e; --radius: 16px; --max: 960px; } * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background: var(--bg); color: var(--text); line-height: 1.55; -webkit-font-smoothing: antialiased; } a { color: inherit; } .wrap { max-width: var(--max); margin: 0 auto; padding: 0 24px; } /* nav */ nav { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; max-width: var(--max); margin: 0 auto; } .brand { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 18px; letter-spacing: -0.01em; } .brand .dot { width: 22px; height: 22px; object-fit: contain; } .nav-links { display: flex; gap: 22px; font-size: 14px; color: var(--text-2); } .nav-links a:hover { color: var(--text); } /* hero */ header { padding: 64px 0 40px; text-align: center; } .tag { display: inline-block; font-size: 12.5px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--accent); background: rgba(110, 139, 255, 0.1); border: 1px solid rgba(110, 139, 255, 0.25); padding: 5px 12px; border-radius: 999px; margin-bottom: 22px; } h1 { font-size: clamp(34px, 6vw, 56px); line-height: 1.05; letter-spacing: -0.03em; font-weight: 800; margin-bottom: 18px; } h1 .grad { background: linear-gradient(120deg, var(--accent), var(--accent-2)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .sub { font-size: clamp(16px, 2.4vw, 20px); color: var(--text-2); max-width: 620px; margin: 0 auto 30px; } .cta { display: inline-flex; align-items: center; gap: 9px; background: linear-gradient(120deg, var(--accent), var(--accent-2)); color: #fff; font-weight: 600; font-size: 15px; padding: 13px 26px; border-radius: 12px; text-decoration: none; box-shadow: 0 8px 30px rgba(110, 139, 255, 0.3); } .cta:hover { filter: brightness(1.07); } .cta-note { display: block; margin-top: 14px; font-size: 13px; color: var(--text-3); } .ph-badge { margin-top: 22px; } .ph-badge img { display: inline-block; height: 54px; width: 250px; } /* download buttons */ .cta-row { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; } .btn-store { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 15px; padding: 13px 24px; border-radius: 12px; text-decoration: none; transition: transform 0.12s ease, filter 0.12s ease, border-color 0.12s ease; } .btn-store svg { width: 20px; height: 20px; flex: 0 0 20px; } .btn-store:hover { transform: translateY(-1px); } .btn-chrome { background: linear-gradient(120deg, var(--accent), var(--accent-2)); color: #fff; box-shadow: 0 8px 30px rgba(110, 139, 255, 0.3); } .btn-chrome:hover { filter: brightness(1.07); } .btn-firefox { background: var(--panel); color: var(--text); border: 1px solid var(--line); } .btn-firefox:hover { border-color: #5b6478; } .nav-cta { display: inline-flex; align-items: center; gap: 7px; background: linear-gradient(120deg, var(--accent), var(--accent-2)); color: #fff; font-weight: 600; padding: 8px 16px; border-radius: 10px; box-shadow: 0 6px 20px rgba(110, 139, 255, 0.25); } .nav-cta:hover { filter: brightness(1.08); color: #fff; } /* sections */ section { padding: 50px 0; } .eyebrow { text-align: center; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); margin-bottom: 10px; } h2 { text-align: center; font-size: clamp(24px, 4vw, 34px); letter-spacing: -0.02em; font-weight: 800; margin-bottom: 36px; } /* features */ .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; } .card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; } .card h3 { font-size: 16.5px; font-weight: 700; margin-bottom: 8px; letter-spacing: -0.01em; } .card p { font-size: 14.5px; color: var(--text-2); } .ic { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: 19px; margin-bottom: 14px; background: var(--panel-2); border: 1px solid var(--line); } /* pricing */ .price-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; max-width: 680px; margin: 0 auto; } .plan { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; position: relative; } .plan.pro { border-color: rgba(110, 139, 255, 0.45); background: linear-gradient( 180deg, rgba(110, 139, 255, 0.07), var(--panel) ); } .plan .pname { font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-3); margin-bottom: 12px; } .plan .amt { font-size: 38px; font-weight: 800; letter-spacing: -0.02em; } .plan .amt small { font-size: 15px; font-weight: 500; color: var(--text-3); } .plan .yr { font-size: 13.5px; color: var(--text-3); margin-top: 4px; } .badge { position: absolute; top: 18px; right: 18px; font-size: 11.5px; font-weight: 600; color: var(--accent); background: rgba(110, 139, 255, 0.12); border: 1px solid rgba(110, 139, 255, 0.3); padding: 4px 10px; border-radius: 999px; } ul.feat { list-style: none; margin-top: 18px; display: flex; flex-direction: column; gap: 10px; } ul.feat li { font-size: 14.5px; color: var(--text-2); display: flex; gap: 10px; align-items: flex-start; } ul.feat li::before { content: "✓"; color: var(--ok); font-weight: 700; } /* footer */ footer { border-top: 1px solid var(--line); margin-top: 30px; padding: 34px 0 50px; } .foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; } .foot-links { display: flex; flex-wrap: wrap; gap: 20px; font-size: 14px; color: var(--text-2); } .foot-links a:hover { color: var(--text); } .copy { font-size: 13px; color: var(--text-3); } </style> </head> <body> <nav> <div class="brand"> <img class="dot" src="/icon/128.png" alt="Stashed logo" />Stashed </div> <div class="nav-links"> <a href="#features">Features</a> <a href="./changelog.html">Changelog</a> <a href="./contact.html">Contact</a> <a href="./privacy.html">Privacy</a> <a href="./terms.html">Terms</a> <a class="nav-cta" href="#get">Download</a> </div> </nav> <header> <div class="wrap"> <span class="tag">Browser extension · Local-first</span> <h1> Never lose anything<br />you <span class="grad">saved again</span>. </h1> <p class="sub"> Stashed replaces the bookmark graveyard with a personal memory for the web. Save any page in one click — and actually find it again in seconds. </p> <div class="cta-row" id="get"> <a class="btn-store btn-chrome" href="https://chromewebstore.google.com/detail/stashed-bookmark-manager/aoilgaagmdbbjnejhgdjeilobichhfmo" target="_blank" rel="noopener" > <svg viewBox="0 0 24 24" aria-hidden="true"> <path fill="#EA4335" d="M12 2a10 10 0 0 1 8.66 5H12a5 5 0 0 0-4.33 2.5L3.34 7.05A10 10 0 0 1 12 2z" /> <path fill="#FBBC05" d="M3.34 7.05 7.67 9.5A5 5 0 0 0 7.67 14.5L3.34 16.95A10 10 0 0 1 3.34 7.05z" /> <path fill="#34A853" d="M20.66 7A10 10 0 0 1 8.5 21.6l4.33-7.1A5 5 0 0 0 16.33 7h4.33z" /> <circle cx="12" cy="12" r="5" fill="#fff" /> <circle cx="12" cy="12" r="4" fill="#4285F4" /> </svg> Add to Chrome </a> <a class="btn-store btn-firefox" href="https://addons.mozilla.org/en-US/firefox/addon/stashed-bookmark-manager/" target="_blank" rel="noopener" > <svg viewBox="0 0 24 24" aria-hidden="true"> <defs> <radialGradient id="ffg" cx="28%" cy="18%" r="95%"> <stop offset="0" stop-color="#FFEA8C" /> <stop offset=".35" stop-color="#FF8A2B" /> <stop offset=".7" stop-color="#FF4F00" /> <stop offset="1" stop-color="#C5208E" /> </radialGradient> </defs> <path fill="url(#ffg)" d="M21 9.5c-.4-1-.9-1.7-1.5-2.3.2.5.3 1.1.3 1.7 0 .1-.2.2-.2.1-1-2.4-2.9-3.5-4.4-5.8-.3-.5-.5-.9-.6-1.2 0-.2-.1-.3-.1-.4-.1 0-.1 0-.2.1-1.6 1-2.2 2.9-2.3 4.3-.7.1-1.4.4-1.9.9-.1.1-.2 0-.2-.1 0-.3.1-.6.2-.9 0 0-.1 0-.1.1-1.1.9-1.9 2.2-2.1 3.6-.2 1-.1 2 .2 2.9A8 8 0 1 0 21 9.5z" /> </svg> Add to Firefox </a> </div> <span class="cta-note">Free · No account required</span> <!-- Product Hunt launch badge (live launch day) --> <div class="ph-badge"> <a href="https://www.producthunt.com/products/stashed-find-anything-you-saved-again?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_campaign=badge-stashed-find-anything-you-saved-again" target="_blank" rel="noopener noreferrer" > <img alt="Stashed - Find Anything You Saved Again - Save anything in one click. Find it again in seconds. | Product Hunt" width="250" height="54" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1179781&amp;theme=dark&amp;t=1782377439717" /> </a> </div> </div> </header> <section id="features"> <div class="wrap"> <div class="eyebrow">What it does</div> <h2>Save once. Find it forever.</h2> <div class="grid"> <div class="card"> <div class="ic">⚡</div> <h3>Save in one click</h3> <p> Hit Alt+S (or Alt+X on Firefox) on any page. Stashed grabs the title, favicon, and a cover image automatically — no folders to maintain. </p> </div> <div class="card"> <div class="ic">🔎</div> <h3>Find it instantly</h3> <p> Open Stashed with Alt+W, then fuzzy-search across titles, tags, domains, and notes. Filter by tag or site, or jump anywhere with the command palette. </p> </div> <div class="card"> <div class="ic">🏷️</div> <h3>Smart tags, automatically</h3> <p> Every save is tagged for you and sorted by domain, tags, and topic — so your stash organizes itself instead of rotting in a folder you never open. </p> </div> <div class="card"> <div class="ic">🔄</div> <h3>Surfaced when useful</h3> <p> Open the popup on a page and Stashed resurfaces the saves most related to what you're reading — right when they matter. </p> </div> <div class="card"> <div class="ic">🔒</div> <h3>Local-first &amp; private</h3> <p> By default everything stays in your browser. No tracking, no ads, and we never sell your data. </p> </div> <div class="card"> <div class="ic">⌨️</div> <h3>Built for keyboard</h3> <p> Alt+S to stash the current page, Alt+W to open Stashed. Fully keyboard-navigable. </p> </div> </div> </div> </section> <section id="pricing"> <div class="wrap"> <div class="eyebrow">Pricing</div> <h2>Start free. Upgrade when you need it.</h2> <div class="price-grid"> <div class="plan"> <div class="pname">Free</div> <div class="amt">$0</div> <div class="yr">Forever · no account needed</div> <ul class="feat"> <li>One-click save with auto-tags</li> <li>Fuzzy search, tags &amp; collections</li> <li>Related-saves resurfacing</li> <li>Export any time (JSON / HTML)</li> <li>Everything stored locally</li> </ul> </div> <div class="plan pro"> <span class="badge">14-day free trial</span> <div class="pname">Pro</div> <div class="amt">$5 <small>/ month</small></div> <div class="yr">or $36 / year — trial needs no card</div> <ul class="feat"> <li>Cross-device cloud sync</li> <li>Full-page archive (survives link rot)</li> <li>Search <em>inside</em> saved pages</li> <li>AI tagging for sharper tags</li> <li>Daily automatic backup</li> </ul> </div> </div> </div> </section> <section id="support" style="text-align: center"> <div class="wrap"> <div class="eyebrow">Need a hand?</div> <h2 style="margin-bottom: 14px">Have an issue, request, or idea?</h2> <p class="sub" style="margin-bottom: 24px"> Refunds, bug reports, suggestions, or questions — we read every message. </p> <a class="cta" href="./contact.html">Report an issue here →</a> </div> </section> <footer> <div class="wrap foot"> <div class="brand"> <img class="dot" src="/icon/128.png" alt="Stashed logo" />Stashed </div> <div class="foot-links"> <a href="#features">Features</a> <a href="#pricing">Pricing</a> <a href="./changelog.html">Changelog</a> <a href="./privacy.html">Privacy Policy</a> <a href="./terms.html">Terms of Service</a> <a href="./contact.html">Contact</a> </div> </div> <div class="wrap" style="margin-top: 18px"> <div class="copy"> Support: <a href="./contact.html">stashed.pages.dev/contact</a> </div> <div class="copy" style="margin-top: 6px">© 2026 Stashed</div> </div> </footer> </body> </html>

Recommendation

Next step: Fix robots.txt syntax issues so each rule uses Field: value format, directives appear under a User-agent, and Sitemap entries use absolute URLs.

The llms.txt file exists but is missing one or more expected quality signals.

Signal weight

8/15
Warn

Evidence

llmsTxtUrl
https://stashed.pages.dev/llms.txt
present
true
accessible
true

Recommendation

Next step: Publish /llms.txt as text or markdown with more than 200 characters, markdown headings, and at least one absolute URL.

The sitemap.xml file could not be parsed as valid XML.

Signal weight

0/10
Fail

Evidence

sitemapUrl
https://stashed.pages.dev/sitemap.xml
sitemapUrls
[https://stashed.pages.dev/sitemap.xml]
robotsSitemapUrls
[]

Recommendation

Next step: Regenerate sitemap.xml with valid XML and a sitemap <urlset> or <sitemapindex> root element.

The homepage returned HTML when requested with Accept: text/markdown, so the server appears to ignore markdown content negotiation.

Signal weight

0/15
Fail

Evidence

url
https://stashed.pages.dev/
acceptHeader
text/markdown
status
200

Recommendation

Next step: Add content negotiation for Accept: text/markdown on the homepage and return a markdown representation with Content-Type: text/markdown. Keep the HTML response for regular browser requests.

The homepage has some semantic HTML signals, but one or more title, metadata, heading, landmark, content, or link text checks need improvement.

Signal weight

7/10
Warn

Evidence

url
https://stashed.pages.dev/
quality
partial
score
71

Recommendation

Next step: Shorten the meta description to 160 characters or fewer. Add missing semantic elements: main, article.

No JSON-LD, Microdata, or RDFa structured data was found on the page.

Signal weight

0/10
Fail

Evidence

url
https://stashed.pages.dev/
quality
none
hasStructuredData
false

Recommendation

Next step: Add JSON-LD structured data with Organization or WebSite schema so AI systems can identify the site owner or website entity.

Content-Signal directive not detected in headers, HTML metadata, or robots.txt.

Signal weight

0/5
Fail

Evidence

url
https://stashed.pages.dev/
hasContentSignals
false
hasContentSignalHeader
false

Recommendation

Next step: Add the standard directive 'Content-Signal: ai-train=no, search=yes, ai-input=yes' to robots.txt, HTML metadata, or HTTP headers so AI systems can discover content usage preferences.

// generated fixes

Downloadable fix files

Preview the generated files below. Enter your email to reveal the full fixes, download the bundle, or copy the agent-ready implementation prompt.

Done-for-you

Agency package

Not sure how to ship the technical fixes? Book a call and we can help turn this report into implemented updates.

Fix planning from your scan

Implementation guidance

AI visibility monitoring

llms.txtMarkdown
# Stashed — Save & Find Anything on the Web > Stashed replaces the bookmark graveyard with a personal memory for the web. Save any page in one click and find it again in seconds with smart tags and full-text search. This llms.txt file summarizes the public, canonical resources that AI assistants and crawlers should use to understand this site. ## Site Overview - Canonical URL: https://stashed.pages.dev/- Site type: website
robots.txtTXT
# robots.txt additions# Copy these blocks into the existing robots.txt file. Keep current rules unless a note calls out a conflicting Disallow. # Sitemap discovery# Add this top-level directive so search and AI crawlers can discover the canonical sitemap.Sitemap: https://stashed.pages.dev/sitemap.xml # AI crawler access# Add explicit Allow rules for AI crawlers so public content permissions are clear.User-agent: GPTBot
schema.jsonJSON
{  "@context": "https://schema.org",  "@graph": [    {      "@type": "Organization",      "@id": "https://stashed.pages.dev/#organization",      "name": "Stashed — Save & Find Anything on the Web",      "description": "Stashed replaces the bookmark graveyard with a personal memory for the web. Save any page in one click and find it again in seconds with smart tags and full-text search.",      "url": "https://stashed.pages.dev/",
head metaHTML
# Content-Signal recommendations Use these directives to make AI-use preferences explicit for compliant crawlers and AI systems. They are advisory signals, so keep them aligned with robots.txt, terms, and access controls. ## Recommended values - ai-train=no: AI model training, fine-tuning, and dataset creation.- search=yes: AI search indexing, snippets, and discovery.- ai-input=yes: AI answer grounding, retrieval, and generated-response context.

Related scans

Similar AI visibility reports

Browse leaderboard