67 lines
3.0 KiB
Markdown
67 lines
3.0 KiB
Markdown
|
|
# tubev — Performance / PSI
|
|||
|
|
|
|||
|
|
PSI критично — швидкість впливає на SE → реклама → дохід.
|
|||
|
|
|
|||
|
|
## Status
|
|||
|
|
|
|||
|
|
🟡 **Manual mode** — автомоніторингу нема. PSI checks ad-hoc.
|
|||
|
|
|
|||
|
|
## Принципи
|
|||
|
|
|
|||
|
|
- **Critical CSS inline** у `views/css/css_*.etlua` (rendered у `<head>`)
|
|||
|
|
- **Deferred CSS** — `views/static/css/*.css` під `<link rel="preload" ... onload>` або захищеним defer pattern
|
|||
|
|
- **JS defer** — non-critical JS не блокує LCP
|
|||
|
|
- **CDN на prod** — edge caching для static assets
|
|||
|
|
- **Cache-bust через `?v=md5`** — щоб CDN не serv stale (детально у [DEPLOY.md](DEPLOY.md#cache-bust-механізм))
|
|||
|
|
|
|||
|
|
## Поточний процес
|
|||
|
|
|
|||
|
|
1. **Тригер для перевірки:**
|
|||
|
|
- Після великих змін (refactor / structural)
|
|||
|
|
- Періодично (ad-hoc, не регулярно)
|
|||
|
|
- Після репортів про повільність
|
|||
|
|
2. **Інструмент:** `https://pagespeed.web.dev/` (Google PageSpeed Insights — public)
|
|||
|
|
3. **Дія:** все що Lighthouse підкреслив у "Opportunities" / "Diagnostics" — варто пофіксити.
|
|||
|
|
4. **Запис:** результати **не зберігаються** systematically. Subjective tracking ("стало гірше" / "ок").
|
|||
|
|
|
|||
|
|
## Future — automonitoring (не пріоритет, in-mind)
|
|||
|
|
|
|||
|
|
Ідеї коли руки дійдуть:
|
|||
|
|
|
|||
|
|
- **PSI API** + cron → daily snapshot per site (mobile / desktop)
|
|||
|
|
- **Database** з історією → graphs per site
|
|||
|
|
- **Alert** при падінні >X% від baseline
|
|||
|
|
- **Lighthouse-CI** у git-save-all.sh? (PSI run на t1.* після deploy)
|
|||
|
|
|
|||
|
|
Поки тримати в умі — ground для майбутнього.
|
|||
|
|
|
|||
|
|
## Що треба з'ясувати + задокументувати
|
|||
|
|
|
|||
|
|
### Targets
|
|||
|
|
- [ ] PSI target mobile / desktop — який baseline вважаємо OK? (probably: mobile ≥ 70, desktop ≥ 90)
|
|||
|
|
- [ ] LCP / CLS / TBT — які thresholds для тривоги?
|
|||
|
|
|
|||
|
|
### Bottlenecks
|
|||
|
|
- [ ] Common bottleneck across sites — ads / video player / fonts / images?
|
|||
|
|
- [ ] Per-site outliers — які гірші, чому?
|
|||
|
|
|
|||
|
|
### Optimization patterns у репо
|
|||
|
|
- [ ] Image format — webp / avif / jpeg per-site?
|
|||
|
|
- [ ] Font loading — self-hosted чи Google Fonts? `font-display: swap`?
|
|||
|
|
- [ ] Video poster lazy-load — реалізовано?
|
|||
|
|
- [ ] Service Worker / cache strategy — є?
|
|||
|
|
|
|||
|
|
## Per-site PSI table (placeholder)
|
|||
|
|
|
|||
|
|
| Port | Domain | Mobile | Desktop | LCP | CLS | TBT | Last check | Notes |
|
|||
|
|
|------|--------|--------|---------|-----|-----|-----|-----------|-------|
|
|||
|
|
| 8082 | atube.sex | TBD | TBD | TBD | TBD | TBD | — | — |
|
|||
|
|
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
|
|||
|
|
|
|||
|
|
(Заповнити по мірі замірів якщо системно вирішимо tracking-нути.)
|
|||
|
|
|
|||
|
|
## Open questions
|
|||
|
|
|
|||
|
|
- [ ] Який PSI mobile baseline вважаємо acceptable (70 / 80 / 90)?
|
|||
|
|
- [ ] Найбільш проблемні сайти — чи знаєш off the top of head?
|