CrawlProof

Public share link

AEO Audit for makespdf.com

Target: https://makespdf.com/
Score: 43 / 100
Generated: 2026-06-12T00:27:42.688Z
Pages crawled: 9
Findings: 35 pass · 106 warn · 5 fail · 0 unknown


1. Crawl Summary

2. Data Found

Data PointFound?SourceNotes
PricingYesPricing pagehttps://makespdf.com/pricing
Customer logosNo
Social proofNo
Recent launchesYesPress/news pageshttps://makespdf.com/blog
Blog post activityYesBloghttps://makespdf.com/blog
New hiresNoOften only on a /blog/team or LinkedIn page
Headline copyNo
PositioningNo
Executive teamNo
Product/service descriptionsYesHomepageFrom meta description
Case studies or testimonialsNo
Contact/demo/signup pathsNo

3. Homepage Audit

  • Missing H1 No <h1> element found. LLMs use the H1 as the strongest signal of what the page is about.
  • ⚠️ Page load time: 1.06s Acceptable — consider optimizing for faster crawl times.
  • ⚠️ Short <title> (8 chars) Aim for 30–60 chars. Lead with brand or product, then value prop.
  • ⚠️ Long meta description (194 chars) Snippets truncate around 160 chars. Tighten to keep the key sentence visible.
  • ⚠️ Missing canonical link Add <link rel="canonical" href="https://your-domain"> to prevent dup-content confusion.
  • Homepage fetched successfully HTTP 200 · 33490 bytes · 1059ms
  • declared
  • Open Graph tags complete
  • Twitter Card tags complete
  • Content volume: 423 words Substantive content — AI models have enough to summarize and recommend.
  • Heading structure: 6 (h1:0, h2:1, h3:5) Multiple headings help AI chunk and outline your page.
  • Internal links: 19 19 internal + 1 external links help crawlers navigate.
  • Favicon declared

4. Content Quality

  • Snippet-ready blocks: 0 (ul:0, ol:0, table:0) Add bullet lists, numbered steps, or a comparison table. Answer engines prefer structured blocks over prose.
  • ⚠️ No question-style headings found Phrase at least one heading as a user question (e.g. 'How does pricing work?') to match conversational AI queries.
  • ⚠️ No date signal found Add or article:published_time meta. AI ranking weights freshness.
  • ⚠️ Text-to-HTML ratio: 9.3% Low text density — most of the response is markup/script.
  • ⚠️ 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 6 headings nested in order.

5. Schema / Structured Data Audit

  • No JSON-LD structured data found Add JSON-LD blocks (Organization, SoftwareApplication, FAQPage, BreadcrumbList) so AI answer engines can ingest your data without guessing.

7. Performance

  • ⚠️ Response time: 1059ms 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: 33 KB Compact HTML payload — well within AI crawler limits.
  • Resource requests: 2 (scripts:1, css:1, img:0) Reasonable request count.
  • No render-blocking head scripts All head scripts use async or defer.
  • Inline JS+CSS bulk: 2 KB Inline payload is modest.
  • Compression enabled (Brotli) Content-Encoding: br

8. Security

  • ⚠️ HSTS missing Add Strict-Transport-Security: max-age=31536000; includeSubDomains once you're confident in https.
  • ⚠️ Content-Security-Policy missing Define a CSP to limit script sources — large reduction in XSS surface.
  • ⚠️ X-Frame-Options missing Add X-Frame-Options: SAMEORIGIN (or use CSP frame-ancestors) to prevent clickjacking.
  • ⚠️ X-Content-Type-Options missing Add X-Content-Type-Options: nosniff to block MIME-type sniffing.
  • ⚠️ 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

9. robots.txt and sitemap.xml Audit

  • robots.txt present 199 chars
  • robots.txt references sitemap(s)
  • sitemap.xml present (63 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.
  • ⚠️ /.well-known/security.txt missing Publish a /.well-known/security.txt with at least a Contact: line. Crawlers and security researchers expect it; AI systems use it as a trust signal.
  • llms.txt present 10467 chars
  • /llms-full.txt present 88774 chars — full site content for LLM ingest.

11. Positioning Clarity

  • ⚠️ H1 missing or too short to convey value Add a clear, single-sentence H1 like 'We help X do Y.'
  • No discoverable CTA Add a clearly-labeled Contact, Demo, or Sign up link to the nav or hero.
  • ⚠️ No clear About/Team link Add an About or Team link in the nav or footer so LLMs can identify the company.
  • ⚠️ Value-prop language not detected Pages with phrases like 'we help X', 'platform for Y', 'built for Z' are easier for LLMs to summarize.
  • Pricing path discoverable

12. Missing or Hard-to-Find Information

  • 8 data point(s) could not be found from public pages · Customer logos · Social proof · New hires · Headline copy · Positioning · Executive team · Case studies or testimonials · Contact/demo/signup paths
  • ⚠️ Add a single, focused H1 to the homepage One <h1> per page. Write it as 'We help [audience] [do thing].' so an LLM can quote it verbatim.

  • ⚠️ Rewrite the homepage H1 to be self-evident Replace clever copy with literal copy. 'We help X do Y' beats 'Reimagine Y'.

  • ⚠️ Add a discoverable CTA Place 'Contact sales' or 'Start free' in the top-right of the nav. LLMs cite the visible label.

  • ⚠️ Add JSON-LD structured data Start with Organization on the root layout and SoftwareApplication or Product on /pricing. Add FAQPage on any FAQ section.

  • ⚠️ 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.

  • ⚠️ 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.

  • ⚠️ Declare your brand name in Organization JSON-LD Add "name": "Your Brand" to your Organization or SoftwareApplication schema block. AI systems match structured-data names against training data to resolve your brand as a distinct entity. Without it, mentions of your brand may not be attributed to you.

  • ⚠️ Make your About/Team page reachable Add a top-nav or footer link to /about or /team so LLMs can identify the entity behind the site.

  • ⚠️ Phrase a heading as a user question Use headings like 'How does pricing work?' or 'Who is this for?' — they map directly to conversational AI queries.

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

  • ⚠️ 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 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.

  • ⚠️ Speed up homepage rendering AI crawlers commonly time out around 3s. Cache the HTML, ship less JS for the first paint, and pre-render the hero section server-side.

  • ⚠️ Set a meaningful <title> 30–60 chars. Lead with the brand or product, then the value prop.

    <title>CrawlProof — AEO audits for AI crawlers</title>
    
  • ⚠️ Add a meta description 50–160 chars. Repeat your core value prop in plain language; this often becomes the AI snippet.

    <meta name="description" content="CrawlProof shows you exactly how AI crawlers see your site, then tells you what to fix." />
    
  • ⚠️ Add a canonical link Prevents dup-content drift and tells AI crawlers which URL is authoritative.

    <link rel="canonical" href="https://yoursite.com/" />
    
  • ⚠️ Fix broken homepage links We HEAD-probed the first 20 unique homepage links and found 4xx/5xx responses. Repair or remove them — broken links erode crawler trust.

  • ⚠️ 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.

  • ⚠️ Publish /.well-known/security.txt A security contact builds trust with crawlers and researchers. Minimal example:

    Contact: mailto:security@yourdomain.com
    Expires: 2027-01-01T00:00:00.000Z
    Preferred-Languages: en
    
  • ⚠️ 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.

  • ⚠️ Enable HSTS Add Strict-Transport-Security: max-age=31536000; includeSubDomains once you're confident every subdomain is https-ready.

  • ⚠️ 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 X-Frame-Options X-Frame-Options: SAMEORIGIN (or CSP frame-ancestors) blocks clickjacking via iframe embeds.

  • ⚠️ Add X-Content-Type-Options X-Content-Type-Options: nosniff prevents browsers from MIME-sniffing responses.

  • ⚠️ 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

  • P1 — Add a single, focused H1 to the homepage One <h1> per page. Write it as 'We help [audience] [do thing].' so an LLM can quote it verbatim.

  • P1 — Rewrite the homepage H1 to be self-evident Replace clever copy with literal copy. 'We help X do Y' beats 'Reimagine Y'.

  • P1 — Add a discoverable CTA Place 'Contact sales' or 'Start free' in the top-right of the nav. LLMs cite the visible label.

  • P1 — Add JSON-LD structured data Start with Organization on the root layout and SoftwareApplication or Product on /pricing. Add FAQPage on any FAQ section.

  • P2 — 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.

  • 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 — Declare your brand name in Organization JSON-LD Add "name": "Your Brand" to your Organization or SoftwareApplication schema block. AI systems match structured-data names against training data to resolve your brand as a distinct entity. Without it, mentions of your brand may not be attributed to you.

  • P2 — Make your About/Team page reachable Add a top-nav or footer link to /about or /team so LLMs can identify the entity behind the site.

  • P3 — Phrase a heading as a user question Use headings like 'How does pricing work?' or 'Who is this for?' — they map directly to conversational AI queries.

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

  • P3 — 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.

  • 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 — Speed up homepage rendering AI crawlers commonly time out around 3s. Cache the HTML, ship less JS for the first paint, and pre-render the hero section server-side.

  • P3 — Set a meaningful <title> 30–60 chars. Lead with the brand or product, then the value prop.

    ```html
    <title>CrawlProof — AEO audits for AI crawlers</title>
    ```
    
  • P3 — Add a meta description 50–160 chars. Repeat your core value prop in plain language; this often becomes the AI snippet.

    ```html
    <meta name="description" content="CrawlProof shows you exactly how AI crawlers see your site, then tells you what to fix." />
    ```
    
  • P3 — Add a canonical link Prevents dup-content drift and tells AI crawlers which URL is authoritative.

    ```html
    <link rel="canonical" href="https://yoursite.com/" />
    ```
    
  • P3 — Fix broken homepage links We HEAD-probed the first 20 unique homepage links and found 4xx/5xx responses. Repair or remove them — broken links erode crawler trust.

  • 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.


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.