2026-09-07-seo-audit.md
countries/tn/reports/2026-09-07-seo-audit.md
SEO Audit — tunisie-electricite.com — 2026-09-07
Diffed against reports/2026-08-31-seo-audit.md. Two things landed since then, and
this run verified both live rather than trusting the merges.
git log origin/develop --since=2026-08-31 on TN paths → one commit:
6222c3da04f (PR #18264, the local faq-schema component for /steg/numero-vert,
merged 2026-09-02). Shared files behind the TN-002 regression (app/Support/FaqAnswer.php
resources/views/components/accordion) → one commit:a1b113ff29b(PR #18655, merged 2026-09-01), which root-caused and fixed the fleet-wide bug TN-002 was a workaround for. No other opencountryos/tnPR except the content calculator (below).
The TN-002 arc is fully closed — and so is its root cause
/steg/numero-vert now emits a 5-question FAQPage live (cache-busted):
FAQPage=1, Question=5, Answer=5, BreadcrumbList=1. The local faq-schema
component from PR #18264 works.
Separately, PR #18655 (Aurian, merged 2026-09-01) found the real root cause of
the shared FaqAnswer regression that TN-002 had to work around: a \v in a PCRE
whitespace class that, since PCRE 7.2, means vertical whitespace (including the
0x85 NEL byte) rather than the vertical tab that was meant — so every UTF-8 char
carrying a 0x85 continuation byte (Arabic م, Greek υ, Nordic Å, …) got a
space punched into it, json_encode() returned false, and the whole FAQPage
block vanished. Blast radius was 173 pages across 11 sites (3 on
tunisie-electricite.com). The fix narrows \v → \x0B and degrades the accordion
per item instead of per page.
Consequence for TN: the local faq-schema duplication (PR #18264) is now
technically redundant — the shared component is fixed. It is also harmless and
battle-tested (site-scoped, only shadows numero-vert), so retiring it is a
cleanup decision, not a defect. Worth a future tn:seo-fixes when there's another
mechanical item to batch with it; do not rush it.
1. Live site health
All 8 core URLs 200 OK: /, /tarifs, /tarifs-gaz, /steg, /coupures,
/annuaire, /sitemap.xml, /robots.txt. Homepage 4.09s on the first (cold)
hit; everything else 0.09–0.99s.
2. Page audits — carried forward, standing checks re-measured
All 13 static pages + 3 template families carried forward (scores unchanged; the
only content diff is the numero-vert FAQ fix). Re-measured title/meta across 13
URLs with node, entities decoded:
| Check | Result |
|---|---|
| Title length (13 URLs) | max 65 (/tarifs, /monastir/sayada-lamta-bou-hajar) — at guideline, ok |
| Meta length (13 URLs) | max 157 (/steg) — within 160 |
/annuaire/sidi-bouzid meta |
151 — #17032 fix holding |
/monastir/sayada-lamta-bou-hajar meta |
145 — #17032 fix holding |
/steg/numero-vert FAQPage |
1 block, 5 questions — TN-002 closed ✓ |
/tarifs FAQPage (shared accordion) |
1 — intact post-#18655 |
/coupures FAQPage (shared accordion) |
1 — intact post-#18655 |
| sitemap.xml | 673 URLs (374 /coupures/*) — stable |
| homepage JSON-LD | 2 blocks (Organization + WebSite) — intact |
homepage og:image |
absent (12th run flagged) |
Zero title/meta length breaches. The annuaire + outage page families remain fully within guideline.
3. Directory spot-check
/annuaire/sidi-bouzid (meta 151), /monastir/sayada-lamta-bou-hajar (title 65,
meta 145), /coupures/tunis and /coupures/medenine/djerba-midoun (2 JSON-LD
each) — all resolve with real data, valid title/meta.
New page pending review (not yet live)
/calculateur-facture-steg (PR #19418, countryos/tn/2026-09-05-content-…) is
still a draft PR, not merged — confirmed live 404, expected. It is the
tn:content run's output (STEG bill simulator), not a mechanical SEO item, so it
is out of scope for tn:seo-fixes. Score it in the audit after it merges, and
grade its traffic at merge+28d per the tn:content skill.
Top actions (ranked by impact/effort)
- [Non-mechanical] ogImage site-wide — still 0/673 pages, 12th run flagged.
Same candidate as before: a batch
/generate-article-imagepass (13 static + 24 annuaire governorate pages first). Needs a dedicated task. - [Non-mechanical] FAQ sections on the 6 remaining
/steg/*subpages (only/steg/numero-verthas FAQ content). Candidate fortn:content(one page/month). - [Cleanup, low priority] Retire the local
faq-schema.blade.phpduplication now that the sharedFaqAnswerfix (#18655) has landed — verify/steg/numero-vertworks via the shared:schema="true"path again, then delete the local component and revert thenumero-vert.blade.phpchange. Not urgent; batch with the next mechanical fix. - [Housekeeping] TN-003 is
resolvedbut physically sits above the## Resolvedheading ofdecisions.md— the relocation sweep flagged since 08-19 still hasn't happened. Zero site impact; trivial markdown move.
Chain decision
No tn:seo-fixes trigger. 0 mechanical items found this run — the single
mechanical defect that existed (TN-002) was already fixed by PR #18264 (verified
live). The one open countryos/tn PR (#19418) is a content PR, not a seo-fixes PR,
so it does not block anything here. This is a genuine "nothing to fix" skip, like
08-10 and 08-25.