AstraRad / Radologic Platform
A single build turned astrarad.com from an empty JavaScript shell that search engines and AI assistants could not read into 35 crawlable pages, 34 indexable URLs, five kinds of structured data, and a full machine-agent surface. This is what shipped, why it beats the competition, and what happens next.
Orientation
The plain English version, before any of the technical detail.
Before this work, every page on astrarad.com was the same blank file. The site was an Angular application that assembled itself in the visitor's browser. A human with a browser saw a finished website. Google's crawler, and every AI assistant that fetches pages to answer questions, saw an empty container with no words in it. There was nothing to index, nothing to rank, nothing to quote.
This program fixed that at the root and then went several steps further. Every marketing page is now written to a real HTML file at build time, so anything that fetches the URL gets the full text immediately. On top of that sit 25 new pages of buyer-focused content, machine-readable descriptions of the business that AI systems can parse, and a set of files that let autonomous software agents discover and use AstraRad without a human in the loop.
The goal is not vanity rankings. It is to be the answer when a facility decision maker asks a search engine or an AI assistant who should read their studies.
It is 11:20pm on a Tuesday. Denise runs a three-site outpatient imaging group outside Lubbock, Texas. Her staff radiologist just gave notice, her weekend call schedule falls apart in eleven days, and the nighthawk vendor she inherited sends preliminary reads that her remaining radiologist has to re-read every morning. She opens ChatGPT and types: best teleradiology company for imaging centers with subspecialty final reads, and do they need a Texas license?
Before this work, AstraRad could not appear in that answer under any circumstance. The assistant would fetch astrarad.com, receive an empty page, and move on to whichever competitor had readable text. Denise would get a list assembled from vendor-authored listicles and a fifteen year old brochure site.
After this work, there is a page that answers her Texas licensing question with the actual 2017 statute and the compact status, a page that explains final reads versus preliminaries with the discrepancy literature behind it, a page that publishes the 28 minute median STAT turnaround with the methodology attached, and a machine-readable company profile that ties them together. Every one of those pages exists as real text the moment the assistant asks for it. That is the entire difference between being citable and being invisible.
Scoreboard
Measured the same two ways as the baseline. The agent-readiness figure comes from an independent third party, the Cloudflare scanner at isitagentready.com, run against the live site. The on-page figure comes from an 84 check audit we administered ourselves, so treat it as a self-assessment against a fixed checklist rather than an outside verdict. Both were re-run against production after the final deploy.
| Measure | Before | After | Change | |
|---|---|---|---|---|
| Agent readiness (isitagentready.com) | 0 of 15, Level 0 | to | 14 of 15, Level 5 Agent-Native | Top tier |
| On-page SEO audit (84 checks) | 48 percent (40 of 84) | to | 77 percent (65 of 84) | +25 checks |
| Pages serving real HTML to crawlers | 0 | to | 35 | New capability |
| Indexable URLs in the sitemap | 0 | to | 34 | New capability |
| Structured data types published | 0 | to | 5 | New capability |
The five structured data types are MedicalOrganization, Service, FAQPage, Article, and BreadcrumbList. The single outstanding agent-readiness point is DNS-AID, which requires DNS records to be added at GoDaddy and cannot be shipped from the codebase. The on-page audit moved from 48 percent to 77 percent, 40 of 84 checks to 65 of 84. The baseline was recorded when every route returned the same empty shell, which is why almost half the checks failed automatically. The largest remaining category is analytics: with no GA4 property, no tag can be installed, so those checks cannot pass until the measurement setup in the repo at DOCS/measurement-setup.html is completed.
Delivery
Five pieces of machinery. Each one describes what it does and why it matters commercially, not how it is coded.
Every marketing and content route is rendered to a finished HTML file when the site is built, rather than assembled in the visitor's browser. The application areas that genuinely need to be interactive (the client portal, the reader workstation, admin, sales, login) still load as an app, but they are scoped explicitly instead of swallowing the whole domain. Unknown URLs now return a real 404 instead of quietly serving the homepage.
Why it matters: this is the load-bearing fix. Search crawlers and AI retrieval systems mostly do not execute JavaScript, or execute it late and unreliably. Everything else in this program depends on the text being present in the first response.A single service sets the canonical URL, page title, meta description, social preview tags, and structured data for each route, and it runs during the build so those tags are baked into the static HTML rather than patched in later. Structured data covers the company itself, each service, the FAQ blocks, long-form guides, and breadcrumb trails.
Why it matters: structured data is how a machine learns that AstraRad is a medical organization offering named services with defined turnaround tiers, instead of guessing from prose. Every major competitor runs default Yoast output or no structured data at all, so this is uncontested ground.New pages are plain markdown files with a short header block for title, description, dates, tags, and FAQ entries. The build converts them into prerendered pages and automatically adds them to the sitemap with the right structured data. Adding a page is writing a file and rebuilding.
Why it matters: content velocity is the whole game in this niche. Two of the four main competitors have not published anything since 2023, and one has never had a blog. Publishing needs to cost minutes, not an engineering ticket.A robots.txt that uses the new Content Signals standard to state explicitly that search indexing, AI training, and AI answer usage are all permitted; a generated sitemap; an llms.txt file that gives language models a curated map of the site; real 404 handling; and URL cleanup so that canonical addresses and served addresses agree instead of bouncing through redirects.
Why it matters: AI answer engines increasingly check whether they are allowed to use a site's content. Saying yes explicitly, in the format they read, removes a reason to skip us.A set of discovery files under /.well-known/, a working MCP server with OAuth so an AI agent can authenticate and call AstraRad capabilities directly, a WebMCP script that exposes the same capabilities to agents running inside a browser, and Markdown-for-Agents content negotiation so any page can be requested as clean markdown instead of HTML.
Positioning
Four competitors were torn down page by page: USARAD, StatRad, vRad, and Real Radiology. The pattern that emerged is unusually favorable, and every differentiator below is aimed at a specific documented gap.
The single most useful finding is that this market's websites are not really selling to facility buyers. vRad's homepage meta description, its blog, and the only pages on the entire domain carrying rich structured data all target radiologists looking for remote jobs. Real Radiology's site is a recruiting funnel with exactly one page aimed at facilities, and that page gives no turnaround numbers, no pricing, and names no subspecialty. USARAD is a frozen 2018 static brochure whose sitemap carries roughly 1,178 junk duplicate URLs. StatRad has seventeen pages, a blog that stopped in mid 2023, and core pages untouched since 2021.
The second finding is that nobody publishes numbers they can defend. USARAD's homepage claims a 20 minute average STAT turnaround while its own services page says 30 to 60 minutes for hospital ER cases. StatRad has a heading that reads "Turnaround Times" with no figures underneath it. Real Radiology says "industry-leading" and stops. vRad publishes protocol-level averages but no site-wide median and no SLA percentage, and its own stats contradict each other across pages: stroke volume appears as both 130,000 and 200,000, critical patients as 40,000, 50,000, and 180,000. That inconsistency is precisely what stops an AI answer engine from citing a source confidently.
The third finding is technical and nearly free to exploit. StatRad, vRad, and Real Radiology all run WordPress with default Yoast output: WebPage, WebSite, and BreadcrumbList and nothing more. No MedicalOrganization, no Service, no FAQPage on any buyer-facing page. USARAD has no structured data at all, no canonical tags, no Open Graph tags, and still uses the obsolete meta keywords tag as its main on-page tactic. vRad injects a malformed Article block on every marketing page with an author literally named "bsa-developer". Real Radiology ships zero meta descriptions site-wide and six H1 headings on its homepage.
Wave 1
Five pillars. Each page has a defined primary keyword, a written intro angle, an outline, FAQ questions, and internal links pointing at the pages that convert. Slugs link to the live URL.
| # | Slug | Title | Primary keyword |
|---|---|---|---|
| Pillar 1: Study types, 5 pages | |||
| 1 | /services/stat-ct-reads | STAT CT Reads in Under 30 Minutes | 24/7 CT Teleradiology | STAT CT reads |
| 2 | /services/mri-teleradiology | MRI Teleradiology Reporting by Subspecialists | AstraRad | MRI teleradiology reporting |
| 3 | /services/telemammography | Telemammography: MQSA-Qualified Remote Mammogram Reads | telemammography |
| 4 | /services/pet-ct-nuclear-medicine | PET-CT & Nuclear Medicine Teleradiology Reads | AstraRad | PET-CT teleradiology |
| 5 | /services/xray-ultrasound-overflow | X-Ray & Ultrasound Overflow Reads: Clear Your Backlog | X-ray teleradiology |
| Pillar 2: Coverage scenarios, 4 pages | |||
| 6 | /use-cases/nighthawk-radiology | Nighthawk Radiology Coverage with Final Reads, Not Prelims | nighthawk radiology |
| 7 | /use-cases/weekend-holiday-coverage | Weekend & Holiday Radiology Coverage Without the Burnout | weekend radiology coverage |
| 8 | /use-cases/overflow-radiology-reads | Overflow Radiology Reads: The ROI of Outsourcing Volume | overflow radiology reads |
| 9 | /use-cases/stat-reads-under-30-minutes | STAT Radiology Reads: 28-Min Median, 99.4% SLA (2026 Data) | STAT radiology reads |
| Pillar 3: State licensing, 7 pages | |||
| 10 | /licensing | Teleradiology State Licensing: How 50-State Coverage Works | teleradiology licensing |
| 11 | /licensing/texas | Teleradiology Services in Texas | TX-Licensed Radiologists | teleradiology services Texas |
| 12 | /licensing/florida | Teleradiology Services in Florida | FL-Licensed Coverage | teleradiology services Florida |
| 13 | /licensing/california | Teleradiology in California | Fully CA-Licensed Final Reads | teleradiology services California |
| 14 | /licensing/new-york | Teleradiology in New York | Full NY-Licensed Radiologists | teleradiology services New York |
| 15 | /licensing/colorado | Teleradiology Services in Colorado | Licensed CO Coverage | teleradiology services Colorado |
| 16 | /licensing/ohio | Teleradiology Services in Ohio | Licensed Ohio Coverage | teleradiology services Ohio |
| Pillar 4: Trust and policy, 4 pages | |||
| 17 | /sla | AstraRad SLA & QA Methodology: 99.4% On-Time, Published | teleradiology SLA |
| 18 | /compliance | HIPAA & GDPR Compliant Teleradiology | Security at AstraRad | HIPAA compliant teleradiology |
| 19 | /privacy | Privacy Policy | AstraRad | AstraRad privacy policy |
| 20 | /terms | Terms of Service | AstraRad | AstraRad terms of service |
| Pillar 5: Buyer guides, 5 pages | |||
| 21 | /resources/teleradiology-cost | Teleradiology Cost Per Read 2026: Real Prices by Modality | teleradiology cost per read |
| 22 | /resources/how-to-choose-teleradiology-company | How to Choose a Teleradiology Company: 2026 Buyer's Guide | how to choose a teleradiology company |
| 23 | /resources/in-house-vs-outsourced-radiology | In-House vs Outsourced Radiology: Costs and Trade-Offs | in-house vs outsourced radiology |
| 24 | /resources/what-is-teleradiology | What Is Teleradiology? How It Works, Step by Step (2026) | what is teleradiology |
| 25 | /resources/stat-vs-preliminary-vs-final-reads | STAT vs Preliminary vs Final Radiology Reads, Explained | preliminary vs final radiology reads |
Three pages carry disproportionate weight. /resources/teleradiology-cost is the highest leverage asset on the site because only two US providers publish prices at all, which is why a small Cleveland company currently owns every pricing query. /sla is the canonical stats page every other page cites, which is the structural defense against the cross-page inconsistency that undermines competitor citability. /services/pet-ct-nuclear-medicine faces the thinnest competitive results page of any study type and should rank fastest.
Answer engines
Ranking in Google is only half of it. The other half is being present when a buyer asks an assistant directly, which is measured differently and won differently.
Run this list quarterly through ChatGPT, Perplexity, Gemini, and Copilot, and record for each one whether AstraRad appears, in what position, and which source the engine cited. This is the honest scoreboard for the AI half of the program, and the first run establishes the baseline.
AI answer engines assemble "best of" answers from the web layer they retrieve, and in this niche that layer is dominated by vendor-authored listicles and a small number of genuinely neutral directories. Owning our own pages is necessary but not sufficient; we also have to exist on the surfaces the engines already trust. The first two below are the priority and should be handled before anything else on this list.
Traceability
Every recommendation from the original three research briefs, with its status. Done means it is live on astrarad.com right now. Partial means the substance shipped inside another page rather than as its own page. Not done means it is real work that has not started, mostly outreach that happens off the website.
| Recommendation | Status | Where it landed |
|---|---|---|
| Study-type pages: CT STAT, MRI, mammography, PET-CT and nuclear, X-ray and ultrasound | Done | All five live under /services/, each with Service and FAQPage schema and the turnaround tier stated. |
| Use-case pages: overnight, weekend, overflow, STAT under 30 minutes | Done | Four pages live under /use-cases/. |
| Vacation and PTO coverage for radiology groups | Partial | Covered as a section inside /use-cases/weekend-holiday-coverage rather than its own page. Splitting it out is a Wave 2 candidate. |
| Per-report pricing versus subscription teleradiology | Partial | The full argument runs through /resources/teleradiology-cost, which targets the higher volume query. No standalone page. |
| Trust and compliance hub: HIPAA, GDPR, credentials | Done | /compliance, built from scratch. There was no GDPR page to expand; compliance existed only as footer badge words. |
| SLA and quality assurance standards page | Done | /sla documents the 99.4 percent methodology, the double-read rate and the discrepancy rate. It is the canonical source every other page cites. |
| Board-certified subspecialist network page | Partial | The existing /our-radiologists page covers this and was deliberately left untouched, because its four named physicians are demo personas. See Limits below. |
| In-house versus outsourced radiology | Done | /resources/in-house-vs-outsourced-radiology. |
| How to choose a teleradiology partner, with checklist | Done | /resources/how-to-choose-teleradiology-company. |
| AstraRad versus traditional teleradiology providers | Not done | Deliberately deferred. Research found the ranking pattern here is an independent "best teleradiology companies" guide, not a self-serving versus page. That guide is the top Wave 2 item. |
| Definitional pages: what is teleradiology, what it costs, STAT versus preliminary versus final | Done | All three live under /resources/, each opening with a directly quotable answer. |
| State coverage pages for Texas, Florida, California, New York, Colorado, Ohio | Done | All six live under /licensing/, each citing the state medical board. |
| Licensing hub explaining which states are covered | Done | /licensing. |
| Interstate Medical Licensure Compact explained | Partial | Explained in depth inside the /licensing hub rather than as a separate page, since the two queries overlap almost entirely. |
| FAQPage and Service schema on every study-type page | Done | Plus MedicalOrganization site-wide, Article on guides, and BreadcrumbList everywhere. Generated from the same data the page renders, so markup and schema cannot drift. |
| Crawlable HTML pricing table, not an image | Done | It was already an HTML table, but nothing could read it. Prerendering is what actually made it crawlable. |
| Direct-answer intros on the most important pages | Done | Enforced on all 25 new pages by a second reviewing agent, and rewritten where the opening warmed up too slowly. |
| Publish original data so it can be cited | Done | The 28 minute median, 99.4 percent SLA and 600,000 reads now live on /sla as a citable page instead of being buried on the homepage. |
| Fast load, clean URLs, strong internal linking | Partial | Clean slug-based URLs, immutable asset caching and dense internal linking shipped. A formal Core Web Vitals measurement has not been run yet, so speed is improved but unverified. |
| Check whether ChatGPT, Gemini, Perplexity and Copilot cite you | Not done | The 15 prompt audit above is written and ready to run, but no baseline run has happened. Worth doing now, before the new pages are indexed, so the before picture is honest. |
| Get listed on healthcare IT directories such as the ITN chart | Not done | 16 targets identified and prioritised. Every one requires a human submission with real company details. |
| Pitch radiology trade publications for backlinks and case studies | Not done | Outreach targets listed. Case studies also need real client numbers that only you can approve. |
| Partner with AstraRad landing page to consolidate partner links | Not done | Not started. Small build once the partner programme terms are settled. |
| Radiologist recruiting pages: jobs by state, how licensing works for radiologists | Not done | Correctly deprioritised. Research showed competitors already centre their SEO on recruiting, and the buyer-facing gap was the opening worth taking first. |
Not in the original briefs but shipped anyway, because nothing else would have worked without it: prerendering the whole site so crawlers receive real HTML, per-page titles and descriptions and canonicals, real 404 handling, robots.txt with AI content signals, a sitemap, llms.txt, genuine privacy and terms pages, and the full machine-agent surface that took agent readiness from 0 of 15 to 14 of 15.
Execution
The approved plan had six phases. All six ran. Three items were added mid-flight that were not in the plan, two of them because they were defects in the work itself.
| Phase | Status | Outcome |
|---|---|---|
| 0. Baseline scans | Done | Agent readiness 0 of 15. On-page audit 48 percent, 40 of 84 checks. Both reports kept in the repo under DOCS/ as the before picture. |
| 1. Prerendering, metadata, crawl plumbing | Done | 35 routes prerendered to real HTML, per-page titles and descriptions and canonicals, five JSON-LD types, robots.txt with content signals, sitemap, llms.txt, real 404s, security and cache headers, demo footer label removed. Live at 05:34 UTC. |
| 2. Agent readiness, Tier C | Done | 0 of 15 to 14 of 15, Level 5 Agent-Native. The one open point is DNS-AID, which needs records added at GoDaddy. Live at 06:04 UTC. |
| 3. SEO toolchain pointed at AstraRad | Done | Working directory at seo/ with 11 AstraRad context files replacing the podcast-industry boilerplate, and the WordPress publish step replaced with the markdown pipeline. The measurement half stays dormant until credentials exist. |
| 4a. Research | Done | Eight agents produced competitor teardowns, the AI citation landscape, keyword angles and state licensing facts, synthesised into the 25 page map. |
| 4b. Content pipeline and Wave 1 | Done | Markdown to prerendered page pipeline, then 25 pages totalling 41,500 words, each fact-checked by a second agent against the approved numbers. Live at 06:28 UTC. |
| 5. Verification, artifacts, wiki, staging | Done | Re-audit at 77 percent, this report, the measurement checklist, wiki pages, and 102 files staged in git awaiting your commit. |
| Added: internal linking | Done | Not in the plan, and a genuine miss. The 25 pages shipped orphaned: reachable by URL and by crawlers, but unreachable by clicking. Fixed with a Resources nav item and a four column footer. |
| Added: MCP quote tool defect | Done | The tool told AI agents a rate card request was received while only writing to a log. It now posts to the real endpoint, so agent-submitted leads reach the CRM and Slack. |
| Added: local server routing | Done | server.js still had the old catch-all fallback, which would have served homepage content at every new URL locally. It now mirrors the production config. |
| Outstanding item | Owner | Why it matters |
|---|---|---|
| Commit the 102 staged files | You | Everything is deployed but nothing is committed. A fresh clone of the repo would not reproduce what is live on astrarad.com. |
| Google Analytics 4 and Search Console | You | The single Critical finding left in the audit. 34 URLs are published with no instrumentation and the sitemap has not been submitted, so nothing here can be measured yet. Checklist in the repo at DOCS/measurement-setup.html. |
| DNS-AID records at GoDaddy | You | The last agent-readiness point, 14 of 15 to 15 of 15. DNS is not on Netlify so it cannot be done from the codebase. |
| Delete the MCP test lead | You | One record named AstraRad Internal MCP Test sits in /admin/leads from verifying the quote fix. |
| Expert review of the licensing and compliance pages | You | Those pages make legal-adjacent statements about state medical boards and describe your HIPAA posture. They were written by AI and fact-checked against your numbers, but no clinical or legal reviewer has read them. |
| Decide on the four demo physician personas | You | They remain on /our-radiologists and were deliberately kept out of all structured data. Replace them with real physicians or remove them before any press or listing push. |
| AI citation baseline run | You | The 15 prompts are written. Running them through ChatGPT, Perplexity, Gemini and Copilot needs a human with those accounts, and is best done now, before indexing, so the before picture is honest. |
| Directory listings and trade press outreach | You | 16 targets prioritised, starting with the ITN comparison chart and AuntMinnie. Each needs a human submission with real company details. |
| Core Web Vitals measurement | Claude | Speed is improved but unverified. A formal measurement closes the last Partial in the coverage table above. |
| A real 1200 by 630 social share image | Claude | Open Graph currently points at the logo PNG, so link previews are functional but not designed. |
| Wave 2 content | Claude | An independent Best Teleradiology Companies 2026 guide, the remaining state pages, and standalone pages for vacation cover and per-report versus subscription pricing. |
| Partner With AstraRad page | Claude | Small build, but it needs your partner programme terms first. |
Roadmap
In priority order. The first two are short, unblock measurement and the final readiness point, and require account access rather than engineering.
Until these are connected we are flying blind: no rankings, no clicks, no impressions, no way to tell which of the 25 pages landed on page two and needs a rewrite. This is roughly 25 minutes of hands-on work plus a paid DataForSEO signup for competitive rank tracking.
The step-by-step checklist sits in the repository at DOCS/measurement-setup.html, covering the Search Console domain property and DNS verification, sitemap submission, the GA4 property and measurement ID, and the service account credentials the reporting tools need.
This is the single outstanding agent-readiness point, worth 15 of 15. It cannot be shipped from the codebase because it lives in DNS, not in the site. A few records at the registrar closes it.
Three workstreams. The remaining state licensing pages, which extend a pillar where no competitor has a single page. An honest "Best Teleradiology Companies 2026" guide of our own, because that format is the de facto citation layer in this niche and every ranking version of it is written by a competitor. And case studies with real client numbers, which is the one proof format all four competitors lack: vRad has exactly one client quote on its entire site, and Real Radiology has none.
Work the 16 targets above, starting with the ITN chart before its annual refresh and the AuntMinnie subspecialty category. The review-site listings need a small number of real customers willing to post, so that request should go out early.
Run all 15 tracked prompts through ChatGPT, Perplexity, Gemini, and Copilot, and compare against the baseline run. Ninety days is roughly the point at which new pages have been crawled, indexed, and absorbed into the retrieval layer these assistants draw from, so an earlier read would mostly measure impatience.
Honesty
Four things that are true about this work and worth knowing before anyone points a journalist, an investor, or a large buyer at the site.