# SEO a Playwright Testy - Audit a Plán Zlepšení ## Problémy Identifikované ### 🔴 SEO - Web (doxa-notes.org) #### Kritické problémy: 1. **Chybějící Open Graph obrázek v index.html** - `og:image` není specifikován, pouze Twitter image - Bez OG image se socmédia nezobrazí korektně 2. **Chybějící meta tags pro mobily** - Chybí `viewport` meta tag (nemá měřítko a zoomu) - Dopad: špatné zobrazení na mobilech, horší SEO ranking 3. **Nejednotný formát title tagů** - index.html: "DOXA Notes — Local-First poznámky..." - about.html: "O projektu — Doxa" (bez "DOXA Notes") - privacy.html: "Ochrana soukromí — DOXA Notes" - Nejednotnost není ideální, měly by být konsistentní 4. **Chybí meta description na web_app/index.html** - Web app má `robots: noindex, nofollow` (správně) - Ale chybí base meta description, jen title 5. **Canonical URL - web_app/index.html** - Chybí canonical tag na app stránce (jen na webu) 6. **Nejednotné sociální meta tags** - O projektu a privacy nemají OG image, Twitter image - Neúplné Twitter card metadata 7. **Missing lang attribute na web_app** - web_app/index.html má `lang="cs"`, ale chybí OG locale 8. **robots.txt nedostatky** - Sitemap odkazuje jen na wiki, ne na hlavní web - Chybí explicit allow/disallow pro jednotlivé web stránky ### 🔴 SEO - Web App 1. **robots.txt správně blokuje web_app (noindex)** - Správně: `Disallow: /web_app/` 2. **Chybějící Open Graph metadata** - Není `og:*` tags vůbec - Twitter card není definován 3. **Nedostatečný JSON-LD schema** - Na web_app není vůbec strukturovaná data - Jen na index.html SoftwareApplication schema ### 🔴 Playwright Testy - Problémy 1. **Chybí test pro Web App SEO** - noteApp.test.ts nemá žádné SEO testy - Měl by testovat noindex/nofollow, title, meta description 2. **Chybí testy pro OG tagy** - HomePage.ts nemá metodu `getOGImage()`, `getOGTitle()` - Chybí testy pro Twitter card 3. **Nevyhovující test abecedy menu** - textHelpers nemá "Návod" v menu (ale existuje na webu) - Neúplný seznam očekávaných textů 4. **Chybí accessibility testy (a11y)** - Žádné testy pro ARIA labels, heading struktura - Nejednotné heading struktura (h1, h2, h3) 5. **Chybí performance/lighthouse testy** - Žádné testy pro load time, Core Web Vitals - Žádné testy pro lazy loading obrázků 6. **Playwright config - omezený scope** - Jen chromium, chybí firefox, webkit - Reporter je jen HTML, žádné JSON/JUnit 7. **Chybí testy pro 404/error stránky** - Žádné testy pro chybové strany - Žádné testy pro chybné CSS/JS asety 8. **AppPage POM - nedostatečné selektory** - Závisí na ID selektorech, měly by být odolnější - Chybí error handling v navigate() 9. **Chybí data-testid atributy** - HTML nemá `data-testid` pro stabilní test selektory - Zranitelné na změny CSS/stylů 10. **Testy neuklízí state** - Testy nevymazávají localStorage mezi spuštěním - Chybí cleanup po testech ## Pracovní Plán ### Fáze 1: SEO Optimalizace (Primární) - [ ] Přidat meta viewport tag do všech HTML - [ ] Přidat Open Graph obrázek do všech stran - [ ] Unifikovat title tagy podle formátu - [ ] Doplnit meta descriptions na chybějící stránky - [ ] Přidat OG locale pro Czech - [ ] Doplnit Twitter Card tagy na všechny stránky - [ ] Vytvořit sitemap.xml pro web (ne jen wiki) - [ ] Zlepšit robots.txt ### Fáze 2: Web App Metadata - [ ] Přidat OG tagy na web_app (s noindex varováním) - [ ] Přidat JSON-LD schema pro WebApplication - [ ] Ověřit noindex direktiva na web_app ### Fáze 3: Playwright Testy - SEO - [ ] Přidat testy pro OG metadata - [ ] Přidat testy pro Twitter Card - [ ] Přidat testy pro meta descriptions - [ ] Vytvořit SEO utility metody v HomePage.ts - [ ] Vytvořit Web App SEO testy ### Fáze 4: Playwright Testy - Rozšíření - [ ] Přidat a11y testy (ARIA, heading struktura) - [ ] Přidat testy pro mobile viewport - [ ] Přidat Firefox a WebKit do playwright.config - [ ] Přidat data-testid atributy do HTML - [ ] Přidat AppPage testy pro error states - [ ] Přidat cleanup/setup hooks ### Fáze 5: Další Vylepšení - [ ] Přidat lighthouse integration testy - [ ] Přidat JSON reporter k playwright - [ ] Přidat CI/CD integration ## Poznámky - Zaměření primárně na SEO (dle požadavku) - Web vs Web App: Web je SEO friendly, App je noindex (správně) - Playwright testy potřebují kompletní refresh