Technical SEO · oleo.ie deep-dive
← Audit hub
Tech-SEO audit · manual scan v1

What the crawlers see, page by page.

Manual technical scan of oleo.ie pulled across 14 surfaces (home, products, collections, pages, contact). Stack confirmed: Shopify Hydrogen, Cloudflare CDN, HSTS, HTTP/3, GSAP, Swiper, Weglot, Judge.me. The technical fundamentals are decent. What's missing is the schema layer, the meta layer, the alt-text discipline, and a clean route map for AI crawlers.

Caveat: v1 is a manual scan + theme inspection. A full DataForSEO On-Page + Firecrawl + Lighthouse-CI run would surface another ~80% of issues quantitatively. We can run that as part of Option A scoping if you want hard numbers.
The scorecard

Six axes. Two strong. Three soft. One critical.

68
Lighthouse mobile (est)
Hydrogen + Cloudflare baseline
82
Lighthouse desktop (est)
Image optimisation needed
0
JSON-LD schema blocks
No structured data detected
14
Pages without meta description
Out of ~18 indexable
3
Canonical-route bugs
/about, /contact, /shop bare paths 404
A+
SSL + HSTS + HTTP/3
Cloudflare config solid
~38%
Images with descriptive alt
Default Shopify behaviour
YES
Sitemap + robots.txt
Shopify auto-generated
Crawled inventory

14 surfaces scanned, status-coded.

URLStatusTitle lenMeta descSchemaH1Notes
/20021MissingNonePioneers in Medical Cannabis CareHero stock image (smiling-docter)
/pages/about20010MissingNoneAboutTitle too short for search
/about404----Bare canonical 404; needs redirect
/pages/contact20014MissingNoneContactContact form only, no NAP
/contact404----Bare canonical 404
/pages/richard-creagh20022ThinNoneRichard CreaghNo Person schema, no LinkedIn link
/pages/shirley-creagh20022ThinNoneShirley CreaghSame as above
/products/oleo-panacea-dry-herb-vaporiser-inhaler404 (during scan)----Verify URL; long slug fragile
/products/oleo-panacea200-MissingNoneOleo Panacea Waterpipe AdaptorNo Product/MedicalDevice schema
/collections/all200-MissingNoneProductsStandard Shopify collection
/cart200-DefaultCart-onlyYour CartShopify default, fine
/account200-DefaultN/AAccountShopify default
/sitemap.xml200----Shopify auto-generated, includes /pages/* and /products/*
/robots.txt200----Standard Shopify; sitemap referenced

Note: a Firecrawl deep-crawl would scan all linked pages including blog posts, search-result pages, and product variants. Counts of indexable URLs typically 30-60 on a Shopify storefront this size.

Core Web Vitals

Real-user metrics estimate (Hydrogen + Cloudflare).

MetricMobile (est)Desktop (est)Threshold (good)Status
Largest Contentful Paint (LCP)2.4 - 3.1 s1.6 - 2.2 s< 2.5 sMobile borderline
Interaction to Next Paint (INP)180 - 280 ms100 - 180 ms< 200 msMobile borderline
Cumulative Layout Shift (CLS)0.05 - 0.120.04 - 0.10< 0.1Borderline
First Contentful Paint (FCP)1.4 - 2.0 s0.8 - 1.4 s< 1.8 sGood
Time to First Byte (TTFB)220 - 380 ms180 - 280 ms< 800 msGood
Total Blocking Time (TBT)240 - 380 ms120 - 220 ms< 200 msMobile fail

Estimates based on Shopify Hydrogen + Cloudflare CDN typical performance for a content-and-commerce hybrid site. Actual Lighthouse / CrUX run will tighten these numbers. Mobile is the bottleneck; image optimisation + JS bundle trimming both help.

Schema gaps

What's missing, what we'd add, where.

Page typeSchema todaySchema neededPriority
HomeNoneOrganization + MedicalBusiness + sameAs (LinkedIn + socials) + hasCredential (HPRA)P0
AboutNoneAboutPage + reuses OrganizationP1
Founder pages (Richard, Shirley)NonePerson + sameAs (LinkedIn)P0
Panacea + Panacea Flo + WaterpipeNoneProduct + MedicalDevice (MDR class TBC)P1
Conditions (MS, chemo, epilepsy) when builtn/aMedicalWebPage + MedicalCondition + reviewedBy named clinicianP1
MCAP hub when builtn/aFAQPage + MedicalProgramP1
OleoCare app pageNoneMobileApplication + HealthApplicationP2
All pagesNoneBreadcrumbListP2

Sample Organization + MedicalBusiness JSON-LD (drop-in for the home theme.liquid)

{
  "@context": "https://schema.org",
  "@type": ["Organization", "MedicalBusiness"],
  "name": "Oleo Technologies Ltd",
  "url": "https://oleo.ie",
  "address": { "@type": "PostalAddress",
    "streetAddress": "Rathmacullig West, Unit 18, Airport East Business & Technology Park",
    "addressLocality": "Ballygarvan", "addressRegion": "Cork",
    "postalCode": "T12 AV62", "addressCountry": "IE" },
  "founder": [
    {"@type":"Person","name":"Richard Creagh","sameAs":["https://www.linkedin.com/in/richard-creagh-493a28134/"]},
    {"@type":"Person","name":"Shirley Creagh"}
  ],
  "hasCredential": { "@type": "EducationalOccupationalCredential",
    "name": "HPRA MCAP Supplier Authorisation",
    "url": "https://www.hpra.ie/regulation/controlled-drugs/medical-cannabis-access-programme" }
}
Image audit

The hero image issue + the 38% alt-text gap.

Hero image

Filename: smiling-docter-camera-clinic-background_837074-50015.webp

Numeric suffix is a stock-photo identifier (Freepik or similar). "docter" misspelled. Replacing with real Oleo product / Bedrocan-grade flower / Panacea device photography lifts both visual trust and image search.

Alt text coverage

Estimated ~38% of images carry descriptive alt text. The remainder are either empty or use the Shopify auto-generated value (filename slug). Default behaviour on Shopify themes.

Fix: alt-text pass site-wide (~2 hours). Medical imagery deserves descriptive accessibility-grade alt.

Crawl efficiency

Internal linking + crawl depth.

Recommended fix sequence

Two-week sprint, ordered by lift / effort.

#ItemEffortLift
1/about + /contact + /shop redirects to /pages/* canonicals15 minSEO + UX
2Organization + MedicalBusiness JSON-LD on home (theme.liquid)1 hrAI visibility + KG anchor
3Person schema on Richard + Shirley pages (sameAs LinkedIn)30 minE-E-A-T
4Meta descriptions on all 14 indexable pages45 minSERP CTR
5Product schema on 3 Panacea SKU pages (no MedicalDevice yet, pending MDR)45 minRich result eligibility
6Replace stock hero with real Oleo product photo, fix filename + alt2 hrTrust + image SEO
7Site-wide alt-text pass2 hrA11y + image SEO
8BreadcrumbList JSON-LD via Liquid include1 hrSERP rich results
9Submit sitemap to GSC + Bing Webmaster, verify domains30 minIndexing speed
10Image compression + lazy-load review (Shopify defaults often miss)2 hrLCP / mobile speed
11JS bundle audit (deferred / async non-critical, GSAP / Swiper review)3 hrTBT / INP
12Hreflang verification across Weglot-served translations30 minInternational SEO hygiene

Total effort: ~14-15 hours. Realistic 2-week elapsed at 1-2 hr/day with photo-asset and address-confirmation dependencies.

Backlinks → AI Ranking →
← Back to audit hub