ACTION PLAN · CONTENT ENRICHMENT · SUGGESTED FIXES

Citation Gap: GEO for developer documentation

Audited URL: https://readme.com/resources/what-geo-aeo-means·Competitors: 5 URLs
Download PDF

Overall Citation Gap Score

70/100
Moderate Gaps

31 actions to do — 2 high, 10 medium, 10 low, 9 to get ahead.

Missing High-Value Elements

15

Elements the competitors have that this page doesn't

Weak Evidence

6

Claims lacking statistics, citations or an author entity

Technical Issues

5

Issues affecting crawlability, indexing and trust

Best Practice Gaps

7

No key-takeaways / TL;DR block · No table of contents · No comparison table · No FAQ block · No entity sameAs links · No llms.txt · No EntityMap published

Top Opportunities

  1. Title too wide for search results — Keep the title near 55–60 characters.
  2. Render-blocking script(s) — Add async or defer to head scripts.
  3. Links with no anchor text
  4. No Open Graph image — Add an og:image for social/AI cards.
  5. Missing Content-Security-Policy — Add a Content-Security-Policy header.

Optimisation score history

First auditHistory starts here. Re-audit this page after making changes and the chart will show whether the score actually moved.

What the competitors have that you don't

Content StructureComplete Open Graph tags5/5 competitors
Content StructureOpen Graph image5/5 competitors
Authority SignalsVisible freshness date5/5 competitors
Data & EvidenceCited sources5/5 competitors
Content DepthSubstantial depth (1,500+ words)5/5 competitors
Authority SignalsStructured data (JSON-LD)4/5 competitors
Authority SignalsAuthor entity3/5 competitors
Data & EvidenceSupporting statistics3/5 competitors
Topical CoverageFAQ questions2/5 competitors
Content DepthTL;DR block2/5 competitors

Ranked by how many of the competitors already have it. Elements none of them carry are left out.

Next step

Open the action plan for every item with its fix.

Your action plan — 31 to do

Grouped by priority — technical, competitor and content gaps together. Where a ready-made fix exists, open the ▸ link beneath the item for paste-ready code, wording or an example; the rest describe what to change. “Get ahead” is what none of the competitors do yet.

HIGH (2)
HIGH⚔ vs Competitors

Add Organization + WebSite schema

None found on your page, but the competitors use it. Schema earns rich results and helps machines understand the page.

You: 0 blocks · Competitors: 1 (median)

Competitors' schema types (✓ = an issue here covers it): Article 3/5 · BreadcrumbList 2/5 ✓ · FAQPage 1/5 · Organization 1/5 ✓ · WebSite 1/5 ✓. Not surfaced — used by too few competitors or not a fit for this page type: Article, FAQPage.
Mark up content that's visible to users so Google can understand it and enable rich features.— Google Search Central — structured data
▸ Fix — paste-ready

Organization + WebSite — paste into <head>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Readme",
    "url": "https://readme.com"
  },
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "Readme",
    "url": "https://readme.com"
  }
]
</script>
HIGH⚙ On-page

Title too wide for search results

At ~601px it will truncate in Google.

▸ Fix — paste-ready
Now: What GEO and AEO Mean for Developer Documentation · ReadMe
<title>GEO For Developer Documentation — What GEO | Readme</title>
MEDIUM (10)
MED⚔ vs Competitors

Add more depth to the page

The competitor pages are substantially longer. Thin pages struggle to cover a topic fully — and to get cited.

You: 954 · Competitors: 2570 (median)

MED⚔ vs Competitors

Show an author

Named authorship is an E-E-A-T signal AI answers weigh. Most competitors show one.

You: no author shown · Competitors: 3/5 have it

MED⚔ vs Competitors

Show a published / updated date

Freshness matters for both search and AI. Add a visible date.

You: no publish/updated date · Competitors: 4/5 have it

▸ Fix — paste-ready

Dates set to today; keep dateModified current when you edit.

<!-- visible on the page -->
<p>Last updated: <time datetime="2026-08-07">7 August 2026</time></p>

<!-- in your JSON-LD -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "url": "https://readme.com",
  "datePublished": "2026-08-07",
  "dateModified": "2026-08-07"
}
</script>
MED⚔ vs Competitors

Back your claims with statistics + cited sources

Replace vague claims with concrete numbers, percentages and data points.

You: 0 · Competitors: 6 (median)

Adding statistics increased visibility in AI answers by up to 40%.— Aggarwal et al., “GEO” (Princeton / Georgia Tech, 2023)
▸ Fix — paste-ready

Examples to adapt — keep the attribution and re-verify each figure before publishing:

More than 97% of respondents in GitHub's 2024 survey across the United States, Brazil, Germany, and India said they had used AI coding tools at work at some point.
Source: GitHub, Survey: The AI wave continues to grow on software development teams (2024)
GitHub's 2023 survey found that 92% of U.S.-based developers had used AI coding tools at work or in their personal time, and 70% expected significant benefits from them.
Source: GitHub, Survey reveals AI's impact on the developer experience (2023)
In GitHub's 2024 survey, 60–71% of respondents said AI coding tools made it easy to adopt a new programming language or understand an existing codebase.
Source: GitHub, Survey: The AI wave continues to grow on software development teams (2024)
Google states that pages need no additional technical requirements for AI Overviews or AI Mode beyond being indexed, eligible for Search, and eligible to display a snippet.
Source: Google Search Central, AI features and your website
MED⚙ On-page

Render-blocking script(s)

1 render-blocking script(s) in <head>.

MED⚔ vs Competitors

Add BreadcrumbList schema

2 of the competitors mark up BreadcrumbList schema and you don't.

▸ Fix — paste-ready

BreadcrumbList — fill in the specifics, then paste into <head>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://readme.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "What GEO and AEO Mean for Developer Documentation",
      "item": "https://readme.com/resources/what-geo-aeo-means"
    }
  ]
}
</script>
✦ Content · Information gain

Cover: Question-led page structure and direct-answer formatting 2/5

These competitors turn user questions into headings and place concise answers immediately below them. The ReadMe article is clear, but it does not demonstrate a repeatable question-to-answer template for API reference, quickstarts, troubleshooting, and conceptual docs.

Competitors covering it: Draft.dev and DEV Community
▸ How to cover it

Suggested heading: A Question-and-Answer Template for Developer Docs

  • Map each page to a real developer question and a single technical job
  • Use the question as the heading when that matches how developers prompt assistants
  • Place a two-sentence answer before background detail or code
  • Keep prerequisites and exceptions inside the same retrievable section
✦ Content · Information gain

Cover: A systematic documentation refresh and consolidation workflow 2/5

Competitors cover refresh cadence, technical review, rich media, consolidation, redirects, date updates, and re-promotion. ReadMe mentions accurate dates and stale versions but lacks an operational workflow for deciding what to update, merge, remove, or redirect.

Competitors covering it: Draft.dev and Heavybit
▸ How to cover it

Suggested heading: How to Run a GEO Documentation Refresh

  • Prioritize pages using product change risk, support demand, traffic, and AI-answer errors
  • Re-test code, links, screenshots, schemas, and version labels during every refresh
  • Merge overlapping pages and redirect retired URLs to one canonical answer
  • Record a substantive last-reviewed date and owner rather than changing dates cosmetically
  • Re-run the prompt suite after publishing to measure answer changes
✦ Content · Information gain

Cover: Content strategies to avoid and how teams can adapt 2/5

The competitors identify weak patterns such as generic definition posts and explain how teams can adapt existing programmes. ReadMe lists several common mistakes, but does not turn them into a prioritised migration plan for documentation, developer relations, support, and engineering teams.

Competitors covering it: Draft.dev and DEV Community
▸ How to cover it

Suggested heading: What to Stop, Start, and Keep

  • Stop producing generic definition pages that add no product-specific evidence
  • Start converting support questions and integration failures into self-contained answers
  • Keep one canonical human-and-machine-readable page rather than parallel AI copies
  • Assign engineering review to code and version claims, and documentation ownership to structure
  • Begin with the highest-risk quickstarts and integrations instead of rewriting the whole site
✦ Content · Information gain

Cover: Technical performance and crawl validation 2/5

Competitors address technical review, performance, structured markup, and content architecture. ReadMe mentions sitemaps, robots, and schema, but not how teams should test rendered HTML, response status, canonicals, performance, or crawler access after deployment.

Competitors covering it: Heavybit and Strapi
▸ How to cover it

Suggested heading: Validate What Crawlers and Agents Actually Receive

  • Fetch pages without browser state and verify the main answer and code are present
  • Check status codes, canonical tags, indexability, redirects, and sitemap membership
  • Monitor Core Web Vitals while prioritising content availability over cosmetic effects
  • Test crawler rules explicitly and log whether important documentation URLs are fetched
  • Add deployment checks for missing metadata, empty rendered content, and broken schema
LOW (10)
LOW⚔ vs Competitors

Use a numbered step list where it fits

Ordered steps are clean, quotable structure for how-to content.

You: no step list · Competitors: 3/5 have it

Use clear step-by-step structure for instructional, how-to content.— Google Search Central — structured data (HowTo)
LOW⚔ vs Competitors

Add a canonical tag

Declares the master URL and avoids duplicate-content confusion.

You: no canonical tag · Competitors: 5/5 have it

LOW⚔ vs Competitors

Add a comparison table

A table with clear headers is a format AI answers pull directly for “best/compare/vs” queries.

You: 0 · Competitors: some (median)

Comparison tables are among the content formats most frequently cited by AI search.— HubSpot AI-search research
LOW⚔ vs Competitors

Add author markup (Person schema)

A named author with Person schema is an E-E-A-T signal AI answers weigh.

You: no author entity · Competitors: 3/5 have it

Show who created the content and their expertise — a core part of trust (E-E-A-T).— Google Search Quality Guidelines (E-E-A-T)
▸ Fix — paste-ready

Person — fill in the author's name

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Author Name",
  "url": "https://readme.com",
  "jobTitle": "GEO For Developer Documentation",
  "worksFor": {
    "@type": "Organization",
    "name": "Readme"
  }
}
</script>
LOW⚙ On-page

Links with no anchor text

1 links with no anchor text.

LOW⚙ On-page

No Open Graph image

No og:image (blank social/AI card).

LOW⚙ On-page

Missing Content-Security-Policy

CSP helps guard against cross-site scripting.

▸ Fix — paste-ready

Set on your server, or add a Cloudflare Transform Rule (Modify Response Header):

Content-Security-Policy: default-src 'self'; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; script-src 'self'   (tailor to your site; test in report-only first)
LOW⚙ On-page

Missing X-Content-Type-Options

Without nosniff, browsers may MIME-sniff content.

▸ Fix — paste-ready

Set on your server, or add a Cloudflare Transform Rule (Modify Response Header):

X-Content-Type-Options: nosniff
LOW⚙ On-page

Missing X-Frame-Options

Protects against clickjacking in frames.

▸ Fix — paste-ready

Set on your server, or add a Cloudflare Transform Rule (Modify Response Header):

X-Frame-Options: SAMEORIGIN
LOW⚙ On-page

Missing secure Referrer-Policy

Prevents URLs leaking on downgrade.

▸ Fix — paste-ready

Set on your server, or add a Cloudflare Transform Rule (Modify Response Header):

Referrer-Policy: strict-origin-when-cross-origin
GET AHEAD — pull in front of the field (9)
GET AHEAD✦ Net-new

Version-aware AI answer regression testing

Build a test harness that asks the same integration questions against current and deprecated versions, records cited URLs and code, and fails when an assistant recommends a retired endpoint or parameter. Tie each test case to the product release that could invalidate it.

GET AHEAD✦ Net-new

Retrieval-safe chunk boundary tests

Test whether each independently retrieved section still contains the endpoint, version, authentication assumption, units, and exceptions needed to interpret it. This turns the article's 'correct in chunks' principle into a measurable documentation quality gate.

GET AHEAD✦ Net-new

OpenAPI-to-prose contradiction detection

Continuously compare narrative docs and examples with the canonical OpenAPI description for parameter names, required fields, status codes, and deprecations. Publish the parity result internally and block releases when high-risk contradictions appear.

GET AHEAD✦ Net-new

Citation provenance experiments

For selected high-value questions, record not only whether ReadMe is cited but which exact passage supports each claim, whether the assistant combines incompatible versions, and whether the cited page is primary documentation or a third-party paraphrase.

GET AHEAD✦ Net-new

Adversarial support-question corpus

Create tests from real ambiguous tickets, incomplete prompts, copied error messages, and unsafe requests. Score whether assistants ask for the missing version or environment instead of confidently producing a generic but wrong answer.

GET AHEAD

Add a key-takeaways / TL;DR block

A short summary of the main points near the top gives AI a clean, quotable answer.

You: not on your page · Competitors: 2/5 have it

Front-load the conclusion — users decide in seconds whether to keep reading.— Nielsen Norman Group
▸ Fix — paste-ready

Drop this near the top of the page:

<p class="tldr"><strong>TL;DR:</strong> GEO and AEO for developer documentation mean helping AI systems find the canonical docs, retrieve a self-contained passage, and return technically correct guidance or a citation. Prioritise clear HTML, stable URLs, accurate versions and dates, tested examples, sensible schema, crawl access, and a repeatable prompt suite; treat llms.txt and other AI-specific signals as inexpensive experiments rather than proven shortcuts.</p>
GET AHEAD

Add an in-page table of contents

Jump-links help both readers and AI segment and cite the right section.

You: not on your page · Competitors: 1/5 have it

In-page navigation helps scanning readers jump straight to the part they need.— Nielsen Norman Group
GET AHEAD

Publish an EntityMap (entitymap.json)

None of your competitors publish an EntityMap yet — doing it now puts you in front of the field. It's a machine-readable index of your key concepts, each linked to Wikidata, that AI answer engines read directly.

Publishing an EntityMap lifted AI-visibility scores by as much as 26 points within 48 hours, and the EntityMap was cited 2.2–3.0× more often than the site's own About page.— Waikay — EntityMap case study, waikay.io
▸ Fix — paste-ready

A complete EntityMap for your site, ready to publish — each Wikidata/Wikipedia sameAs link has been checked and any that didn't resolve were removed. Save it as entitymap.json at your site root (https://readme.com/entitymap.json) and link it from your homepage. Spec: entitymap.org.

{
  "version": "1.0",
  "schema": "https://entitymap.org/spec/v1.0",
  "publisher": {
    "name": "ReadMe",
    "url": "https://readme.com",
    "sameAs": [
      "https://www.linkedin.com/company/readme",
      "https://github.com/readmeio"
    ]
  },
  "generated": "2026-08-07T00:00:00Z",
  "entities": [
    {
      "entityId": "e_001",
      "@type": "Organization",
      "name": "ReadMe",
      "description": "ReadMe provides a platform for creating, managing, and improving developer documentation and API references.",
      "sameAs": "",
      "relations": [
        {
          "predicate": "publishes",
          "targetId": "e_002",
          "targetName": "Developer documentation"
        },
        {
          "predicate": "explains",
          "targetId": "e_003",
          "targetName": "Generative engine optimization"
        },
        {
          "predicate": "explains",
          "targetId": "e_004",
          "targetName": "Answer engine optimization"
        }
      ],
      "hasChunks": [
        "organization-overview",
        "developer-documentation-resources"
      ]
    },
    {
      "entityId": "e_002",
      "@type": "Service",
      "name": "Developer documentation",
      "description": "Developer documentation explains how developers can understand, integrate with, and troubleshoot software products and APIs.",
      "sameAs": "",
      "relations": [
        {
          "predicate": "documents",
          "targetId": "e_005",
          "targetName": "Application programming interface"
        },
        {
          "predicate": "uses",
          "targetId": "e_006",
          "targetName": "Structured data"
        }
      ],
      "hasChunks": [
        "documentation-principles",
        "api-reference",
        "quickstarts"
      ]
    },
    {
      "entityId": "e_003",
      "@type": "DefinedTerm",
      "name": "Generative engine optimization",
      "description": "Generative engine optimization is the practice of making web content easier for generative AI systems to discover, interpret, select, and cite accurately.",
      "sameAs": "",
      "relations": [
        {
          "predicate": "appliesTo",
          "targetId": "e_002",
          "targetName": "Developer documentation"
        },
        {
          "predicate": "relatedTo",
          "targetId": "e_007",
          "targetName": "Search engine optimization"
        }
      ],
      "hasChunks": [
        "geo-definition",
        "geo-for-developer-docs",
        "geo-measurement"
      ]
    },
    {
      "entityId": "e_004",
      "@type": "DefinedTerm",
      "name": "Answer engine optimization",
      "description": "Answer engine optimization structures and supports content so answer systems can retrieve it and produce accurate direct responses.",
      "sameAs": "",
      "relations": [
        {
          "predicate": "appliesTo",
          "targetId": "e_002",
          "targetName": "Developer documentation"
        },
        {
          "predicate": "relatedTo",
          "targetId": "e_003",
          "targetName": "Generative engine optimization"
        }
      ],
      "hasChunks": [
        "aeo-definition",
        "answer-ready-structure",
        "aeo-measurement"
      ]
    },
    {
      "entityId": "e_005",
      "@type": "DefinedTerm",
      "name": "Application programming interface",
      "description": "An application programming interface is a defined interface through which software components communicate and exchange requests and responses.",
      "sameAs": "https://www.wikidata.org/wiki/Q165194",
      "relations": [
        {
          "predicate": "documentedBy",
          "targetId": "e_002",
          "targetName": "Developer documentation"
        }
      ],
      "hasChunks": [
        "api-concepts",
        "api-reference",
        "api-examples"
      ]
    },
    {
      "entityId": "e_006",
      "@type": "DefinedTerm",
      "name": "Structured data",
      "description": "Structured data is machine-readable markup that explicitly identifies the entities, properties, and relationships described on a web page.",
      "sameAs": "",
      "relations": [
        {
          "predicate": "supports",
          "targetId": "e_003",
          "targetName": "Generative engine optimization"
        }
      ],
      "hasChunks": [
        "schema-markup",
        "json-ld-guidance"
      ]
    },
    {
      "entityId": "e_007",
      "@type": "DefinedTerm",
      "name": "Search engine optimization",
      "description": "Search engine optimization improves a site's ability to be crawled, understood, and surfaced in search results for relevant queries.",
      "sameAs": "https://www.wikidata.org/wiki/Q180711",
      "relations": [
        {
          "predicate": "relatedTo",
          "targetId": "e_003",
          "targetName": "Generative engine optimization"
        }
      ],
      "hasChunks": [
        "seo-comparison",
        "shared-foundations"
      ]
    }
  ]
}
GET AHEAD

Answer the questions the competitors answer

Your page already answers questions of its own. These 8 are covered by the competitors and not by yours — adding them widens the range of searches you can be the answer to.

▸ See the 8 questions

Questions the competitors answer that yours doesn't — with how many of them cover each one:

  • How often should developer content be refreshed? — 3/5: draft.dev, dev.to, heavybit.com
  • What Changed with Google’s February 2026 Discover Core Update? — 1/5: draft.dev
  • How does the February 2026 Google Discover Core Update affect developer content? — 1/5: draft.dev
  • How Can Teams Adapt to GEO/AEO without Starting from Scratch? — 1/5: draft.dev
  • Do backlinks still matter for AI visibility? — 1/5: draft.dev
  • How does the February 2026 Google Discover update affect AEO/GEO strategy? — 1/5: draft.dev
  • How can smaller developer tool companies compete with larger brands in AI search? — 1/5: draft.dev
  • Need to tell us more? — 1/5: developers.google.com
ALREADY STRONG (12)
✓ Keyword in title · ✓ Keyword in H1 · ✓ Keyword in opening · ✓ Short-answer opening · ✓ Question-style headings · ✓ Answered question headings · ✓ Meta description · ✓ Single clear H1 · ✓ HTTPS · ✓ Internal linking · ✓ AI crawlers allowed · ✓ Uses quotations
Your goal — this is what getting cited by AI answers looks like:

How it looks in citations

A mock of how answer engines cite this page — the layout AI answers use, with your page as the source. Sample wording, not the real answer.
✦ AI Overview1 source
A primer on Generative Engine Optimization and Answer Engine Optimization, and how the practice applies to API docs specifically.
What GEO and AEO Mean for Developer Documentation · ReadMe
readme.com
◆ ChatGPT
A primer on Generative Engine Optimization and Answer Engine Optimization, and how the practice applies to API docs specifically. readme.com +1

Full detail & evidence

The raw signal readouts and detail behind the report — expand what you want to dig into.

AI answer-engine (GEO) signal readout
Whether AI answers (Google AI Overviews, ChatGPT, Perplexity) would cite this page — the signals that make content quotable, which also feed the page score above.
ANSWER STRUCTURE
Question-style headings8
…answered with a full block6
Single clear H1 + subheadingsYes
FAQ questions found0
FAQ full answers (40+ words)0
Avg FAQ answer length0 words
FAQ marked up with schemaNo
Short-answer openingYes
Lists / tables4 / 0
GEO CONTENT SIGNALS
Statistics / data points0
Statistic density0 /100 words
Citations to sources0
Authoritative citations0
Expert quotations0
Hedging density0.2 /100 words
STRUCTURE, ENTITY & CRAWLABILITY
Key-takeaways / TL;DR blockNo
Table of contentsNo
Comparison tables0
Definition lists0
Semantic HTML5 (article/main/section)Yes
Author entity (Person schema)No
Entity sameAs linksNo
Content freshness
AI crawlers (robots.txt)All allowed
llms.txt presentNo
EntityMap publishedNo
Keyword gap — missing words, differentiators, shared, only-you
MISSING WORDS
googlevisibility
DIFFERENTIATORS — SOME RIVALS HAVE THESE
spanstylecolorspan styleclassspan classe6edf3codedevbrandlinetoolstoolcreatea5d6ffwrapff7b72refreshingstrapifebruarydiscoverimplementation79c0ffself
SHARED — YOU AND THE COMPETITORS BOTH COVER
technicaldevelopersaeogeodeveloperoptimizationseoapigenerativeupdatellmspracticesengine optimizationtraditionalstructuredmattersaddquestionsguidestructured dataclearclear technicalschemastrategies
ONLY ON YOUR PAGE
unsettled
Full comparison — you vs the competitors
CONTENT DEPTH
SignalYouCompetitors
Word count 9542570
Paragraphs2147
Reading ease (Flesch)6649
Avg sentence length14w21w
Text-to-HTML ratio59%20.1%
HEADINGS & STRUCTURE
SignalYouCompetitors
Subheadings (H2) 68
Sub-subheadings (H3)314
Question headings83
…answered (40+ words)62
Lists (ul/ol) 412
Tables 01
ON-PAGE GEO
SignalYouCompetitors
Title length58 chars57 chars
Meta descriptionYes5/5
H1 count11
Canonical tag No5/5
Mobile viewportYes5/5
HTTPSYes5/5
FAQ QUALITY
SignalYouCompetitors
FAQ questions0
Full answers (40+ words)0
Avg answer length0w
FAQ schemaNo1/5
GEO CONTENT SIGNALS
SignalYouCompetitors
Statistics / data points 06
Citations to sources 013
Authoritative citations0
Expert quotations0
Hedging density0.2/100w0.2/100w
TRUST & ENTITY
SignalYouCompetitors
Key-takeaways / TL;DRNo2/5
Table of contentsNo1/5
Comparison tables0
Author entity (Person) No3/5
Entity sameAsNo0/5
Content age (months)2
LINKS, MEDIA & AI CRAWLABILITY
SignalYouCompetitors
Internal links2340
External links1325
Video / media embeds0
AI crawlers blocked0
llms.txt presentNo1/5
EntityMap publishedNo0/5
▲ = the competitors clearly out-do you. "Competitors" = the median (numbers) or count (yes/no) across the set.
Full technical data (appendix)
OVERVIEW
Addresshttps://readme.com/resources/what-geo-aeo-means
Status code200
IndexabilityIndexable
Content typetext/html; charset=utf-8
Server response153 ms
URL folder depth2
Generator (CMS)
Last modified
HEADINGS
H1What GEO and AEO Mean for Developer Documentation
H1 / H2 / H31 / 6 / 3
Total headings10
DIRECTIVES & INTERNATIONAL
Meta robots
Canonical
hreflang tags0
Languageen
META & SOCIAL
Character encodingDeclared
FaviconDeclared in <head>
Meta keywords
Open Graph completeNo
Twitter cardYes
AMP pageNo
Forms1
iframes0
CONTACT & BOOKING (detected)
Phone
Emailsupport@readme.io
WhatsApp
Postcode
Opening hoursNo
ChatbotIntercom · medium confidence
Booking mechanismChat only (booking via agent)
REVIEWS & TRUST (detected)
Star ratings shownNo
Testimonials / reviewsNo
Video testimonialsNo
AggregateRating schemaNo
Review platforms
CONTENT QUALITY
Word count (rendered)954
Source word count (raw)3964
Sentences69
Avg sentence length14 words
Reading ease (Flesch)66 (Easy)
Paragraphs21
JS-reliance ratio0.24
Text-to-HTML ratio59%
LINKS & MEDIA
Internal outlinks23 (19 unique)
External outlinks13 (13 unique)
Nofollow links0
Broken jump-links0
Images7 · alt coverage 100%
Image formats0 next-gen (WebP/AVIF) · 5 lazy-loaded · 0 decorative (empty alt)
Structured-data blocks0
SECURITY
HTTPSYes
Mixed content0
HSTSYes
Content-Security-PolicyNo
X-Content-Type-OptionsNo
X-Frame-OptionsNo
Referrer-PolicyNo
VALIDATION
HTML size184 KB
<head> / <body> count1 / 1
Invalid elements in <head>0
Bad content-typeNo
DOM size475 elements

Produced by Citation Gap

The on-page GEO analyser by John Lawson — every issue with a ready fix carries its own ▸ Fix with the paste-ready code, wording or example.

→ citationgap.johnlawson.dev
Citation Gap — by John Lawson | citationgap.johnlawson.dev