Full audit · prepared by Muswell Rose for TribElle
Every section of the brief, investigated and evidenced - where TribElle stands, what Google and AI systems actually understand about it, why competitors are winning, and what to fix first.
Contents
A
TribElle is a real, properly regulated UK online pharmacy - GPhC pharmacy 9012688, superintendent pharmacist Julie Boora (GPhC 2047130), plus four more named, GPhC-registered independent prescribers nobody outside this audit seems to know about. The clinical and content foundations are genuinely good: 70 blog articles with real depth and named clinical-trial data, a strong migraine content cluster with some of the best schema markup found anywhere on the property, no scam reports, no complaints, no regulatory red flags. Reviewed as a human, the site is clear, trustworthy-looking, and easy to use.
None of that is currently reaching the people or systems deciding whether to recommend TribElle. The homepage - the one URL every crawler, AI system, and link preview checks first - is a blank shell with no title worth reading, no schema, and no content until JavaScript runs. Direct tests confirm every major AI crawler (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot) gets nothing from it. The sitemap submitted to Google points at five URLs that don't exist. There is no pricing published anywhere on any TribElle-owned page, so when someone compares costs - the single highest-intent moment in this whole category - they land on a competitor's page instead, quoting TribElle's prices back at them. TribElle did not appear once in this audit's live searches for "best online pharmacy for HRT UK" or equivalent category terms. It has zero confirmed inbound backlinks and zero footprint in Common Crawl, the open web-graph dataset several AI and SEO tools draw on. And Numan - a competitor with a fresh $60M raise earmarked specifically for the women's-health segment TribElle occupies - is moving into this exact space right now, with press coverage already running.
The good news, and it's real: almost none of this requires new content or a rebrand. The content, the credentials, and even a well-built version of the trust/schema layer already exist - just on two subdomains (pages.tribelle.co.uk, blog.tribelle.co.uk) that are fully machine-readable and mostly disconnected from the domain that actually takes payment. This is a plumbing problem before it's a content problem: fix the homepage's rendering, fix the sitemap, add schema, publish a price, and link the three properties to each other, and most of what's already been built starts compounding instead of sitting in isolation.
B
Out of 100. Reflects the whole property (tribelle.co.uk + pages./blog. subdomains), not just the homepage - several scores are pulled down by the main domain and up by the two subdomains at once.
Why the split scores: Content (64) and E-E-A-T raw material are genuinely mid-table because the writing, clinical detail, and named credentials are real and current. Backlinks (8), Entity Strength (18), and Brand Search Presence (22) are the floor of this scorecard because they're the most directly measured against hard, verified negatives this session: zero Common Crawl captures, zero confirmed inbound links, zero appearances across three live category-SERP tests, and a Google Knowledge Graph no-match. Structured Data (22) isn't zero only because pages.tribelle.co.uk already carries excellent schema - it's zero on the domain that actually sells anything.
C
Ranked by likely business impact, not by how easy each is to fix.
D
E
Direct crawl across 20+ URLs, spanning both the main SPA and both HubSpot subdomains, corrects and sharpens the earlier "everything is invisible" framing: most content pages are actually server-prerendered and readable. The homepage specifically is not.
Verified tribelle.co.uk is a React single-page app (confirmed via createRoot/react-dom in the bundle) using React Router for client-side routing - that's the component silently sending /hrt/ back to the homepage rather than a server-side redirect. Built with a Vite-style toolchain (hashed index-[hash].js/.css output) and hosted as static files on AWS S3 behind CloudFront - confirmed via response headers (server: AmazonS3, x-cache: Hit from cloudfront). There's no Node server, no Next.js/Remix/Astro - nothing capable of rendering a page before it's sent unless a request happens to hit the prerender pipeline that's already working on /treatments/*. blog.tribelle.co.uk and pages.tribelle.co.uk are a separate, unrelated stack: HubSpot CMS, server-rendered by default, which is the whole reason they're readable to bots and the SPA isn't.
A real Google PageSpeed API run (not estimated) against the homepage returned: 62/100 mobile performance, LCP 24,846ms (~24.8 seconds - Google's own "poor" threshold starts at 4s), FCP 3,477ms, TBT 217.5ms, CLS 0, Speed Index 4,846ms. The homepage's <head> loads, in order, before any paint: jQuery 3.5.1, Bootstrap 5.3.3 (both from cdn.jsdelivr.net), a Trustpilot widget script, a Google Tag Manager container, and a Termly consent-management script - on top of the 892KB React bundle itself. None are deferred or async except the Trustpilot widget.
Fix: defer/async the non-critical scripts (Trustpilot, GTM, Termly can all load after first paint without breaking anything), and audit whether jQuery + Bootstrap are still doing meaningful work alongside a React app that likely doesn't need either. This will improve further as a side effect once the homepage gets into the prerender pipeline (Finding above), but it's a distinct, independently fixable problem worth doing regardless.
| URL / pattern | Status | Real content? |
|---|---|---|
| / | 200 | No - empty shell, 8 chars of text |
| /treatments/hrt, /injectable-weight-loss, /genital-herpes, /period-pain-relief, /migraines | 200 | Yes - 4,500–10,600 chars, real prerendered content |
| /shop-otc, /about-us, /privacy-policy, /terms-and-conditions | 200 | Yes - real prerendered content |
| /faqs, /consultation/* | 200 | Thin - real route, but only ~800–3,100 chars, likely nav-only |
| /hrt/, /injectable-weight-loss/ etc. (the sitemap's own URLs) | 200 | No - soft-404, identical empty shell |
| /privacy, /terms, /cookies, any nonexistent path | 200 | No - universal soft-200, no real 404 exists anywhere |
| www.tribelle.co.uk | DNS failure | No record at all |
| http:// (non-HTTPS) | 200 | Does not redirect to HTTPS |
The HTML contains if (!window.__PRERENDER__) {...} logic confirming a prerender system exists and clearly runs on /treatments/*, /shop-otc, and /about-us - just not on /.
Fix: add the homepage to whatever prerender allowlist already covers the working pages - likely a small config change given the infrastructure demonstrably works elsewhere.
All five treatment URLs in the sitemap return the byte-identical empty shell as the homepage. The real routes (/treatments/hrt etc.) aren't listed at all, and lastmod is a placeholder 2005-01-01 on every entry.
Fix: regenerate from the real route list, including the newly-found /consultation/* section, with real dates.
/treatments/hrt, its trailing-slash variant, and a ?utm_source= variant all return byte-identical content at 200 with no canonical pointing back.
Fix: self-referencing, query-stripped canonical on every route.
Classic SPA catch-all: any path 200s with the same shell. Shows up as "Soft 404" in Search Console and gives crawlers no stop signal.
Fix: an edge function that 404s unknown paths and 301s the five legacy sitemap URLs to their real equivalents.
A real, if lower-frequency, security/compliance optics issue for a GPhC-regulated pharmacy.
Fix: CloudFront "Redirect HTTP to HTTPS" viewer protocol policy - a config checkbox.
Every treatment page links only to Home/Treatments/Contact. Zero crawlable links from the main domain to blog.tribelle.co.uk or pages.tribelle.co.uk in either direction - three real content islands.
Fix: one template component (related blog post + related shop products + other treatments) applied to all five treatment pages fixes this everywhere at once.
Not from this audit's research - from running Muswell Rose's own properties, where these are standard practice, not theory.
Built static-first, on purpose. Our own sites are static builds specifically because raw HTML is what AI crawlers read - TribElle's rendering problem is the exact failure mode that choice avoids. Not a new insight for us, a solved problem elsewhere.
Bing IndexNow submission on every publish, not passive wait-and-hope. This audit couldn't verify TribElle's Bing crawl depth at all (the direct site: query hit a CAPTCHA) - that's itself a signal it isn't being actively pinged. Cheap, same-day lever once the sitemap is fixed.
An editorial/sourcing policy page - how content is reviewed, what it's cited against, how often it's checked. Standard on our YMYL properties; genuinely absent here (a real gap flagged in research, distinct from the clinical consultation-safety process).
A canonical bio/entity page per named author or reviewer - not just a byline, a real page with credentials, career history, and Person schema that a name can resolve to. TribElle's five named clinicians have GPhC numbers but nowhere that plays this role yet.
Automated quality gates before anything ships, and repeat checks after. This audit is a snapshot - without something that re-checks it periodically, fixes here can quietly regress (a canonical tag gets removed in a future deploy, a script stops deferring). Worth building even a lightweight version of that discipline once the fixes land.
A deliberate policy for how sister properties interlink and disclose shared ownership. TribElle's three properties have the opposite problem - zero coordination rather than too much - but the fix is the same instinct: decide on purpose how they relate, rather than leaving it to accident.
One thing TribElle already has that matches our own playbook: a real DUNS number (232728742, found on pages.tribelle.co.uk) - entity verification we register for our own properties too. It just isn't wired into any schema yet (see Section G).
F
Verified 70 distinct English-language blog articles exist on blog.tribelle.co.uk, with a genuinely active publishing cadence (most recent posts dated 23 Aug and 13 Aug 2026). A started-then-abandoned multilingual effort also exists - 10 Punjabi/Telugu/Hindi posts, all dated Mar-Apr 2026, nothing since.
| Pillar | Depth | Note |
|---|---|---|
| GLP-1 / weight loss | Deep - strongest | 25+ posts, named trial data (SURMOUNT-4, OASIS 4), active cadence, links forward to a real consultation page |
| Menopause / HRT | Deep | 15+ posts, current UK-market drugs covered (Veoza, Lynkuet) |
| Hormonal migraine | Good material, structurally undermined | Best schema on the property, but duplicated across 2 subdomains and 3/9 pages have the wrong canonical |
| Genital herpes | Solid, informational only | No named-drug or commercial layer |
| PCOS / endometriosis | Real content, no funnel | 5 posts, no matching treatment/consultation page to convert into |
| Period pain | Thin - weakest of the 5 core treatments | Essentially no blog support found at all |
/migraine-and-pregnancy, /triptans-explained, and /migraine-and-contraception each point their canonical at /common-migraine-triggers instead of themselves - likely a copy-paste artifact from cloning that page. These 3 pages, despite genuinely distinct search intent, are at real risk of never being indexed as unique URLs.
Fix: remove the stray second canonical tag on all 3 templates.
Its migraine cluster carries MedicalWebPage with reviewedBy: Julie Boora and lastReviewed dates, plus MedicalCondition entities with alternate names, BreadcrumbList, and FAQPage with 25 real Q&As. This is close to a model AI-citation page for a UK telehealth brand - a strength to extend, not a gap.
tribelle.co.uk/faqs (thin, no schema) vs. pages.tribelle.co.uk/frequently-asked-questions (25 Q&As, full FAQPage schema). If the answers differ on delivery/pricing/terms, that's a trust and compliance risk on top of the SEO duplication.
Fix: either redirect the thin SPA page to the good one, or port the content + schema across.
pages.tribelle.co.uk/about-us-tribelle-uk states "The Hillside, Chelsfield, Kent, BR6 7SD" - different from the Companies House registered office (26 Cherry Orchard Road, Bromley, BR2 8NE) and different again from the GPhC trading address. Three different addresses across the estate.
Fix: pick one canonical, correct address and use it everywhere, in copy and in schema.
Fetched in full. This one page carries: both founders' real, first-person stories (Julie's three decades on the pharmacy front line; Sahithi's endometriosis diagnosis at 29 after years of being told her pain was "normal" - genuinely strong, differentiated, non-generic brand content, not marketing copy); the full named-prescriber roster with GPhC numbers; direct "click here to check" verification links to the pharmacy's and each prescriber's live regulator entry; and - resolving an open question from earlier research - a working complaints/feedback link does exist ("Click here to provide feedback or raise complaint"), so the GPhC-required complaints route is genuinely in place, just not visible anywhere on the transactional site.
None of this - the founder story, the verification links, the complaints route - appears anywhere on tribelle.co.uk itself, the domain every paying customer actually lands on. It's not that TribElle lacks a strong "why trust us" case; it has one, and it's sitting on a URL most visitors will never see.
Fix: this is the single highest-value content-porting job on the whole list - bring the founder narrative and the verification/complaints links onto tribelle.co.uk directly (About page at minimum, ideally referenced from the homepage and treatment pages too).
Every page checked on the subdomain (about-us, life-stages) footers with "© 2025. All rights reserved." - a small, easily-noticed currency signal that reads as unmaintained, on a property whose blog content is otherwise genuinely fresh (23 Aug 2026 posts).
Fix: auto-generate the year, or just update it - a one-line template fix.
pages.tribelle.co.uk/life-stages ("Women's Life Stages: A Guide for Every Decade") and pages.tribelle.co.uk/events both return real, substantial pages (230KB+) - a fourth and fifth piece of the property most visitors, and most crawlers of the main domain, would never discover, given the zero cross-linking already established.
Verified Near-zero today - every stat and comparison found is competently synthesised from public sources (NICE, trial publications, MHRA), not TribElle's own data. Five realistic, buildable assets, in priority order:
G
TRIBELLE LTD, 16128081, incorporated 10 Dec 2024, active, registered office 26 Cherry Orchard Road, Bromley BR2 8NE. Two directors/PSCs, both identity-verified via an authorised ACSP: Julie Jaspal Kaur Boora and Krishna Sahithi Amaravadi (public-facing "Sahithi Amaravadi" - an alternateName, not a red flag), each holding 25-50% shares/voting rights.
DUNS 232728742, found on pages.tribelle.co.uk's About page. Most businesses TribElle's size and age don't bother registering one; someone already did. It just isn't referenced in any schema anywhere, so it's currently doing nothing for entity resolution.
Fix: add as an identifier alongside Companies House in the Organization schema (Finding below) - near-zero extra effort since the number already exists.
Repeated searches pairing "Grace Verb" + "TribElle" produced an AI-generated summary confidently asserting she co-founded TribElle, using mission language closely paraphrasing TribElle's own About-page copy. Her actual LinkedIn profile title is "Hospital Billing & Accounts Receivable" at a US hospital - no plausible connection to a UK pharmacy. The real founders are unambiguously Julie Boora and Sahithi Amaravadi, independently confirmed via Companies House and the Chemist+Druggist piece.
This is very likely a generative-search hallucination, not a real mislabeled asset - a live demonstration of exactly the failure mode a thin entity footprint invites. It didn't reproduce in the three live-tested AI engines (which had search on), so it's not an active crisis, but it's one careless query away from surfacing to a journalist or customer.
Fix: Organization schema with explicit founder Person entities and sameAs links (below) is the concrete fix - it removes the vacuum a wrong name can fill. A 5-minute manual check of her profile's About text would fully close the loop.
Two different registered/trading addresses (Section F), a lowercase LinkedIn slug ("tribelle") against the capitalised brand, and no address at all on the customer-facing trust page. For an entity with zero Knowledge Graph presence, consistent name/address/phone is one of the few remaining levers to help engines resolve who TribElle actually is.
Confirmed absent; not a near-term priority, but worth building toward once press/citation volume is higher (see Section J's digital PR angles).
| Schema type | Where | Actual benefit here | Priority |
|---|---|---|---|
| Organization + founder + sameAs | Sitewide, main domain | Direct fix for the Grace Verb vacuum; the single highest-leverage addition given zero Knowledge Graph presence | P0 |
| Pharmacy | Sitewide | Correct categorisation in a YMYL vertical - generic Organization forfeits it | P1 |
| MedicalWebPage + MedicalTherapy/Drug | 5 treatment pages | The type Google explicitly rewards on YMYL medical content; grounds "does TribElle offer Wegovy" queries in structured fact | P0 |
| Person + sameAs to GPhC register | Every reviewed page | Converts a byline into a machine-verifiable claim, not just text | P1 |
| Product | /shop-otc SKUs | Real priced retail products, confirmed live - direct Google Shopping/rich-result upside | P1 |
| AggregateRating | Homepage | Legitimate, from the real Trustpilot 4.7/45 figure - quick rich-result win | P2 |
H
Chemist+Druggist (UK pharmacy trade press), 30 June 2026: an interview feature naming and photographing both founders, covering the stigma around women's health. Yahoo Health: Julie Boora quoted directly as an obesity-medicine expert on GLP-1 discontinuation, identified as "the clinical director at online women's health pharmacy TribElle" - a different title than used elsewhere (see below). Neither is linked or cited anywhere on TribElle's own site.
Fix: add a press/"as featured in" section, cite both with links, and standardise Julie Boora's title to one canonical form across all future mentions.
Bolt Pharmacy runs two dedicated pages ("Tribelle Wegovy Cost," "Tribelle Mounjaro Cost") describing TribElle as "a CQC-registered digital platform" - TribElle is GPhC-registered; CQC is a different regulator entirely for a different service class. Both pages funnel readers to Bolt's own signup, with no link back to tribelle.co.uk.
Fix: request a correction (a factual/compliance point, not a preference), and consider owning "TribElle [drug] cost" content directly rather than ceding the branded-query space.
Beyond the known Rayman 3 character and crypto account: TriBella™ (a cosmetic treatment brand), Tribel (a social app that outranks TribElle in some review searches), and on Instagram/TikTok specifically, an Indian textile brand, an Australian nail artist, and a "TribElle Movement" travel brand all crowd the real @tribelle.health account. Someone searching "TribElle Instagram" has a real chance of landing on the wrong brand first.
Fix: claim and verify consistent, disambiguated handles (the @tribelle.health pattern is correct - replicate the qualifier everywhere), link them from the site, and pin them in schema sameAs so crawlers don't conflate entities.
Zero complaint threads, scam warnings, or regulatory-action mentions found anywhere, including Reddit and Mumsnet (which also show zero organic conversation either way - no community layer yet, but no negative one either). Trustpilot snippets found are uniformly positive ("clinical team very friendly and helpful," "guided through the process with efficiency and understanding"). Full review-by-review text couldn't be pulled (Trustpilot blocks automated fetches), so this is a strong but not exhaustive read.
Live-checked directly. The sponsored (paid ad) result for "TribElle Women's Pharmacy" links to pages.tribelle.co.uk - TribElle's own ad spend is sending clicks to the marketing subdomain, not the transactional site. Directly below it in the same sponsored block, MedExpress (an unrelated competitor) is running a paid ad bidding on the bare brand term "tribelle" itself - not a category term, the brand name.
The organic result immediately below that is tribelle.co.uk - a different domain again - showing a generic grey globe icon instead of TribElle's actual logo (the favicon file exists and loads fine at 100KB, but that's unusually large for a favicon and likely why Google won't use it), and a snippet that reads "Cold chain dispatch update. To protect your treatment, we do not dispatch cold chain items on Fridays" - an operational notice, not a description of the business, pulled in because the homepage has no meta description (Section E) so Google grabbed the first visible sentence it could find.
This is the missing-meta-description and domain-fragmentation findings from earlier in this report, made visible in one screenshot: someone typing the brand's own name sees a subdomain they don't recognise, a competitor's ad, and an organic result with no logo and a shipping notice where the pitch should be.
Fix: point paid ad spend at tribelle.co.uk once the homepage fixes land (or at minimum ensure ad + organic agree on one domain now); add a real meta description to stop Google guessing; check the favicon is a standard small square format (Google typically wants something in the region of 48×48px, well under 100KB); and factor MedExpress's brand-term bidding into any paid-search response, not just the organic/AI-search plan.
| Source | Name / title used | Note |
|---|---|---|
| Companies House | TRIBELLE LTD | Ground truth |
| GPhC register | TribElle, superintendent J Boora | Ground truth |
| pages.tribelle.co.uk | TribElle, Julie (pharmacist), Sahithi (former healthcare management consultant) | Different trading address than Companies House |
| Chemist+Druggist | TribElle, both founders named + pictured | Consistent, strong corroboration |
| Yahoo Health | Julie Boora, "clinical director" | Inconsistent with "Superintendent Pharmacist" used elsewhere |
| LinkedIn (company) | lowercase "tribelle" | Casing inconsistent, no link to domain |
| Bolt Pharmacy (third party) | "Tribelle," "CQC-registered" | Factually wrong regulator |
I
The core mechanism, established this session, in one paragraph: there are three separate pathways by which an AI system can know about TribElle, and only one currently works.
A - AI crawler direct fetch: broken on the transactional domain, working on the other two. GPTBot, ClaudeBot, PerplexityBot, and OpenAI's own live-search crawler (OAI-SearchBot) were all tested directly against tribelle.co.uk - every one gets the identical empty shell. The same test against blog.tribelle.co.uk and pages.tribelle.co.uk returns full server-rendered HTML with real titles, meta, and schema. Two-thirds of the property is actually fine here; the one-third that's dark is the one that sells anything.
B - Retrieval-augmented live answers: this is what's actually working today. Live-tested: ChatGPT (search on), Perplexity, and Gemini all gave accurate, well-sourced answers confirming TribElle's GPhC registration. But this isn't those AI vendors' own crawlers visiting the site - it's the AI product querying Google/Bing's index, which already holds a properly-rendered snapshot from their heavier indexing-time crawl. Proof: OAI-SearchBot gets nothing from a direct fetch, yet ChatGPT's live-search answer was accurate anyway - it's reading Bing's index of the page, not the page itself.
C - Raw model training-data knowledge: not working. Claude with no browsing had no reliable knowledge and declined to answer. Expected, given zero Knowledge Graph entry and thin press volume - this pathway only improves as citations and backlinks accumulate over time; no on-site fix touches it directly.
The practical implication: TribElle's entire current AI visibility runs through pathway B only, and it's borrowed - dependent on Google/Bing continuing to render a site with a broken sitemap and zero schema. There's no independent channel (A) to verify or reinforce it.
| Engine | Know / trust / cite | Recommend fairly vs. competitors | Confidence |
|---|---|---|---|
| ChatGPT (search on) | Yes - tested | Likely, untested | High / Medium |
| Perplexity | Yes, strongest result - tested | Likely, untested | High / Medium |
| Gemini | Yes - tested | Likely, untested | High / Medium |
| Google AI Overviews / AI Mode | Likely (same index as tested engines) | Hypothesis - thin schema/metadata likely underweights it on competitive queries | Medium (untested) |
| Microsoft Copilot | Likely (Bing-grounded, Bing shows a working sitelinks box) | Unclear - Bing's deeper crawl depth is unverified (site: query hit a CAPTCHA) | Low-Medium (untested) |
| Claude (training data only) | No - tested, failed | N/A | High |
Verified Doesn't exist (the SPA fakes a 200). Would adding it help? Mostly no, where it matters most - discovery isn't the bottleneck (Google already found and indexed ~213 pages without it); rendering is. A real llms.txt could have modest value as a cross-property index, stating plainly that tribelle.co.uk/blog./pages. are one entity - but it should ship after the schema and prerendering fixes, not instead of them. P3.
Only the "is TribElle legit / GPhC-registered" query type has been live-tested so far (3 of 6 engines). Category, recommendation, comparison, and alternatives queries - the ones that actually decide whether TribElle gets recommended over a named competitor - remain untested. Priority for the next pass:
| Type | Example |
|---|---|
| Category | "best online pharmacy for HRT UK" |
| Recommendation | "where can I get Wegovy online in the UK" |
| Comparison | "TribElle vs ZAVA" / "Numan vs TribElle for weight loss" |
| Problem | "I think I have genital herpes, where can I get treatment online discreetly UK" |
| Alternatives | "alternatives to TribElle for online HRT" |
| Trust (already tested 3/6) | "is TribElle legit" / "is tribelle.co.uk a real pharmacy" |
J
Verified across live category searches this session, TribElle did not appear once - results were dominated by these confirmed active competitors:
| Competitor | Overlap | What they have that TribElle doesn't |
|---|---|---|
| The Independent Pharmacy | HRT, weight loss | ~17,500+ Trustpilot reviews (vs TribElle's 45 - a ~390x gap) and an on-page "how to spot a genuine online pharmacy" trust article |
| Numan | Menopause/hormonal, weight loss | $60M raise (2025) specifically earmarked for women's-health expansion, with active press coverage - a live, funded, moving threat into this exact segment |
| Pharmacy2U | HRT/menopause | A dedicated, trade-press-covered "digital health hub for women" with 200+ certified menopause products, plus NHS-pharmacy heritage as a trust anchor |
| ZAVA | HRT, weight loss, herpes | Already running paid ads directly against the TribElle brand-name search term |
| MedExpress | Weight loss | Confirmed bidding directly on the bare "tribelle" brand term itself (not just a category term) - 2.3M customers, 4.6★/47,698 reviews claimed in-ad |
| Simple Online Pharmacy | HRT, weight loss, herpes | Broad coverage of all 3 TribElle niches in one competitor property |
| Superdrug / Boots Online Doctor | Weight loss, HRT, herpes | National high-street brand halo TribElle structurally can't replicate through content |
| LloydsPharmacy Online Doctor | Weight loss | Cites specific trial percentages directly on-page (25.3% Mounjaro, 20.7% Wegovy) - a content-depth signal |
| Bolt Pharmacy | Weight loss | Actively capturing TribElle's own brand-name searches with dedicated comparison pages (see Section H) |
10 competitor pharmacies (Cloud Pharmacy, Simple Online Pharmacy, Express Pharmacy, iQ Doctor, The Independent Pharmacy, Click2Pharmacy, and others) were also found each running a dedicated per-drug landing page for a period-pain medication search - TribElle has zero per-drug pages anywhere; everything sits one level up at treatment-category level.
K
| Intent | Example | Coverage today |
|---|---|---|
| Commercial / pricing | "cheapest Wegovy UK", "Mounjaro pen price UK 2026" | None anywhere on TribElle's own domains |
| Named-drug landing pages | "Utrogestan online", "Sumatriptan online UK" | None - 10 competitors found with this pattern, TribElle has zero |
| Comparison / "vs" | "Utrogestan vs Cyclogest", "Femoston vs Elleste Duet" | Only one comparison post exists (Mounjaro vs Wegovy) despite the HRT cluster being deep enough to support several |
| "Best" queries | "best HRT patch for hot flushes UK" | None found |
| Alternatives | "Wegovy alternatives UK", "what to do if Mounjaro is out of stock" | None found |
| Period pain (whole pillar) | - | Essentially no blog support at all, despite being one of only 5 headline treatment categories |
| Adjacent high-volume topics | PMDD, UTI/cystitis, bacterial vaginosis, emergency contraception | Not found anywhere on the site - unknown whether these are in-scope for TribElle's prescribing formulary, worth checking with Julie before building |
L
Within 24 hours
Within 7 days
Within 30 days
M
Phase 1 - Weeks 1-4 · Foundation
Phase 2 - Weeks 5-8 · Authority & Connection
Phase 3 - Weeks 9-13 · Growth & Verification
N
| P | Issue | Area | Fix | Impact | Effort | Conf. |
|---|---|---|---|---|---|---|
| P0 | Homepage empty to every crawler | Technical | Add homepage to existing prerender pipeline | Very High | Small-Med | High |
| P0 | Sitemap points at 5 dead URLs | Technical | Regenerate from real routes | Very High | Small | High |
| P0 | No pricing published anywhere | Content/CRO | Publish indicative price bands | Very High | Small-Med | High |
| P0 | No Organization schema / founder / sameAs | Entity/Schema | Add sitewide | Very High | Small | High |
| P0 | No MedicalWebPage/Therapy schema on treatments | Schema/AI | Add + tie to named reviewer | Very High | Medium | High |
| P1 | Zero canonical tags, duplicate URLs indexable | Technical | Self-referencing canonicals sitewide | High | Small | High |
| P1 | No real 404s anywhere (universal soft-200) | Technical | Edge function + legacy redirects | Med-High | Medium | Medium |
| P1 | HTTP doesn't redirect to HTTPS | Technical | CloudFront policy change | Medium | Small | High |
| P1 | 24.8s mobile LCP (measured), 5 sync third-party scripts before paint | Performance | Defer/async Trustpilot, GTM, Termly; audit jQuery+Bootstrap need | High | Small | High |
| P0 | Brand-term Google search shows 2 domains, a competitor ad, broken favicon, wrong snippet | Entity/Paid | Align ad+organic domain, fix meta desc/favicon | Very High | Small | High |
| P1 | Zero internal cross-linking | Content/Technical | Related-content template block | High | Medium | High |
| P1 | Anonymous "Tribe Team" byline | E-E-A-T | Wire in the 5 real named clinicians | High | Small-Med | High |
| P1 | 3 migraine pages wrongly canonicalized | Content | Remove stray canonical tag | High | Small | High |
| P1 | Two different registered addresses | Entity | Pick one, use everywhere | Med-High | Small | High |
| P1 | Absent from every category SERP tested | Content/SEO | Named-drug landing pages | Very High | Large | High |
| P1 | Founder story, verification links, complaints route only on marketing subdomain | Content/CRO | Port onto tribelle.co.uk directly | High | Small | High |
| P1 | Zero backlinks / Common Crawl footprint | PR/Backlinks | Digital PR push + convert existing citations | High | Medium | Medium |
| P1 | Bolt Pharmacy's CQC/GPhC factual error | Reputation | Request correction | Med-High | Small | High |
| P1 | Migraine content cannibalised across 2 subdomains | Content | Consolidate onto one pillar | High | Medium | Medium |
| P1 | "Grace Verb" hallucination vacuum | Entity | Organization schema (see P0) + manual profile check | Medium | Small | Med-High |
| P2 | Real press (C+D, Yahoo) uncited on-site | Reputation | Add press section + schema mention | Medium | Small | High |
| P2 | Person schema for named reviewers | Schema | Add once bylines exist, link to GPhC register | High | Small | High |
| P2 | Two competing FAQ pages, parity unknown | Content | Redirect or port content+schema | Medium | Medium | Medium |
| P2 | Product schema on shop-otc SKUs | Schema | Add price/availability markup | Med-High | Medium | Medium |
| P2 | Name-collision chaos on social platforms | Brand | Claim/verify disambiguated handles | Medium | Medium | High |
| P2 | Period-pain content pillar nearly empty | Content gap | Build blog support to match other pillars | Medium | Medium | High |
| P2 | LegitScript certification unverified | Trust | Manual status lookup | Low-Med | Small | Low |
| P2 | No editorial/sourcing policy page | E-E-A-T | Publish one (standard on YMYL health sites) | Medium | Small | Medium |
| P2 | Bing crawl depth unverified, no active submission | Technical/GEO | Adopt IndexNow on publish, once sitemap is fixed | Medium | Small | Medium |
| P2 | DUNS number exists but isn't in any schema | Entity | Add as identifier alongside Companies House | Low-Med | Small | High |
| P3 | Julie Boora's title inconsistent across press | Brand | Standardise to one canonical form | Low | Small | High |
| P3 | No www DNS record | Technical | Optional CNAME | Low | Small | High |
| P3 | llms.txt doesn't exist | GEO | Add once SSR is fixed - not a priority lever | Low-Med | Small | High |
| P3 | Cookie modal is a full first-impression takeover | UX | Shrink to a bottom banner | Medium | Small | Medium |
O
Full findings and raw evidence trails for every item above are held in the underlying research (direct curl/browser checks, live WebSearch queries, Common Crawl CDX API calls, and live AI-engine queries against ChatGPT/Gemini/Perplexity). Key sources referenced throughout: GPhC register (pharmacyregulation.org), Companies House (16128081), Google/Bing live SERPs, Trustpilot (uk.trustpilot.com/review/tribelle.co.uk), Chemist+Druggist (chemistanddruggist.co.uk), Yahoo Health, Common Crawl CDX index API, and direct fetches of tribelle.co.uk, blog.tribelle.co.uk, and pages.tribelle.co.uk.
Prepared for TribElle by Adam Parker, Muswell Rose, per the collaboration agreement (clause 3.2).