idkmesh

SEO + AI-Visibility Audit — mskazemi.com/idkmesh/

Date: 2026-09-20 · Baseline: main at 999bc26d68913233a37695e7b93c792b20bc6a32 Target: https://mskazemi.com/idkmesh/ (homepage-first pass, per audit convention) Question answered: is this page visible to search engines and AI answer engines, and if not, why?

Method

Homepage-first CLI audit: dual/triple-UA fetch (normal browser, OAI-SearchBot, PerplexityBot) of the raw HTML, domain-root and sub-path robots.txt, sitemap.xml reachability, on-page metadata (title/description/canonical/H1/ JSON-LD/OG), and visible content sampling. No live browser tools were used in this pass — Core Web Vitals and actual Google/Bing index status are explicitly marked unmeasured below rather than guessed, per audit policy.

Overall: 86/100 — zero P0 blockers

Dimension Score Weight
Technical SEO 95/100 30%
Content quality 90/100 25%
LLM-citability 88/100 25%
Trust / entity 65/100 20%

Root-cause tree result

Check Result
1. Indexed in GSC? Unverified this pass (needs a live console check).
2. AI-crawler UA gets real content? Yes — identical 26,680-byte HTML across a normal browser UA, OAI-SearchBot, and PerplexityBot. Static Jekyll build, no JS-rendering gap.
3. Edge/WAF returns 200 to AI bots? Yes — no 403/429 on any tested UA.
4. Any entity/authority signal? Weak — Person schema with sameAs exists; off-site corroboration (backlinks, Wikidata, YouTube, community mentions) is essentially absent, expected for a repository created 2026-08-28 (~3 weeks old at audit time).
5. Right content/intent, not thin? Yes — dense, concrete, honestly-labeled content (see below).

No hard blocker suppresses visibility. The limiting factor is accumulated off-site authority, which is a time problem, not a configuration problem.

Evidence

Findings and fixes

ID Severity Finding Fix
SEO-001 P1 Core Web Vitals unmeasured — no Lighthouse/PageSpeed tool available in this CLI-only pass. Run a live Lighthouse pass on https://mskazemi.com/idkmesh/. The static 26.7KB HTML payload makes a pass likely, but unconfirmed. Not applied — needs a live browser check.
SEO-002 P1 Actual Google/Bing index status unverified; the last recorded submission (project memory, ~2026-09-10) is 10 days stale at audit time. Check GSC Page Indexing and Bing Webmaster Tools for the property; re-submit the sitemap if the indexed count looks stale. Not applied — needs a live console check.
SEO-003 P2 Homepage JSON-LD is generic WebPage; no SoftwareSourceCode/SoftwareApplication type for the project itself. Add a SoftwareSourceCode block naming the repo, license, programmingLanguage: Python, and the same Person author/sameAs. Applied in this change.
SEO-004 P2 No FAQ or comparison page — the most-cited AI-answer-engine format — and this overlaps directly with a real onboarding gap already surfaced this session (issue #542: the documented support path leads to a near-empty Discussions Q&A). Once real questions accumulate in Discussions Q&A, turn the recurring ones into docs/FAQ.md, self-contained 80-200 token answers each. Not applied — needs real questions to answer first; premature to write one now.
SEO-005 P2 Off-site authority is the lowest-scoring dimension (65/100) and the real bottleneck: 1 star, 1 fork, no backlinks/Wikidata/YouTube yet. Not a configuration fix — an accumulation target (genuine community mentions, a YouTube walkthrough, eventual awesome-list inclusion, continuing the contributor-growth funnel already shipped this session). No manufactured signals, per the project’s own docs/community/CONTRIBUTOR_PSYCHOLOGY.md. Not applied — ongoing, not a single change.

A suspected finding that turned out not to be one

Earlier in this session, docs/sitemap.xml diffs appeared to bump lastmod for unrelated sibling pages inside a touched directory, which looked like a directory-level-timestamp bug. Checked directly against tools/build_sitemap.py and git log before writing it up: the script already derives lastmod per file from git log -1 --format=%cs -- <path> (see its own docstring, “not from the build clock”), and both apparent “bumps” were genuine content changes — docs/architecture/README.md and docs/planning/README.md were each actually edited in the commits that changed their lastmod. No fix needed; recorded here so the same false lead isn’t re-investigated later.

What was deliberately not touched

Follow-up

SEO-001 and SEO-002 need a live browser/console pass (Claude-in-Chrome or manual) and are not applied here. SEO-004 and SEO-005 are ongoing, not single changes.