CrawlProof

Public share link

AEO Audit for planqr.com

Target: https://planqr.com/
Score: 49 / 100
Generated: 2026-09-02T20:27:30.698Z
Pages crawled: 9
Findings: 46 pass · 113 warn · 4 fail · 0 unknown


1. Crawl Summary

2. Data Found

Data PointFound?SourceNotes
PricingNo
Customer logosNo
Social proofNo
Recent launchesNo
Blog post activityNo
New hiresNoOften only on a /blog/team or LinkedIn page
Headline copyYesHomepageQR code management for businesses and designers.
PositioningNo
Executive teamYesAbout/team pagehttps://planqr.com/about
Product/service descriptionsYesHomepageFrom meta description
Case studies or testimonialsNo
Contact/demo/signup pathsYesNavigation links

3. Homepage Audit

  • ⚠️ Alt text coverage: 50% 1/2 images have alt text.
  • ⚠️ Content volume: 288 words Thin content. Aim for 300+ words on the homepage so AI models can extract a useful description.
  • Homepage fetched successfully HTTP 200 · 127805 bytes · 630ms
  • Page load time: 0.63s Fast — well within AI crawler budgets.
  • declared
  • Single H1 QR code management for businesses and designers.
  • <title> present (40 chars)
  • Meta description present (104 chars)
  • Canonical present https://planqr.com/
  • Open Graph tags complete
  • Twitter Card tags complete
  • Critical content is server-rendered Raw and rendered text are within 2% of each other.
  • Heading structure: 11 (h1:1, h2:5, h3:5) Multiple headings help AI chunk and outline your page.
  • Internal links: 12 12 internal + 3 external links help crawlers navigate.
  • Favicon declared

4. Content Quality

  • Text-to-HTML ratio: 1.3% Very low text density. AI crawlers will struggle to find substantive content.
  • ⚠️ Snippet-ready blocks: 1 (ul:1, ol:0, table:0) Add bullet lists, numbered steps, or a comparison table. Answer engines prefer structured blocks over prose.
  • ⚠️ No date signal found Add or article:published_time meta. AI ranking weights freshness.
  • ⚠️ No author byline found Add <meta name="author" content="Name"> or a visible byline with rel="author". Strengthens E-E-A-T signals.
  • Heading levels are well-ordered 11 headings nested in order.
  • 1 question-style heading(s) Questions in headings map cleanly to user queries. Pair with FAQPage JSON-LD for max lift.

5. Schema / Structured Data Audit

  • ⚠️ Organization missing Adding Organization JSON-LD helps LLMs identify your entity.
  • ⚠️ WebSite missing Adding WebSite JSON-LD helps LLMs identify your entity.
  • ⚠️ FAQPage JSON-LD missing Add an FAQPage block on pages that answer common questions — high-value for AI summaries.
  • ⚠️ Article / BlogPosting JSON-LD not found Add Article / BlogPosting where applicable so AI answer engines can resolve the entity precisely.
  • ⚠️ BreadcrumbList JSON-LD not found Add BreadcrumbList where applicable so AI answer engines can resolve the entity precisely.
  • ⚠️ LocalBusiness JSON-LD not found Add LocalBusiness where applicable so AI answer engines can resolve the entity precisely.
  • ⚠️ Person (author / founder) JSON-LD not found Add Person (author / founder) where applicable so AI answer engines can resolve the entity precisely.
  • ⚠️ HowTo JSON-LD not found Add HowTo where applicable so AI answer engines can resolve the entity precisely.
  • ⚠️ VideoObject JSON-LD not found Add VideoObject where applicable so AI answer engines can resolve the entity precisely.
  • 1 JSON-LD block(s) found Types: SoftwareApplication
  • SoftwareApplication present
  • ⚠️ Modern image formats: 0% (0/2 webp/avif) 0 legacy (png/jpg/gif) image(s). Convert hero/above-the-fold images to WebP or AVIF.
  • Explicit dimensions: 0% (0/2) Add width and height attributes on tags to prevent CLS.
  • External nofollow: 0% (0/3) Healthy mix of follow and nofollow outbound links.
  • No broken links in first 13 HEAD-probed the first 20 unique homepage links — all 2xx/3xx.

7. Performance

  • ⚠️ 1 render-blocking script(s) in Move non-critical scripts to end of or add defer/async.
  • ⚠️ Inline JS+CSS bulk: 72 KB Move large inline scripts/styles to external files to enable caching.
  • ⚠️ Response time: 630ms Slow response. Check CDN/cache headers and origin latency.
  • ⚠️ No Cache-Control header Add a Cache-Control header so CDNs and AI crawlers can revalidate efficiently.
  • Page size: 125 KB Compact HTML payload — well within AI crawler limits.
  • Resource requests: 4 (scripts:2, css:0, img:2) Reasonable request count.
  • Compression enabled (Brotli) Content-Encoding: br
  • Lazy loading: 1/2 images

8. Security

  • ⚠️ Content-Security-Policy missing Define a CSP to limit script sources — large reduction in XSS surface.
  • ⚠️ Referrer-Policy missing Add Referrer-Policy: strict-origin-when-cross-origin for safer referrers.
  • ⚠️ Permissions-Policy missing Restrict browser features (camera, mic, geolocation) you don't use.
  • Served over HTTPS
  • No mixed content detected
  • HSTS set max-age=31536000; includeSubDomains
  • X-Frame-Options set SAMEORIGIN
  • X-Content-Type-Options set nosniff

9. robots.txt and sitemap.xml Audit

  • robots.txt present 65 chars
  • robots.txt references sitemap(s)
  • sitemap.xml present (4 URLs)

10. LLM / AI Crawler Accessibility

  • ⚠️ GPTBot not explicitly addressed No User-agent: GPTBot block in robots.txt. We recommend explicit Allow rules so crawlers don't fall back to defaults.
  • ⚠️ ClaudeBot not explicitly addressed No User-agent: ClaudeBot block in robots.txt. We recommend explicit Allow rules so crawlers don't fall back to defaults.
  • ⚠️ PerplexityBot not explicitly addressed No User-agent: PerplexityBot block in robots.txt. We recommend explicit Allow rules so crawlers don't fall back to defaults.
  • ⚠️ Google-Extended not explicitly addressed No User-agent: Google-Extended block in robots.txt. We recommend explicit Allow rules so crawlers don't fall back to defaults.
  • ⚠️ OAI-SearchBot not explicitly addressed No User-agent: OAI-SearchBot block in robots.txt. We recommend explicit Allow rules so crawlers don't fall back to defaults.
  • ⚠️ Applebot-Extended not explicitly addressed No User-agent: Applebot-Extended block in robots.txt. We recommend explicit Allow rules so crawlers don't fall back to defaults.
  • ⚠️ CCBot not explicitly addressed No User-agent: CCBot block in robots.txt. We recommend explicit Allow rules so crawlers don't fall back to defaults.
  • ⚠️ skill.md missing Add /skill.md describing what your site lets agents do — speeds up agent task routing.
  • ⚠️ /llms-full.txt missing Add /llms-full.txt with concatenated Markdown of all key pages. Lets LLMs ingest your full site in one request.
  • llms.txt present 1195 chars
  • /.well-known/security.txt present Security contact published — builds trust with crawlers and security researchers.

11. Positioning Clarity

  • ⚠️ No pricing/plans link found AI summaries commonly include pricing. Add a /pricing page even if pricing is custom.
  • ⚠️ Value-prop language not detected Pages with phrases like 'we help X', 'platform for Y', 'built for Z' are easier for LLMs to summarize.
  • About/Team path discoverable
  • H1 communicates value QR code management for businesses and designers.
  • Contact / signup path discoverable

12. Missing or Hard-to-Find Information

  • 8 data point(s) could not be found from public pages · Pricing · Customer logos · Social proof · Recent launches · Blog post activity · New hires · Positioning · Case studies or testimonials
  • ⚠️ Raise your text-to-HTML ratio Strip unused inline scripts/styles and move large bundles to external files. AI crawlers struggle when most of the response is markup.

  • ⚠️ Add sameAs knowledge graph links to Organization schema Extend your Organization JSON-LD to include sameAs pointing to authoritative directories:

    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "Your Brand",
      "url": "https://yoursite.com",
      "sameAs": [
        "https://en.wikipedia.org/wiki/Your_Brand",
        "https://www.wikidata.org/wiki/Q12345678",
        "https://www.linkedin.com/company/your-brand",
        "https://www.crunchbase.com/organization/your-brand"
      ]
    }
    

    These links anchor your brand as a known entity in AI knowledge graphs, making it far more likely that generative models cite you by name rather than paraphrase.

  • ⚠️ Add an AI agent integration file At minimum, add a skill.md at /skill.md so Claude and similar agents can discover your API:

    # Your Brand Skill
    
    API endpoint: https://yoursite.com/api
    Auth: Bearer token
    
    ## Tools
    
    - search: Search the knowledge base
    - get_article: Retrieve a full article by ID
    

    Also consider /.well-known/ai-plugin.json (ChatGPT plugin discovery) and /.well-known/agent-card.json (Google A2A protocol) for broader agent compatibility.

  • ⚠️ Add a /pricing page Even contact-us pricing benefits from a /pricing page that LLMs can link to in answers.

  • ⚠️ Add Organization JSON-LD Include name, url, logo, sameAs (your social profiles). LLMs use this to resolve your brand entity.

  • ⚠️ Add lists or comparison tables Answer engines lift bulleted lists, numbered steps, and tables verbatim. Add at least 2 snippet-ready blocks to the homepage.

  • ⚠️ Publish a date signal Add <time datetime="2026-05-17"> or <meta property="article:published_time">. AI ranking heavily weights freshness.

  • ⚠️ Generate /llms-full.txt for RAG pipelines llms-full.txt is a concatenation of the full markdown text of every resource listed in llms.txt. Generate it statically at build time and serve it from your root:

    # Your Brand — Full Content
    
    ## Getting Started
    <full markdown content of /docs/start>
    
    ## API Reference
    <full markdown content of /docs/api>
    

    Large-context models can ingest your entire knowledge base in a single request, dramatically improving recall and citation accuracy.

  • ⚠️ Add outbound links to authoritative sources Link to Wikipedia, .gov or .edu resources, peer-reviewed studies, or major news outlets when making factual claims. Generative AI systems treat pages that cite authoritative sources as more trustworthy, which raises citation likelihood.

    Examples: statistics from Statista or Census.gov, definitions from Wikipedia, research from nature.com or pubmed.ncbi.nlm.nih.gov.

  • ⚠️ Add alt text to all meaningful images Decorative-only images can use empty alt='', but logos, screenshots, and product images need descriptive alt.

  • ⚠️ Add more substantive homepage content AI models need 300+ words of visible body text to summarize and recommend a site. Add a value-prop paragraph, a short FAQ, and a 'how it works' section.

  • ⚠️ Use modern image formats Serve WebP or AVIF for hero/above-the-fold images. Keep legacy PNG/JPG only as fallbacks.

  • ⚠️ Set width/height on images Explicit dimensions prevent Cumulative Layout Shift and help AI extractors reserve space correctly.

  • ⚠️ Allow GPTBot in robots.txt Add an explicit User-agent: GPTBot Allow: / block so this AI crawler can read your site.

  • ⚠️ Allow ClaudeBot in robots.txt Add an explicit User-agent: ClaudeBot Allow: / block so this AI crawler can read your site.

  • ⚠️ Allow PerplexityBot in robots.txt Add an explicit User-agent: PerplexityBot Allow: / block so this AI crawler can read your site.

  • ⚠️ Allow Google-Extended in robots.txt Add an explicit User-agent: Google-Extended Allow: / block so this AI crawler can read your site.

  • ⚠️ Allow OAI-SearchBot in robots.txt Add an explicit User-agent: OAI-SearchBot Allow: / block so this AI crawler can read your site.

  • ⚠️ Allow Applebot-Extended in robots.txt Add an explicit User-agent: Applebot-Extended Allow: / block so this AI crawler can read your site.

  • ⚠️ Allow CCBot in robots.txt Add an explicit User-agent: CCBot Allow: / block so this AI crawler can read your site.

  • ⚠️ Add /skill.md Describe what an agent can do with your site (e.g., 'Search docs', 'Look up pricing'). Useful for agentic flows.

  • ⚠️ Eliminate render-blocking head scripts Add defer or async to any <script src="…"> in <head>, or move it to the end of <body>.

  • ⚠️ Externalize large inline JS/CSS Inline blobs aren't cacheable. Move >50 KB inline payloads to versioned external files.

  • ⚠️ Reduce response time Push static HTML to a CDN edge cache. If you must server-render per-request, profile DB/template work and add Cache-Control: s-maxage=….

  • ⚠️ Set a Cache-Control header Add Cache-Control: public, max-age=300, s-maxage=3600 (or similar) so CDNs and AI crawlers can revalidate cheaply.

  • ⚠️ State your audience explicitly Use phrases like 'Built for B2B SaaS marketing teams' on the homepage and About page.

  • ⚠️ Add WebSite JSON-LD Helps engines understand the root site and enables sitelinks-search-box features.

  • ⚠️ Add FAQPage JSON-LD Wrap your homepage FAQ in FAQPage JSON-LD; it routinely lifts AI answer inclusion.

  • ⚠️ Add Article / BlogPosting JSON-LD On every blog/article page, include Article JSON-LD with headline, author, datePublished, dateModified. AI engines weight these heavily for freshness and authority.

  • ⚠️ Add BreadcrumbList JSON-LD Helps AI engines understand site hierarchy and improves citation context.

  • ⚠️ Define a Content-Security-Policy Start with Content-Security-Policy-Report-Only to learn safe sources, then enforce. Cuts XSS blast radius.

  • ⚠️ Declare an author byline Add <meta name="author" content="Name"> or a visible byline with rel="author". Combine with Person JSON-LD for E-E-A-T.

  • ⚠️ Add LocalBusiness JSON-LD (if you have a physical location) Include address, geo, openingHours, telephone. Required for AI engines to surface you in 'near me' queries.

  • ⚠️ Add Person JSON-LD for authors / founders Mark up bylines and founder bios with Person schema — name, jobTitle, sameAs (their profiles). Strengthens E-E-A-T.

  • ⚠️ Add HowTo JSON-LD for step-by-step content For any 'how to' page, wrap the steps in HowTo JSON-LD. AI step-by-step answers cite these heavily.

  • ⚠️ Add VideoObject JSON-LD For embedded videos, include VideoObject with thumbnailUrl, uploadDate, duration. AI engines cite these in multimedia answers.

  • ⚠️ Set a Referrer-Policy Referrer-Policy: strict-origin-when-cross-origin is a safe default.

  • ⚠️ Set a Permissions-Policy Restrict browser features you don't use, e.g. Permissions-Policy: camera=(), microphone=(), geolocation=().

14. Priority To-Do List

  • P2 — Raise your text-to-HTML ratio Strip unused inline scripts/styles and move large bundles to external files. AI crawlers struggle when most of the response is markup.

  • P2 — Add sameAs knowledge graph links to Organization schema Extend your Organization JSON-LD to include sameAs pointing to authoritative directories:

    ```json
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "Your Brand",
      "url": "https://yoursite.com",
      "sameAs": [
        "https://en.wikipedia.org/wiki/Your_Brand",
        "https://www.wikidata.org/wiki/Q12345678",
        "https://www.linkedin.com/company/your-brand",
        "https://www.crunchbase.com/organization/your-brand"
      ]
    }
    ```
    
    These links anchor your brand as a known entity in AI knowledge graphs, making it far more likely that generative models cite you by name rather than paraphrase.
    
  • P2 — Add an AI agent integration file At minimum, add a skill.md at /skill.md so Claude and similar agents can discover your API:

    ```markdown
    # Your Brand Skill
    
    API endpoint: https://yoursite.com/api
    Auth: Bearer token
    
    ## Tools
    
    - search: Search the knowledge base
    - get_article: Retrieve a full article by ID
    ```
    
    Also consider /.well-known/ai-plugin.json (ChatGPT plugin discovery) and /.well-known/agent-card.json (Google A2A protocol) for broader agent compatibility.
    
  • P2 — Add a /pricing page Even contact-us pricing benefits from a /pricing page that LLMs can link to in answers.

  • P2 — Add Organization JSON-LD Include name, url, logo, sameAs (your social profiles). LLMs use this to resolve your brand entity.

  • P3 — Add lists or comparison tables Answer engines lift bulleted lists, numbered steps, and tables verbatim. Add at least 2 snippet-ready blocks to the homepage.

  • P3 — Publish a date signal Add <time datetime="2026-05-17"> or <meta property="article:published_time">. AI ranking heavily weights freshness.

  • P3 — Generate /llms-full.txt for RAG pipelines llms-full.txt is a concatenation of the full markdown text of every resource listed in llms.txt. Generate it statically at build time and serve it from your root:

    ```
    # Your Brand — Full Content
    
    ## Getting Started
    <full markdown content of /docs/start>
    
    ## API Reference
    <full markdown content of /docs/api>
    ```
    
    Large-context models can ingest your entire knowledge base in a single request, dramatically improving recall and citation accuracy.
    
  • P3 — Add outbound links to authoritative sources Link to Wikipedia, .gov or .edu resources, peer-reviewed studies, or major news outlets when making factual claims. Generative AI systems treat pages that cite authoritative sources as more trustworthy, which raises citation likelihood.

    Examples: statistics from Statista or Census.gov, definitions from Wikipedia, research from nature.com or pubmed.ncbi.nlm.nih.gov.
    
  • P3 — Add alt text to all meaningful images Decorative-only images can use empty alt='', but logos, screenshots, and product images need descriptive alt.

  • P3 — Add more substantive homepage content AI models need 300+ words of visible body text to summarize and recommend a site. Add a value-prop paragraph, a short FAQ, and a 'how it works' section.

  • P3 — Use modern image formats Serve WebP or AVIF for hero/above-the-fold images. Keep legacy PNG/JPG only as fallbacks.

  • P3 — Set width/height on images Explicit dimensions prevent Cumulative Layout Shift and help AI extractors reserve space correctly.

  • P3 — Allow GPTBot in robots.txt Add an explicit User-agent: GPTBot Allow: / block so this AI crawler can read your site.

  • P3 — Allow ClaudeBot in robots.txt Add an explicit User-agent: ClaudeBot Allow: / block so this AI crawler can read your site.

  • P3 — Allow PerplexityBot in robots.txt Add an explicit User-agent: PerplexityBot Allow: / block so this AI crawler can read your site.

  • P3 — Allow Google-Extended in robots.txt Add an explicit User-agent: Google-Extended Allow: / block so this AI crawler can read your site.

  • P3 — Allow OAI-SearchBot in robots.txt Add an explicit User-agent: OAI-SearchBot Allow: / block so this AI crawler can read your site.

  • P3 — Allow Applebot-Extended in robots.txt Add an explicit User-agent: Applebot-Extended Allow: / block so this AI crawler can read your site.

  • P3 — Allow CCBot in robots.txt Add an explicit User-agent: CCBot Allow: / block so this AI crawler can read your site.


Report by CrawlProof. Reusable after every major website change.

Email yourself this report

Get a PDF copy of this audit in your inbox — handy for sharing with a client, dev, or teammate.

Watch this URL

We'll re-scan planqr.com and email you when its AEO Score actually moves — not on a schedule, only when something changes.

Re-scan

Free. We email you to confirm first, and every message has a one-click stop link.