Skip to content

fix(seo): repair validate_seo.py crash + stop false-blocking on doc placeholder URLs#74

Merged
temalo merged 1 commit into
mainfrom
fix/validate-seo-crash-and-placeholder-urls
Jul 16, 2026
Merged

fix(seo): repair validate_seo.py crash + stop false-blocking on doc placeholder URLs#74
temalo merged 1 commit into
mainfrom
fix/validate-seo-crash-and-placeholder-urls

Conversation

@temalo

@temalo temalo commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #72, which shipped scripts/validate_seo.py with a crash bug.

Fixes

  1. Crash — the orphan-page check unpacked find_internal_links() (returns a set of path strings) as text, linkValueError: too many values to unpack. Now iterates single values; all 4 checks complete.
  2. Placeholder URLs — API-doc example links (admin.shopify.com/store/.../orders/12345, quickbooks.api.intuit.com/.../{REALM_ID}/query) were counted as broken links and "DEPLOY BLOCKED". Added _is_placeholder_url() to skip them.
  3. Auth-walled statuses — 401/403/429 = exists-but-gated, no longer treated as broken.

Not touched

The 52 "pages with no meta description" findings are real and left as-is — that's the validator working. This PR only fixes the crash + false positives.

Blast radius

pages.yml does not run this script as a deploy gate today (it runs validate_frontmatter.py + mkdocs build), so the crash was never blocking live deploys. This makes the script safe to wire in as a gate later. Verified locally: runs to completion, external-link check now clean.

Powered by CorpusIQ

…laceholder URLs

Three fixes to the pre-deploy SEO validator shipped in #72:

1. Crash: the orphan-page check unpacked find_internal_links() (which
   returns a set of path strings) as 'text, link' -> ValueError: too many
   values to unpack. It now iterates single link values, so all 4 checks
   run to completion.

2. Placeholder URLs: API-doc example links (Shopify /store/.../orders/12345,
   QuickBooks {REALM_ID}) were counted as broken links and blocked deploy.
   Added _is_placeholder_url() to skip illustrative URLs.

3. Auth-walled statuses: 401/403/429 mean 'exists but gated / rate-limited',
   not 'broken' — no longer treated as failures.

The 52 missing-meta-description findings are real and left as-is (that's the
validator doing its job); this only fixes the crash + false positives. Note:
the Pages workflow (pages.yml) does NOT run this as a gate today, so this was
not blocking live deploys — but it will be safe to wire in as one now.
@temalo
temalo merged commit 99327f3 into main Jul 16, 2026
1 check passed
@temalo
temalo deleted the fix/validate-seo-crash-and-placeholder-urls branch July 16, 2026 03:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant