Skip to content

Instantly share code, notes, and snippets.

@icaroharry
Created April 29, 2026 22:01
Show Gist options
  • Select an option

  • Save icaroharry/fdaa90fe8aef83f729f57a857fad08e4 to your computer and use it in GitHub Desktop.

Select an option

Save icaroharry/fdaa90fe8aef83f729f57a857fad08e4 to your computer and use it in GitHub Desktop.
GEO Audit Report — sendblue.com (2026-04-29)

GEO Audit Report: Sendblue

Audit Date: 2026-04-29 URL: https://sendblue.com (canonical: https://www.sendblue.com) Legal Entity: Round One Inc., 344 West End Avenue, New York NY 10024 Business Type: SaaS — Developer/B2B platform (iMessage API for business) Pages Analyzed: ~25 sampled (sitemap inventory: 177–263 URLs depending on count method; ~80 blog posts, ~30 glossary terms, 22 use-case pages, 14 competitor compare pages, 25+ integration pages)


Executive Summary

Overall GEO Score: 66 / 100 — Fair

Sendblue has the bones of a strong GEO presence: server-rendered Webflow pages, fully permissive AI crawler access, dense FAQ schema on key pages, a sitewide Organization + WebSite JSON-LD graph, and an unusually deep topical cluster around iMessage API / AI agents / business texting. The site is technically discoverable by every major AI crawler today.

What ceiling its score:

  1. Brand-authority entity gap — no Wikipedia/Wikidata entity, near-zero Reddit footprint, and a fabricated-looking aggregateRating (5.0 / 21,284) on the homepage that risks a Google manual action.
  2. E-E-A-T fragility — no /about or /team page (returns 404), no author profile pages, every claim is uncited, no named customer case studies. Trust survives only because of strong legal/compliance signals (SOC 2, HIPAA, real ToS/Privacy under Round One Inc.).
  3. Content-factory signal — site-wide <lastmod> of 2026-04-05 across the entire sitemap and a templated "Best X in 2026" / per-language permutation pattern across ~80 blog posts suggest CMS-batch republish rather than authentic maintenance.
  4. Schema inconsistencyBlogPosting + author schema is on roughly half of sampled blog posts (and where present, author is an Organization, not a Person); /pricing has zero pricing schema; the glossary uses FAQPage instead of DefinedTerm.

The fastest GEO score lift comes from three actions: publish a real /llms.txt (or verify the existing one is reachable — see note in Critical Issues), remove the fabricated aggregateRating, and ship /about + author pages. Those three changes alone should move the composite score from 66 to ~75 within 30 days.

Score Breakdown

Category Score Weight Weighted Score
AI Citability 78 / 100 25% 19.50
Brand Authority 56 / 100 20% 11.20
Content E-E-A-T 54 / 100 20% 10.80
Technical GEO 78 / 100 15% 11.70
Schema & Structured Data 62 / 100 10% 6.20
Platform Optimization 68 / 100 10% 6.80
Overall GEO Score 66.20 → 66 / 100

Strongest dimension: AI Citability (78) — content is genuinely quotable, especially the glossary, /api, and the 14 competitor /compare/* pages. Weakest dimension: Content E-E-A-T (54) — missing /about, no author bios, uncited stats, possible AI-content patterns.


Critical Issues (Fix Immediately)

1. Fabricated aggregateRating on homepage SoftwareApplication schema

Affected: / (homepage @graph SoftwareApplication entity) Issue: Homepage JSON-LD declares "aggregateRating": { "ratingValue": "5.0", "ratingCount": "21284" }. 21,284 perfect-score reviews is implausible for a SaaS of Sendblue's size, has no on-page review widget, and is uncorroborated by linked review platforms. Violates Google's Review snippet policy (rating must be sourced from a real review system with itemReviewed). Why it matters: Real risk of Google manual action / structured-data spam penalty. Gemini's Knowledge Graph also penalizes inflated ratings. Fix: Either remove aggregateRating from the homepage entirely, or replace with G2's actual weighted average + review count and add itemReviewed linkage. Do not keep the current value.

2. No Wikipedia / Wikidata entity for Sendblue or Round One Inc.

Affected: Off-site (entity graph) Issue: en.wikipedia.org/wiki/Sendblue, /wiki/SendBlue, and /wiki/Round_One_Inc. all return 404. No Wikidata entry confirmed. Sendblue's name collides with Sendinblue (Brevo) — the brand even has a /blog/sendblue-vs-sendinblue post acknowledging the confusion. Why it matters: Wikipedia/Wikidata is the single strongest entity-recognition signal for ChatGPT, Claude, Perplexity, and Gemini. Without it, LLMs treat "Sendblue" as a string they're unsure about, not a known SaaS company. Fix: Draft and submit a Wikipedia article citing YC backing, G2 reviews (57+), Hacker News coverage, named founders, funding, and customer counts. Build a Wikidata entry in parallel. 60–90 day project.

3. llms.txt status uncertain — verify and publish if absent

Affected: https://sendblue.com/llms.txt Issue: Three independent fetches during this audit (initial WebFetch, geo-ai-visibility, geo-technical) all returned 404 / file-not-found. One subagent (geo-platform-analysis) reported HTTP 200 with content. Verify the file is actually live at the production URL before assuming coverage; if absent, publish it. Fix: Confirm by visiting https://sendblue.com/llms.txt directly. If 404, publish a curated version using the skeleton in Quick Win #1 below. If 200, audit the existing file for completeness.

4. Two flagship blog URLs return 404

Affected: /blog/imessage-api-the-complete-guide-for-businesses-2026, /blog/best-business-texting-api-in-2026-complete-buyers-guide Issue: Both URLs (referenced in initial recon based on the /blog listing page) return 404 when fetched directly. Live equivalents exist at /blog/imessage-api, /blog/best-imessage-api-comparison, and /blog/best-business-texting-api. This is either stale routing, an unpublish, or sitemap drift. Fix: Audit sitemap.xml for stale entries, 301-redirect the dead URLs to live equivalents, and check Webflow for any draft-mode posts referenced in nav/footer.

5. BlogPosting / Article schema missing on ~50% of blog posts

Affected: Sampled gaps include /blog/imessage-api, /blog/sendblue-vs-sendinblue. Estimated ~40 of 80+ posts affected. Issue: Long-form 2026 content shipping with only sitewide Organization + WebSite schema — no headline, datePublished, dateModified, author, wordCount, or mainEntityOfPage. AI models discount the citability of articles without Article schema. Fix: One renderer-template change in Webflow's blog post template adds full BlogPosting to every post simultaneously. See Quick Win #3 below for the JSON-LD shape.


High Priority Issues (Fix Within 1 Week)

6. /pricing has zero pricing schema despite 5 FAQs and 3 priced tiers

Affected: /pricing, /products/texting (same pattern, 6 unmarked FAQs) Issue: Highest-intent page on the site has the thinnest schema — no FAQPage, no Product, no Offer, no SoftwareApplication. AI "how much does Sendblue cost" queries cannot extract structured pricing. Fix: Add FAQPage + AggregateOffer with three nested Offer entries (Free Sandbox $0, AI Agent $100/line/mo, Enterprise custom). See Quick Win #4 below.

7. Author attribution is partial and lacks Person schema / author pages

Affected: All ~80 blog posts Issue: Some posts ship a visible "Nikita Jerschow" byline; many do not. Where present, author in JSON-LD is Organization, not Person. No /blog/author/*, /authors/*, or /team/* pages exist (verified 404). E-E-A-T evaluators treat a byline-without-bio as nominal attribution. Fix: Build /team/[author-slug] pages with bio, photo, role, LinkedIn link, expertise areas. Update blog template to emit Person author with sameAs to LinkedIn. Backfill bylines on the ~40 posts missing them.

8. No /about or /team page

Affected: /about (404), /team (404), /press (404), /careers (404 — links off-site to workatastartup.com) Issue: AI engines (especially Perplexity, Google AI Overviews) heavily weight institutional identity. Without an About page, Sendblue cannot be confirmed as an entity beyond homepage marketing copy. This is also a Wikipedia-prerequisite citation surface. Fix: Ship a single-page /about with founders (Rob Haber, Nikita Jerschow, Jack Tsaur per public sources), NYC HQ, YC batch, mission, "we are Round One Inc." legal-entity statement, LinkedIn links. Add Organization + Person schema.

9. Heavy third-party tracker stack degrades INP and LCP

Affected: Every page, especially /, /pricing, /api Issue: Homepage loads 12+ tracker/analytics scripts (GTM, GA4, Google Ads, Meta Pixel initialized twice for the same ID 908654888026121, TikTok Pixel, Segment, Ahrefs, Hyros, G2, Reb2b, Rewardful, CookieYes, PostHog). Direct INP risk during interaction; LCP risk via render-blocking script execution. Fix: Route everything through GTM, defer non-critical pixels until consent/post-interaction, remove the duplicate Meta Pixel init, audit whether Reb2b/Hyros/G2/Ahrefs need to fire on every page.

10. Statistical claims are uncited

Affected: Sitewide — homepage, /api, /products/texting, blog Issue: Claims like "131% higher response rates," "1M messages sent per week," "$2.1B+ customer revenue," "55% of US smartphone users on iPhone," "$150B no-show cost," "50% reduction in no-shows" appear without source links or methodology pages. AI models preferentially cite pages that cite their sources. Fix: Build a /data or /research page with primary methodology behind the 131% / 1M-msg-week / 99.9% uptime claims. Inline-cite external stats (Statista, Apple, HHS, The Campaign Registry).

11. Zero Reddit footprint

Affected: Off-site Issue: site:reddit.com "Sendblue" returns no indexed results. Perplexity, ChatGPT, and Google AI Overviews disproportionately cite Reddit for "real user opinions." Fix: Founder/employee accounts post 3–5 genuine answers per month in r/SaaS, r/sales, r/RealEstate, r/iOSProgramming on existing iMessage/SMS-API threads. Even 10 well-cited Reddit comments will start surfacing Sendblue in Perplexity within weeks.

12. Sitemap <lastmod> is uniform across the entire corpus

Affected: https://www.sendblue.com/sitemap.xml Issue: 174 of 177 URLs share <lastmod>2026-04-05. This pattern reads as a CMS regeneration timestamp, not real edit dates — a freshness anti-signal AI ranking systems increasingly use to detect content factories. Fix: Configure Webflow's sitemap to emit per-CMS-item updated-on field as <lastmod>, or generate the sitemap server-side via a Vercel route reading actual modification dates.

13. No named customer case studies

Affected: /customers (does not exist), /case-studies (does not exist), /use-cases/* (logo walls only, no named customers) Issue: LifeMD (NASDAQ:LFMD) is mentioned as a real client on one deep blog post but isn't featured anywhere prominent. AI models prefer to cite case studies with named customers, specific numbers, and quotes. Fix: Build 3–5 /customers/[name] case studies starting with LifeMD: customer name, industry, problem, integration approach, specific result, named quote with title.


Medium Priority Issues (Fix Within 1 Month)

14. Organization schema is missing core fields

Issue: Sitewide Organization declares only name, url, logo, sameAs (3 platforms), alternateName. Missing: address, contactPoint, legalName ("Round One Inc."), foundingDate, parentOrganization, numberOfEmployees. AI cannot verify the legal entity behind sendblue.com. Fix: See Quick Win #5 — single sitewide diff.

15. sameAs only includes 3 platforms

Issue: Current sameAs: LinkedIn, Instagram, G2. Missing: X/Twitter (handle visible on-page as x.com/sendbluehq), YouTube (9 embeds confirmed on homepage), Crunchbase, GitHub (github.com/sendblue-api is a real org with 10+ repos), Wikipedia/Wikidata (when created). Fix: Expand sameAs array. ~30-minute change.

16. www / non-www canonical inconsistency

Issue: JSON-LD @id and url reference https://sendblue.com/ (non-www) while <link rel="canonical"> and the actual served domain are https://www.sendblue.com/. Non-www → www redirect is HTTP 307, not 301. Fix: Pick one canonical (recommend www) and align JSON-LD. Change Vercel routing to 308/301.

17. Two LinkedIn company pages split brand authority

Issue: /company/send-blue and /company/sendblue both exist on LinkedIn. Fix: Pick one canonical, request LinkedIn redirect/merge of the other.

18. Glossary uses FAQPage instead of DefinedTerm

Affected: ~30 pages under /glossary/* Issue: Glossary entries are definition pages — DefinedTerm / DefinedTermSet is the canonical schema for "what is X" intents that AI models specifically query for. Fix: Template change in glossary renderer. See Quick Win #2.

19. Heading hierarchy violations on blog template

Issue: /blog/best-business-texting-api (and likely the shared template) jumps H2 → H4, skipping H3. AI Overviews downgrade pages with broken hierarchy. Fix: Webflow class-level fix that propagates to all 80+ posts.

20. Missing security headers

Issue: No Content-Security-Policy, no Referrer-Policy, no Permissions-Policy. HSTS lacks includeSubDomains and preload. Fix: Vercel headers config — start with Referrer-Policy + Permissions-Policy. Build CSP in report-only mode for 2 weeks before enforcing.

21. No Bing Webmaster Tools verification or IndexNow

Issue: No msvalidate.01 meta tag detected. No /indexnow.txt key file. April 2026 content surfaces slowly in Bing Copilot. Fix: Verify Bing Webmaster Tools, add meta tag, host IndexNow key file, wire Webflow publish webhook to ping Bing on every CMS update.

22. No homepage meta description

Issue: Forfeits a free 155-char self-summarization slot AI search engines often quote verbatim. Fix: Author a 150–155 char description that leads with the canonical definition: "Sendblue is the iMessage API for businesses — send and receive Apple iMessages programmatically with REST and webhooks. SOC 2 Type II, HIPAA-ready."

23. HowTo schema on /api is deprecated

Issue: Google removed HowTo rich results in September 2023. The schema isn't harmful but adds zero value. Fix: Remove or migrate the content body to a structured Article with numbered step headings.

24. AI-content patterns in blog

Issue: Site-wide April 5 lastmod, "Complete Guide" / "Best X in 2026" naming, per-language permutations (Python, Node, Java, Kotlin, Go, Elixir, C#, PHP, React Native), placeholder-style examples in HIPAA guide ("Dr. Smith," "March 30") with unsourced statistics. Reads as human-edited AI / marketing-optimized hybrid. Fix: Stagger publish dates going forward, add visible "Last reviewed: [date]" with a real review note on flagship pages, replace placeholders with real (anonymized) examples, cite stats.


Low Priority Issues (Optimize When Possible)

25. No BreadcrumbList on most non-blog pages

Affected: /, /pricing, /api, /blog, /glossary/*, /products/*, /features/*, /integrations/*, /compare/sendblue-vs-twilio, /privacy-policy Fix: Extend Webflow renderer to emit BreadcrumbList sitewide.

26. No WebSite.potentialAction SearchAction

Issue: Disables sitelinks searchbox eligibility. 0/15 sampled pages have this. Fix: Add to the shared WebSite block — single change, sitewide effect.

27. No speakable property anywhere

Issue: Direct GEO signal for voice-assistant readability is unused. Fix: Mark the lede paragraph + key FAQ answers as speakable on the glossary and /api.

28. Organization.aggregateOffer / pricing tiers missing on /api

Issue: /api shows a single Offer at $100 but Sendblue has three tiers. Fix: Use AggregateOffer with lowPrice/highPrice.

29. No inLanguage declared anywhere

Fix: Add "inLanguage": "en-US" to Organization, WebSite, and all content types.

30. Missing OG/Twitter meta on some pages

Fix: Audit and complete OG/Twitter card coverage, especially on glossary and feature pages.

31. Hero image not preloaded

Issue: Homepage LCP candidate (66edf6078b47584cfeee4bcb_dashboard.png) is referenced in og:image but not preloaded with <link rel="preload" fetchpriority="high">. Fix: Add preload tag — likely 200–500ms LCP improvement.

32. WebFont.load() is render-blocking

Issue: Legacy Google Fonts loader vs. modern <link rel="preload"> pattern. No font-display: swap directive observed. Fix: Modern font loading; add font-display: swap.

33. Trustpilot has a negative review going unanswered

Issue: AI summarizers will surface negative reviews when they exist alone. Fix: Public, professional response to the negative review softens the citation.


Category Deep Dives

AI Citability (78 / 100)

Sendblue produces unusually citation-friendly content for a SaaS site. The glossary uses inverted-pyramid definitions, /api leads with hard numerics (99.9% SLA, <2s delivery), pricing is structured as a clear tier table, and FAQ blocks are nearly universal.

Per-page sample:

URL Citability Notes
/glossary/imessage-api 92 Best in class — verbatim-quotable definition, 4 FAQs, ~1,800 words, sub-headed sections
/api 86 Hard numbers, 4-language code samples, 6 FAQs
/pricing 80 Clean tier extraction, 5 FAQs
/ (homepage) 62 Strong stats but most copy is benefit-headline marketing voice
Blog (template) ~65 Drops 15–20 points from missing author trust signals

Top quotable passages: "An iMessage API is a web service that lets developers send and receive Apple iMessages programmatically via standard HTTP requests" (95/100); "99.9% uptime SLA … <2s average delivery time … 5+ years in production" (86/100).

Brand Authority (56 / 100)

Solid mid-funnel presence, dominant Wikipedia ceiling.

Platform Status Score (of weight)
Wikipedia Absent (404) 0/30
Wikidata Absent (folded into Wikipedia)
Reddit Effectively zero 6/20
YouTube Minimal — 1 demo + 1 third-party tutorial 7/15
LinkedIn Two pages exist (split authority) 9/10
GitHub Strong — sendblue-api org with 10+ repos 13/15
Hacker News Multiple threads, YC backing 5/10
Product Hunt Active page + reviews 5/10
G2 Strong (57+ reviews, mostly positive) 7/10
Trustpilot Mixed (one detailed negative review) 2/5
Y Combinator Listed 2/5

GitHub presence is unusually strong for a SaaS — that's a real entity-recognition signal for AI coding assistants. But Wikipedia + Reddit gaps cap the overall score.

Content E-E-A-T (54 / 100)

Pillar Score
Experience 9/25 — no named case studies, no original screenshots, one named public client (LifeMD) buried in a blog post
Expertise 11/25 — partial bylines, no author pages, no credentials, no Person schema
Authoritativeness 9/25 — YC + G2 only, no /about, no /team, no /press
Trustworthiness 18/25 — strongest pillar; HTTPS, comprehensive ToS (NY law, arbitration), Privacy Policy with GDPR/CCPA, real legal entity, NAP consistent
Depth & Freshness 9/15 — flagship pages 2,000–3,200 words but use-case/compare pages are thin; uniform lastmod is a red flag
Topical Authority 7/10 — strong clustering around iMessage API / business texting / AI agents

AI-content risk: Likely human-edited AI / marketing-optimized hybrid. Not unedited AI, but the patterns warrant flagging (templated naming, uniform dates, placeholder examples in HIPAA guide).

Technical GEO (78 / 100)

Dimension Score
Crawlability & Indexability 85 — clean robots.txt, sitemap referenced, canonicals present
Security 65 — HTTPS+HSTS, but missing CSP/Referrer-Policy/Permissions-Policy
URL Structure 88 — clean slugs, www/non-www mismatch in JSON-LD
Mobile Optimization 90 — Webflow responsive, viewport set, lazy-loaded images
Core Web Vitals (directional) 60 — INP risk from 12+ trackers; need real CrUX measurement
JS Dependency / SSR 95 — full server-rendered HTML, AI crawlers see complete content
AI Crawler Access 95 — fully permissive, no bot blocks (–5 only for missing llms.txt confirmation)

AI crawler test (direct fetches): GPTBot, ClaudeBot, PerplexityBot all return HTTP 200 with full HTML. No X-Robots-Tag, no Cloudflare bot challenge.

Schema & Structured Data (62 / 100)

Pillar Score
Coverage 18/30 — /pricing, /products/texting, glossary, ~50% of blog posts lack appropriate schema
Accuracy / validation 14/25 — fabricated aggregateRating, deprecated HowTo, missing required fields
GEO-critical types (Org+sameAs, Person author, DefinedTerm, speakable) 15/30 — Org minimal, Person author missing, DefinedTerm not used
Delivery & technical hygiene 15/15 — JSON-LD, server-rendered, @graph linking, @id references — excellent foundation

Strong technical delivery undermined by content gaps. The fabricated aggregateRating is the single biggest landmine.

Platform Optimization (68 / 100)

Platform Score Strongest Signal Biggest Gap
Google AI Overviews 72 FAQ + HowTo schema, fresh dates, question-targeted H2s Heading hierarchy violations, weak author E-E-A-T
ChatGPT (Bing/SearchGPT) 68 Strong Org + sameAs, llms.txt (if confirmed live) No Wikipedia entity
Perplexity AI 74 (strongest) 14 competitor compare pages match recommendation queries Thin Reddit footprint, unsourced stats
Google Gemini 65 YouTube embeds, full Google ecosystem wiring Inflated aggregateRating risks penalty, no Knowledge Graph
Bing Copilot 62 (weakest) Permissive robots.txt, schema markup No IndexNow, no Bing Webmaster verification

Sendblue is most optimized — incidentally — for Perplexity. The 14 /compare/* pages with FAQPage schema, fresh dates, and clean Webflow output align directly with how Perplexity sources answers.


Quick Wins (Implement This Week)

1. Verify and (if needed) publish /llms.txt

Effort: 1 hour. Impact: +5–10 composite points.

Visit https://sendblue.com/llms.txt directly. If 404, publish:

# Sendblue

> Sendblue is the leading iMessage API for businesses, enabling developers to send and receive Apple iMessages (blue bubbles) programmatically at scale via REST API. SOC 2 Type II certified and HIPAA-compliant. Operated by Round One Inc., 344 West End Avenue, New York NY 10024.

## Core Product
- [iMessage API](https://www.sendblue.com/api): REST API with Node, Python, cURL, CLI examples.
- [Pricing](https://www.sendblue.com/pricing): Free Sandbox ($0), AI Agent ($100/month per line), Enterprise.
- [Features](https://www.sendblue.com/features): Read receipts, typing indicators, group messaging, media, voice memos.

## Reference
- [Glossary: iMessage API](https://www.sendblue.com/glossary/imessage-api)
- [Glossary index](https://www.sendblue.com/glossary)

## Comparisons
- [Compare hub](https://www.sendblue.com/compare): Head-to-head with Twilio, MessageBird, Bandwidth, Sinch, Telnyx, Vonage, Plivo, etc.

## Developer
- [GitHub: sendblue-api](https://github.com/sendblue-api)
- [API Documentation](https://docs.sendblue.com)

## Use Cases
- [Use cases hub](https://www.sendblue.com/use-cases): 22+ vertical playbooks.

## Optional
- [Blog](https://www.sendblue.com/blog)
- [Sitemap](https://www.sendblue.com/sitemap.xml)

Add a fuller /llms-full.txt with concatenated full text of /api, /pricing, /glossary/*, and the top 10 blog posts.

2. Remove or fix the homepage aggregateRating

Effort: 5 minutes. Impact: Eliminates manual-action risk.

Either remove the aggregateRating from the homepage SoftwareApplication entity, or replace with G2's actual values plus itemReviewed:

"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": "4.8",
  "reviewCount": "57",
  "bestRating": "5",
  "worstRating": "1"
}

3. Backfill BlogPosting + Person author across the blog

Effort: 1 day (template change). Impact: Closes a 40-post gap, lifts blog citability ~15 points.

Single template diff in Webflow blog renderer:

{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "@id": "https://www.sendblue.com/blog/[slug]/#article",
  "headline": "[H1]",
  "description": "[meta description]",
  "image": "[featured image URL]",
  "datePublished": "[ISO 8601]",
  "dateModified": "[ISO 8601]",
  "wordCount": "[integer]",
  "inLanguage": "en-US",
  "author": {
    "@type": "Person",
    "@id": "https://www.sendblue.com/team/[author-slug]/#person",
    "name": "[author name]",
    "url": "https://www.sendblue.com/team/[author-slug]",
    "jobTitle": "[role]",
    "worksFor": { "@id": "https://www.sendblue.com/#organization" },
    "sameAs": ["[author LinkedIn]"],
    "knowsAbout": ["iMessage API", "Business messaging"]
  },
  "publisher": { "@id": "https://www.sendblue.com/#organization" },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://www.sendblue.com/blog/[slug]"
  }
}

4. Add FAQPage + AggregateOffer to /pricing

Effort: 30 minutes. Impact: Highest-intent page becomes AI-extractable.

{
  "@type": "Product",
  "@id": "https://www.sendblue.com/#product",
  "name": "Sendblue iMessage API",
  "brand": { "@id": "https://www.sendblue.com/#organization" },
  "offers": {
    "@type": "AggregateOffer",
    "priceCurrency": "USD",
    "lowPrice": "0",
    "highPrice": "100",
    "offerCount": "3",
    "offers": [
      { "@type": "Offer", "name": "Free Sandbox", "price": "0", "priceCurrency": "USD" },
      { "@type": "Offer", "name": "AI Agent", "price": "100", "priceCurrency": "USD",
        "priceSpecification": { "@type": "UnitPriceSpecification", "price": "100", "priceCurrency": "USD", "unitText": "per line per month" } },
      { "@type": "Offer", "name": "Enterprise", "priceSpecification": { "@type": "PriceSpecification", "priceCurrency": "USD", "description": "Custom" } }
    ]
  }
}

Plus a FAQPage block with the 5 existing pricing FAQs marked up.

5. Enrich sitewide Organization schema

Effort: 30 minutes. Impact: Sitewide entity-graph clarity for every AI engine.

Replace current Organization with:

{
  "@type": "Organization",
  "@id": "https://www.sendblue.com/#organization",
  "name": "Sendblue",
  "legalName": "Round One Inc.",
  "alternateName": ["SendBlue", "Send Blue"],
  "url": "https://www.sendblue.com/",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "344 West End Avenue",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10024",
    "addressCountry": "US"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "support@sendblue.com",
    "availableLanguage": ["English"]
  },
  "sameAs": [
    "https://www.linkedin.com/company/sendblue/",
    "https://www.instagram.com/sendbluehq/",
    "https://www.g2.com/products/sendblue/reviews",
    "https://x.com/sendbluehq",
    "https://github.com/sendblue-api",
    "https://www.youtube.com/@sendblue",
    "https://www.crunchbase.com/organization/sendblue",
    "https://www.ycombinator.com/companies/sendblue"
  ]
}

6. Fix the two 404 blog URLs

Effort: 5 minutes. 301-redirect the dead URLs to live equivalents (/blog/imessage-api, /blog/best-imessage-api-comparison).

7. Remove duplicate Meta Pixel init

Effort: 5 minutes. Single pixel for ID 908654888026121. Cleaner network panel, marginal INP improvement.

8. Switch non-www → www redirect from 307 to 308/301

Effort: One-line Vercel routing change. Consolidates link equity / AI-crawler signals.


30-Day Action Plan

Week 1: Stop the Bleeding

  • Day 1: Remove or fix the homepage aggregateRating (manual-action risk).
  • Day 1: Verify /llms.txt status; publish if absent.
  • Day 1: Fix 404 blog URLs (/blog/imessage-api-the-complete-guide-for-businesses-2026, /blog/best-business-texting-api-in-2026-complete-buyers-guide) — 301 to live equivalents.
  • Day 2: Switch non-www → www redirect to 308/301; align JSON-LD URLs to www.
  • Day 2: Remove duplicate Meta Pixel init.
  • Day 3–4: Enrich sitewide Organization schema (address, sameAs expansion, legalName).
  • Day 5: Add FAQPage + AggregateOffer to /pricing and /products/texting.

Week 2: E-E-A-T Foundations

  • Build /about page — founders, NYC HQ, YC batch, mission, Round One Inc. legal entity, LinkedIn links.
  • Build /team/[author-slug] pages for every named contributor (start with Nikita Jerschow). Bio + photo + LinkedIn + Person schema.
  • Update blog template: BlogPosting + Person author + dateModified + wordCount + image.
  • Backfill author bylines on the ~40 posts missing them.
  • Audit and inline-cite every numerical claim on the top 10 highest-traffic pages.

Week 3: Schema Completeness + Bing/Performance

  • Replace FAQPage with DefinedTerm on all ~30 glossary pages.
  • Add BreadcrumbList sitewide (currently only on blog/compare).
  • Add WebSite.potentialAction SearchAction sitewide.
  • Stand up Bing Webmaster Tools verification (msvalidate.01 meta tag) and IndexNow key file.
  • Wire Webflow publish webhook to ping Bing IndexNow.
  • Preload homepage hero image; add font-display: swap.
  • Configure Vercel security headers: Referrer-Policy, Permissions-Policy, HSTS includeSubDomains, report-only CSP.
  • Fix sitemap <lastmod> to emit per-CMS-item updated dates.
  • Fix heading hierarchy (H2 → H4 jump) in blog template.

Week 4: Brand Authority + Content Quality

  • Begin Wikipedia article draft for Sendblue / Round One Inc. (cite YC, G2 reviews, Hacker News, founders).
  • Create Wikidata entry seeded by the same sources.
  • Consolidate to one LinkedIn company page; request merge of the duplicate.
  • Publish 3 named customer case studies starting with LifeMD at /customers/lifemd (named quote, integration approach, specific result).
  • Begin Reddit seeding: 3–5 founder/employee answers per month in r/SaaS, r/sales, r/iOSProgramming on existing iMessage/SMS-API threads.
  • Public, professional response to the Trustpilot negative review.
  • Run PageSpeed Insights / CrUX on /, /pricing, /blog/[top-post]; replace directional CWV score with field measurement.

Appendix A: Verified Page Inventory

URL Status Key Findings
/ (homepage) 200 Org+WebSite+SoftwareApplication schema; inflated aggregateRating; no meta description
/pricing 200 5 FAQs unmarked; no Product/Offer schema
/api 200 FAQPage + HowTo (deprecated) + SoftwareApplication; best-marked page
/blog 200 Listing index; no Blog/CollectionPage schema
/glossary/imessage-api 200 FAQPage (should be DefinedTerm); ~1,800 words; high citability
/products/texting 200 6 FAQs unmarked; no Service schema
/blog/best-business-texting-api 200 Full BlogPosting + Person byline; H2→H4 hierarchy gap
/blog/imessage-api 200 MISSING BlogPosting schema despite long-form 2026 guide
/blog/sendblue-vs-sendinblue 200 MISSING BlogPosting AND BreadcrumbList
/blog/ai-agent-sms-texting-api 200 BlogPosting + FAQPage; author is Organization not Person
/blog/hipaa-compliant-texting-guide 200 ~2,100 words; placeholder examples; uncited stats
/compare/sendblue-vs-twilio 200 FAQPage; no Article/SoftwareApplication comparison
/compare 200 Org+WebSite+BreadcrumbList
/features/webhooks 200 FAQPage; no Service schema
/integrations/airtable 200 FAQPage; no SoftwareApplication for the integration
/privacy-policy 200 Org+WebSite only; no dateModified
/terms-of-service 200 Effective Mar 19, 2025; NY governing law; clean
/use-cases 200 Hub page; thin marketing copy
/use-cases/sales 200 Logo wall, no named case studies
/sitemap.xml 200 177 URLs; uniform 2026-04-05 lastmod
/robots.txt 200 User-agent: * / Allow: /; sitemap referenced
/llms.txt Conflicting reports — VERIFY 3 of 4 fetches returned 404; 1 reported 200
/about 404 Critical gap
/team 404 Critical gap
/press 404 Critical gap
/careers 404 Footer link goes off-site to workatastartup.com instead
/blog/imessage-api-the-complete-guide-for-businesses-2026 404 Stale URL
/blog/best-business-texting-api-in-2026-complete-buyers-guide 404 Stale URL
/blog/author/nikita-jerschow 404 Author byline leads nowhere
/customers 404 No case study hub
/case-studies 404 No case study hub

Appendix B: Caveats and Verification Items

  1. /llms.txt status: Three subagent fetches returned 404; one returned 200. Visit the URL directly in a browser and verify before assuming coverage. If 200, audit the content; if 404, publish using the skeleton above.
  2. Sitemap URL count: Initial recon counted 263 URLs; technical audit counted 177; content audit counted 391. Discrepancy likely reflects whether nested sitemaps were followed. Confirm what's actually submitted to Google Search Console.
  3. Core Web Vitals score (60): Directional only — based on script count, render-blocking patterns, page weight. Run PageSpeed Insights / CrUX on /, /pricing, and a high-traffic blog post to replace with field measurement before client delivery.
  4. G2 review count for replacement aggregateRating: Verify the actual current G2 weighted average and review count before patching the schema.
  5. Wikipedia article draft: Wikipedia notability requires multiple independent third-party sources. Compile YC backing, Hacker News coverage, G2 reviews, named founder backgrounds, and any press coverage before submitting.

Audit performed using a 5-subagent parallel methodology covering AI visibility, platform optimization, technical infrastructure, content E-E-A-T, and schema markup. Composite GEO score weighted per the GEO Audit framework: 25% citability, 20% brand authority, 20% content E-E-A-T, 15% technical, 10% schema, 10% platform optimization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment