My recommendation: don't accept this delivery yet.
The design itself is good work. The product pages sell, the FAQ is real content rather than filler, and the visual language holds together across 30+ pages. Someone cared about this.
The finishing is another story. The main Products page is empty. The mobile menu links to pages that don't exist, so a phone user can't actually reach three of the seven chamber models. The old theme's demo shop is still running, cart and all, selling a ₺125 backpack next to medical oxygen chambers. The homepage hero still contains the template's "personal fitness coach" text. Ten image files were never uploaded, which breaks sections on the Solutions page and product pages and throws errors on every page of the site.
And one thing matters more than all of that for your goals: the site currently tells Google and every major AI crawler to go away. Some of this is normal for a staging domain, but part of it is a Cloudflare setting that will follow the site to production unless someone turns it off. If AI assistants and search results are the point, item 4 in the checklist is the one to watch.
Every finding below was tested twice: once during the review, then again in a separate verification pass with fresh requests. Two of my initial conclusions didn't survive re-testing, which I've noted where relevant (the booking calendar works, and the raw-shortcode bug is one specific page rather than every 404). Everything else reproduced.
| Page / device | Performance | SEO | Accessibility | Best practices | FCP | LCP | CLS |
|---|---|---|---|---|---|---|---|
| Homepage — mobile | 43 | 42 | 85 | 96 | 5.3 s | 22.7 s | 0.175 |
| Homepage — desktop | 68 | — | — | — | 0.9 s | 4.2 s | 0.063 |
| Cezeri product — mobile | 59 | 58 | 87 | — | 4.0 s | 7.9 s | 0.093 |
Reasonable acceptance targets: performance 80+ on mobile and 90+ on desktop, LCP under 2.5 s, CLS under 0.1, SEO 90+ once the staging blocks come off. The SEO score is low mainly because of the deliberate noindex on this demo domain, but the underlying problems in section 9 won't fix themselves at launch.
There is no product grid on the products page. No heading, no text, nothing. The page shows one "Made to order" banner, and that banner sits on top of the footer columns. The page structure contains ten authored sections; all of them render empty. A buyer who clicks "Products" lands on what looks like a page that failed to load.

<main> on a fresh fetch: 0 links, 0 words, 0 H1s. Screenshot taken after a full scroll pass to rule out lazy-loading.Seven dead links, tested one by one: /cezeri-oxygen-chamber/, /farabi-oxygen-chamber/, /taragay-oxygen-chamber/, /solutions/wellness-spa/, /solutions/clinics/, the "Explore Cezeri" button, and "Book a demo" pointing at /demo/. All return 404. On a phone, the menu is the only navigation there is. Three chamber models, two solution pages and the demo booking page are unreachable from it.
There's a second cost: this menu block ships in the HTML of every page, desktop included, so crawlers see sitewide links to 404s.
The Uncode theme's sample store shipped with the site. "Lloyd Wright Chair." "iPhone Gum Case." "Everyday Backpack, ₺125,00," with star ratings and Select-options buttons. The cart page recommends these items under "New in store." Meanwhile /checkout/ and /my-account/ return 404, so the store can't complete a sale anyway. It's half-removed: visible enough to embarrass, broken enough to be useless.

Every page carries noindex, nofollow. On top of that, robots.txt contains a Cloudflare-managed block that disallows GPTBot, ClaudeBot, CCBot, Google-Extended, Amazonbot, Bytespider, Applebot-Extended and meta-externalagent, and adds a Content-Signal: ai-train=no line. There is no llms.txt.
The noindex is correct for a demo domain. The Cloudflare AI block is the trap: it's a zone-level setting, it will quietly carry over to production, and nobody will notice until someone asks why ChatGPT has never heard of Oxyliving. Given that being cited by AI assistants is an explicit goal here, this single setting can undo the entire content investment.
curl -A GPTBot and a Search Console fetch within 24 hours of launch.Two related problems, and I want to be precise because my first pass overstated this. The Downloads page returns 404 and its response renders unprocessed shortcode text ([vc_row is_header="yes"…]) across the top of the page. That broken render is specific to this URL. Other dead URLs get the designed 404 page, which looks fine but has its own bug: the "Back Homepage" button is an href="#", so clicking it does nothing.

is_header shortcode text (198 KB response vs 160 KB for the normal 404). Extracted the 404 page's button markup from the HTML: <a role="button" href="#" title="Index">Back Homepage</a>./.The hero subtitle: "A dedicated personal coach who builds your custom training plan and stays by your side every single day to ensure you reach your fitness goals with confidence." This is filler from a fitness template. It's the most prominent sentence on the site, on desktop and mobile, and it's about a personal trainer.

The five carousel images are requested by a global section that appears on every page, so every page load produces five console errors and downloads about 640 KB of 404-page HTML for nothing. Where the files are actually visible, things look broken: two big empty cards on /solutions/, blank grey video players on Cezeri and Biruni, a missing slide in the homepage carousel.


At 390 px the logo box runs to x=332 and the search icon starts at x=268, a 46 to 64 pixel collision depending on which element you measure. It's on every page. Separately, the homepage hero puts dark text straight onto the photo with no scrim, and the paragraph (currently the fitness placeholder) is close to unreadable.

The heading renders as "e a closer look at / n-pressure / gen." at 1440 px. The text block starts at x=28 while the visible dark hero card starts around x=157, so the first characters of every line fall outside the card and get cut. Mobile clips both edges. This is the landing page for the entire education section.

.oxe-hero.oxe-bleed CSS positions content against the full viewport while the card paints inset.The section says "our certifications aren't just claims — here are the documents behind them," and then shows four striped placeholder graphics reading "CERTIFICATE SCAN", each tagged with a Verified checkmark: CE, ISO 13485, ISO 9001, ISO 14001. For a medical-adjacent product, claiming to show documents and showing mockups is worse than showing nothing. The page's "Browse downloads" button also points at the dead downloads page (C5).

The short version: no page caching (1.8 s server response), a 424 KB unminified plugins.js, about 2.9 s of unused JavaScript, hero images that aren't prioritised, and a Google Fonts request that loads 18 font families when the design uses two.
The interior catalogue link on Cezeri and Biruni has its upload path doubled (…/uploads/2026/07//wp-content/uploads/2026/07/…) and 404s after a redirect. The home brochure at /downloads/oxyliving-home-brochure.pdf also 404s. The exterior colour chart works, which suggests someone tested one download button and stopped.
Each of these pages contains a hidden section whose headings are working notes: "SEO text section for the Cezeri page", "HOW TO USE: In Uncode, add a normal 'Text' element (NOT a Raw HTML block)… Replace the /contact/ and range links with your real URLs." The note tells whoever was building the page to paste the SEO copy as visible text. That never happened. So the copy is invisible to users, the agency's internal notes are in the shipped markup, and each page carries 4 or 5 H1 tags as a side effect.
Typing into "Search questions…" changes nothing. The field accepts input but no filtering happens, and the typed text doesn't even display. The rest of the FAQ is solid: accordions work, categories work, the content is genuinely useful. The search is just not wired to anything.
Hovering Products, Solutions, Oxygen Experience or Sales & Support does nothing, even after a couple of seconds. The mega-menu (which is nicely designed once you find it) opens on click, and the click is intercepted so the parent label never navigates anywhere. There's no chevron or any hint that a submenu exists. Users who never think to click a nav label will simply never see the product menu. One likely factor: the theme's breakpoint detection classifies a 1440 px window as a small screen, which is worth investigating in its own right.
The quote form says "By submitting, you agree to our Privacy Policy." The link goes to /privacy, which doesn't exist. No privacy, KVKK or terms page exists anywhere on the site. The footer has no legal links. Forms collect names, emails and phone numbers with no consent checkbox, and a GDPR plugin sets a consent cookie without ever showing a banner. For a Turkish company (KVKK applies) marketing into the EU (GDPR applies), this needs to be closed before launch, not after.
The homepage counter says 20+ countries. The About page says "8 countries and counting." The homepage meta description says 7 models; the About page counter says 8+. Any visitor who reads two pages can catch the site contradicting itself, and these are exactly the numbers a hospital procurement team checks.
Four issues in one footer: "Media" links to a page that doesn't exist; "Book a demo" points at /demo/ instead of /book-a-demo/ and 404s; the two-part solution names are rendered as separate links, so "Wellness" and "Health Centers" look like two different solutions that lead to the same page (same for "Sports" / "Performance Teams"); and the products column spells it "KAGAN" while the rest of the site writes "Kağan".

No labels, just placeholders that vanish while you type. Validation messages are stock Contact Form 7 ("Please fill the required field.") styled in brand teal, which doesn't read as an error. Phone isn't validated. The quote form next door has proper labels and chip selectors, so the standard exists on this site; the contact form just wasn't brought up to it.
The Cal.com embed works. I initially wrote it off as broken because the section is a big blank white box for its first several seconds; on re-test with more patience the date picker and time slots rendered and are bookable. A visitor on a slow connection gets the same first impression I did, and they won't wait to be corrected.
"Chosen by studios, clinics and homes worldwide" is illustrated by Ritz-Carlton, the Turkish Football Federation and the Jordan FA, looped to fill the marquee. None of the three is a studio, a clinic or a home, and the files are visibly pixelated. Worth confirming usage rights while fixing the resolution.

No H1 at all on /products/ and /blog/. Four to five H1s on each of four product pages (the leaked SEO sections, H7). Two on /about-us/. Heading levels skip around throughout, which both Lighthouse and axe flag.
Site search works and returns sensible results. In the results grid, some cards have images and others are bare text stubs, and demo shop items show up alongside real pages until C3 is done.
Someone pasted a CSS value into a link tag: href="url(https://fonts.googleapis.com/css2?family=Inter…". Browsers refuse it with a MIME error on every page. Fonts still load through the main request, so this is console noise and a few wasted bytes. Delete the tag.
Six-plus console errors per page (mostly the missing images and the font link), a stray formatting log on form pages, and xmlrpc.php answering requests. Disable XML-RPC if nothing uses it.
The MAGULATE logo overflows the right edge at 390 px on some pages.
On pages with a coloured header band, like search results, the teal "HEALTHY YOUR FUTURE" tagline nearly vanishes. A white logo variant would fix it. Separate note for the client rather than the agency: the tagline's English reads oddly, but that's a brand decision.
A weeping emoji face greets anyone who opens the cart. Off-tone for a company selling medical-grade equipment, and moot once the cart is removed (C3).
| Page | H1 | Meta desc | Broken media/links | Desktop | Mobile | Notes |
|---|---|---|---|---|---|---|
| / (home) | ✓ | ✓ | 5 img 404 | Placeholder hero copy; logo strip | Hero unreadable; icon overlap | C6, H1, H2, M1, M7 |
| /products/ | ✗ | ✗ | 5 img 404 | Empty page, overlap | Same | C1 |
| Cezeri product | 5×H1 | ✓ | video poster, PDF | Blank video box | Good | H1, H6, H7; otherwise the strongest template on the site |
| Biruni product | 4×H1 | ✓ | video poster, PDF | Blank video box | Good | H1, H6, H7 |
| Avicenna / Kağan products | 4×H1 | ✓ | 5 img 404 | Good | Good | H7 (leaked notes verified on both) |
| /solutions/ | ✓ | ✓ | 7 img 404 | 2 empty cards | Good | H1, M3 naming |
| /solutions/home/ | ✓ | ✓ | bg img, brochure PDF, 2 product links | Good | Good | H6, plus dead links to /products/avicenna-oxyl-1s and cezeri-oxyl-1h |
| /oxygen-experience/ | ✓ | ✓ | 5 img 404 | Hero clipped | Hero clipped | H3 |
| …/what-is-high-pressure-oxygen/ | ✓ | ✓ | 5 img 404 | Good | Good | — |
| /about-us/ | 2×H1 | ✓ | 5 img 404 | Good | Good | M1 stats conflict; 39 images without alt text |
| /certifications/ | ✓ | ✓ | downloads link 404 | Placeholder scans | Layout OK | H4 |
| /support/ hub | ✓ | ✓ | distributor + downloads links 404 | Good | Good | /support/distributor should be /support/become-a-distributor/ |
| /support/faq/ | ✓ | ✓ | 5 img 404 | Search dead | Good | H8; accordion and FAQPage schema both good |
| /support/downloads/ | Returns 404 with raw builder markup; listed in the sitemap and linked from three pages (C5) | |||||
| /contact-us/ | ✓ | ✓ | 5 img 404 | No labels; stock CF7 messages | Good | M5; validation works; map embed works |
| /request-a-quote/ | ✓ | ✓ | /privacy 404 | Best form on the site | Good | H10 |
| /book-a-demo/ | ✓ | ✓ | — | ~8 s blank before calendar | Calendar works | M6 |
| /blog/ | ✗ | ✓ | 5 img 404 | Good | Good | M8 |
| Blog post (sample) | ✓ | ✓ | 5 img 404 | Good | Good | BlogPosting schema present |
| /cart/, /shop/, demo products | Theme demo store live (C3); /checkout/ and /my-account/ 404 | |||||
| 404 page (generic) | Renders correctly, but "Back Homepage" links to "#" (C5) | |||||
| Metric | Mobile | Desktop | Target |
|---|---|---|---|
| Performance score | 43 | 68 | 80+ / 90+ |
| First Contentful Paint | 5.3 s | 0.9 s | < 1.8 s |
| Largest Contentful Paint | 22.7 s | 4.2 s | < 2.5 s |
| Cumulative Layout Shift | 0.175 | 0.063 | < 0.1 |
| Total Blocking Time | 240 ms | 10 ms | < 300 ms |
| Server response (TTFB) | ≈ 1.8 s | < 0.6 s | |
| Initial payload | ≈ 1.4 MB / 100 requests, before lazy images | — | |
The goal is to rank on Google and get cited by ChatGPT, Claude, Perplexity and Google's AI results. Right now the site is invisible to all of them, by configuration.
| Check | Status | Detail |
|---|---|---|
| Indexing meta | Blocked | noindex, nofollow on every page. Right for a demo domain, fatal in production. This is the number one launch-gate item; verify removal on launch day. |
| AI crawler access | Blocked | Cloudflare-managed robots.txt rules disallow GPTBot, ClaudeBot, CCBot, Google-Extended, Amazonbot, Bytespider, Applebot-Extended and meta-externalagent, with Content-Signal: ai-train=no. This is a zone setting and it will carry to production unless someone turns it off. Verified rule by rule. |
| llms.txt | Missing | Publish /llms.txt describing the company, the seven models and the key pages. Cheap to do and AI retrieval tools read it. |
| Sitemap hygiene | Fail | The sitemap index advertises 32 demo products, 21 demo portfolio pages, 13 demo categories and the dead downloads page. Clean it with C3. |
| Structured data | Partial | Organization, WebSite and WebPage emitted sitewide; FAQPage on the FAQ is a real asset for AI answers; BlogPosting on posts. But product pages are typed Article, with no Product node, no brand, no model, no specs. Add Product schema. There are also stray Person nodes on company pages. |
| Canonical URLs | Missing | No rel=canonical on the homepage or product pages in either review pass. Possibly suppressed alongside noindex; confirm they appear after de-staging. |
| Open Graph / Twitter | Partial | Inner pages are fine. The homepage has no og:image, so shares of the main URL get no preview. |
| Headings | Issues | Missing H1s on /products/ and /blog/, four to five H1s on four product pages, skipped levels elsewhere. Affects snippet quality and AI extraction both. |
| Internal links | 18 broken | Including the mobile-menu 404s that appear in every page's HTML (C2). Dead links waste crawl and read as neglect to quality systems. |
| Language targeting | Note | English-only content declaring en-US on a .com.tr domain, no hreflang. If a Turkish version or an international .com is planned, decide the hreflang setup before launch, not after. |
| Content quality for AI citation | Good base | The oxygen-experience explainers, the FAQ and the spec-heavy product pages are exactly what AI assistants quote. The content is ready; the doors are locked. |
| Issue (axe-core / Lighthouse, homepage) | Impact | Count |
|---|---|---|
| Images without alt attributes | Critical | 24 (39 on /about-us/) |
| Links without a discernible name (icon and image links) | Serious | 46 |
| Focusable elements inside aria-hidden containers (hidden menus and sliders stay tabbable) | Serious | multiple |
| Buttons without accessible names | Serious | 1+ |
| Non-sequential heading order | Moderate | sitewide |
| Form inputs labelled by placeholder only (contact form) | Moderate | 5 fields |
Add the mobile hero contrast (H2) and the teal error messages (M5) to this list in practice. The Lighthouse accessibility score of 85 says the bones are fine; an alt-text and link-name pass would get it to defensible.
Worth stating plainly, because the checklist below is long and the agency did real work here:
| # | Item | Ref | Priority |
|---|---|---|---|
| 1 | Rebuild /products/ with the full model range; fix the banner/footer overlap | C1 | Blocker |
| 2 | Fix every mobile-menu URL; retest each item on a real phone | C2 | Blocker |
| 3 | Remove the demo store, portfolio and categories; clean the sitemap; redirect or 410 the URLs | C3 | Blocker |
| 4 | Launch runbook: remove noindex, disable Cloudflare AI-bot blocking, publish llms.txt, verify with live fetches | C4, §9 | Blocker at launch |
| 5 | Restore /support/downloads/; point the 404 page's home button at / | C5 | Blocker |
| 6 | Replace the placeholder hero copy; sweep for other template text | C6 | Blocker |
| 7 | Upload the ten missing media files; add a zero-404-media check before launch | H1 | High |
| 8 | Mobile: hero scrim, and fix the logo/search-icon overlap | H2 | High |
| 9 | Fix the Oxygen Experience hero clipping at all breakpoints | H3 | High |
| 10 | Real certificate scans, or drop the claim; fix the downloads button | H4 | High |
| 11 | Performance: page cache, LCP preload, JS minify and pruning, trim fonts to the two used families | H5, §8 | High |
| 12 | Fix the interior-catalogue and home-brochure PDF links | H6 | High |
| 13 | Make the hidden SEO copy visible on four product pages, delete the internal notes, one H1 per page | H7 | High |
| 14 | Wire up the FAQ search, or remove it | H8 | High |
| 15 | Desktop menus: hover-open plus chevrons; review the theme breakpoint settings | H9 | High |
| 16 | Privacy/KVKK/cookie pages with consent; fix the /privacy link | H10 | High |
| 17 | Reconcile the countries and model-count numbers; unify naming across menus and footer | M1, M3 | Medium |
| 18 | Footer: fix Media and Book-a-demo links, merge the split solution names, correct "Kağan" | M2 | Medium |
| 19 | Product JSON-LD, homepage og:image, confirm canonicals after de-staging | M4, §9 | Medium |
| 20 | Contact form labels and error styling; Cal.com loading state; alt-text and link-name pass | M5, M6, §10 | Medium |
Method: each finding was reproduced against the live site on 10 July 2026, then re-verified the same day in a separate pass with fresh HTTP requests, DOM measurements and real input events. Two findings changed after re-testing and are marked as such (M6, C5). Lab performance figures are Lighthouse 13.4 defaults with mobile throttling; production field data will differ, but the causes identified are configuration-level. Evidence: screenshots/ (raw), screenshots/annotated/ (highlighted), lh-*.json (Lighthouse), plus the audit scripts used.