Technical Audit checks canonicals and redirect chains #6

Closed
opened 2026-05-28 18:14:31 +01:00 by bingoss · 1 comment
Owner

What to build

Type: AFK.

Extend Technical Audit page checks to identify canonical tag problems and redirect-chain issues. The stage should record actionable Technical Findings only when the fetched evidence supports the issue.

Acceptance criteria

  • Missing, off-host, conflicting, or malformed canonical signals are recorded as Technical Findings with affected URL, evidence, impact, fix guidance, and verification method.
  • Redirect chains and unsafe final targets are captured from fetch evidence without following private or off-host audit paths beyond the safe boundary.
  • Dashboard exposes the new finding types alongside existing Technical Findings.
  • Tests are written first for canonical success/failure and redirect-chain findings.

Blocked by

None - can start immediately

## What to build Type: AFK. Extend Technical Audit page checks to identify canonical tag problems and redirect-chain issues. The stage should record actionable Technical Findings only when the fetched evidence supports the issue. ## Acceptance criteria - [ ] Missing, off-host, conflicting, or malformed canonical signals are recorded as Technical Findings with affected URL, evidence, impact, fix guidance, and verification method. - [ ] Redirect chains and unsafe final targets are captured from fetch evidence without following private or off-host audit paths beyond the safe boundary. - [ ] Dashboard exposes the new finding types alongside existing Technical Findings. - [ ] Tests are written first for canonical success/failure and redirect-chain findings. ## Blocked by None - can start immediately
Author
Owner

Issue #6 completion audit

Requirements checked:

  • Technical Audit now records missing, off-host, conflicting, and malformed canonical signals as normalized Technical Findings with affected URL, evidence summary, impact, fix guidance, and verification method.
  • Redirect chains and off-host final targets are captured from fetch evidence without following private/off-host audit paths beyond the safe fetch result boundary.
  • Dashboard exposure is covered by existing Technical Findings read model; new findings use the same normalized fields as other Technical Audit findings.
  • Tests were written first for canonical success, canonical failure variants, redirect chains, and unsafe final targets.

Verification on codex-server:

  • python3 -m unittest tests.test_technical_audit_worker.TechnicalAuditWorkerTests.test_technical_audit_worker_records_canonical_signal_findings tests.test_technical_audit_worker.TechnicalAuditWorkerTests.test_technical_audit_worker_accepts_self_canonical_without_finding tests.test_technical_audit_worker.TechnicalAuditWorkerTests.test_technical_audit_worker_records_redirect_chain_and_unsafe_final_target -> OK
  • python3 -m unittest tests.test_site_crawler tests.test_technical_audit_worker -> 27 tests OK
Issue #6 completion audit Requirements checked: - Technical Audit now records missing, off-host, conflicting, and malformed canonical signals as normalized Technical Findings with affected URL, evidence summary, impact, fix guidance, and verification method. - Redirect chains and off-host final targets are captured from fetch evidence without following private/off-host audit paths beyond the safe fetch result boundary. - Dashboard exposure is covered by existing Technical Findings read model; new findings use the same normalized fields as other Technical Audit findings. - Tests were written first for canonical success, canonical failure variants, redirect chains, and unsafe final targets. Verification on codex-server: - python3 -m unittest tests.test_technical_audit_worker.TechnicalAuditWorkerTests.test_technical_audit_worker_records_canonical_signal_findings tests.test_technical_audit_worker.TechnicalAuditWorkerTests.test_technical_audit_worker_accepts_self_canonical_without_finding tests.test_technical_audit_worker.TechnicalAuditWorkerTests.test_technical_audit_worker_records_redirect_chain_and_unsafe_final_target -> OK - python3 -m unittest tests.test_site_crawler tests.test_technical_audit_worker -> 27 tests OK
Commenting is not possible because the repository is archived.
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bingoss/owned-growth-engine#6
No description provided.