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
- ✅ Fetched 9 of 9 pages successfully Target: https://planqr.com
2. Data Found
| Data Point | Found? | Source | Notes |
|---|---|---|---|
| Pricing | No | — | — |
| Customer logos | No | — | — |
| Social proof | No | — | — |
| Recent launches | No | — | — |
| Blog post activity | No | — | — |
| New hires | No | — | Often only on a /blog/team or LinkedIn page |
| Headline copy | Yes | Homepage | QR code management for businesses and designers. |
| Positioning | No | — | — |
| Executive team | Yes | About/team page | https://planqr.com/about |
| Product/service descriptions | Yes | Homepage | From meta description |
| Case studies or testimonials | No | — | — |
| Contact/demo/signup paths | Yes | Navigation 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 withrel="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
6. Links & Images
- ⚠️ 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-originfor 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
13. Recommended Fixes
⚠️ 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
sameAspointing 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 IDAlso 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
deferorasyncto 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-Onlyto learn safe sources, then enforce. Cuts XSS blast radius.⚠️ Declare an author byline Add
<meta name="author" content="Name">or a visible byline withrel="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-originis 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
sameAspointing 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.