SEO Strategy — Organic Acquisition (Brand-5 Pillar v8)¶
Status: 2026-04-25, owner: Bookyou株式会社 ([email protected]), no paid ads, no sales calls — 100% organic.
Pillars¶
AutonoMath's organic acquisition rests on five long-tail content pillars, all served as static HTML from Cloudflare Pages.
- Per-program pages (
/programs/{slug}.html) — ~6,658 indexable, generated byscripts/generate_program_pages.py. Long-tail target:<制度名> 申請,<制度名> 対象,<制度名> 上限. - Per-prefecture landing pages (
/prefectures/{slug}.html) — 47 pages + 1 index, generated byscripts/generate_prefecture_pages.py. Long-tail target:<都道府県名> 補助金,<都道府県名> 融資,<都道府県名> 行政処分,<都道府県名> 採択事例. - Docs / API reference (
/docs/) — mkdocs Material, MCP tools and REST endpoints. Long-tail target:MCP 補助金 API,日本 制度 API,補助金 検索 API. - Blog / press (
/blog/,/press/) — manually curated. Long-tail target: thought leadership. - llms-full.txt + llms.txt — full corpus exposed at root for LLM ingestion. Long-tail target: GEO (Generative Engine Optimization).
Per-prefecture page composition¶
Each /prefectures/{slug}.html includes:
- h1:
<都道府県名> 補助金・融資・税制・行政処分 一覧 - TL;DR section with the four counts (programs, cases, loans, enforcements)
- Top 20 programs filtered by
prefecture = <JA name>, ordered tier S → A → B → C, then byamount_max_man_yen DESC. Each links to/programs/{slug}.html(cross-pillar internal linking). - Top 10 採択事例 filtered by
prefecture, ordered byconfidence DESC, publication_date DESC. Source URL on each. - Top 5 政策金融融資 —
loan_programsis nationwide (no prefecture column). Same global top-5 (JFC etc.) appears on every prefecture page; copy contextualises this. The 3-axis breakdown (担保 / 個人保証人 / 第三者保証人) is preserved. - Top 5 行政処分 filtered by
prefecture, ordered bydisclosed_date DESC. - API / MCP code block with
prefectureparameter pre-filled. - Cross-link to
/prefectures/for siblings.
JSON-LD @graph¶
Organization(Bookyou 株式会社, T8010001213708)BreadcrumbList: ホーム → 都道府県別 →<pref>PlacewithadditionalType: AdministrativeAreaandname: <pref_ja>ItemListof the 20 programs withposition,url,name
Visible-text length¶
Mean ~6,300 visible characters per prefecture page (target: 1,500-3,000 minimum). All 47 pages exceed the floor; the largest (Hokkaido / Tokyo / Osaka) include long-tail enforcement and case-study sections without padding.
Slugs¶
Canonical slugs are stored in scripts/_pref_slugs.py as (slug, JA name) pairs in ISO 3166-2:JP order. Examples: hokkaido / tokyo / kyoto / osaka / okinawa. Slug stability matters — these URLs go into Google's index; do not rename them once published.
Sitemap integration with C4¶
scripts/generate_prefecture_pages.py writes site/sitemap-prefectures.xml (47 + 1 = 48 URLs). It does NOT edit site/sitemap.xml, site/sitemap-programs.xml, or site/sitemap-index.xml (C4 owns those).
To make the prefecture sitemap discoverable from the master index, C4 should add this single line to scripts/sitemap_gen.py:
KNOWN_BASENAMES = (
"sitemap.xml",
"sitemap-programs.xml",
"sitemap-prefectures.xml", # ← add this; created by generate_prefecture_pages.py
"sitemap-structured.xml",
)
Re-running scripts/sitemap_gen.py then auto-emits <sitemap><loc>https://autonomath.ai/sitemap-prefectures.xml</loc>...</sitemap> into sitemap-index.xml. No conflicts.
Aggregator policy¶
All 47 pages exclude noukaweb / hojyokin-portal / biz.stayway from source_url. Pages also include a footer disclaimer naming the banned aggregators explicitly so users know what was filtered. This is non-negotiable per the project's 詐欺リスク回避 stance — every shown row cites a primary source (中央省庁 / 都道府県 / 市区町村 / 日本政策金融公庫 / 商工中金).
Run cadence¶
# After data refresh (programs / case_studies / enforcement_cases):
.venv/bin/python scripts/generate_prefecture_pages.py
# Then C4's:
.venv/bin/python scripts/sitemap_gen.py
The prefecture generator is idempotent — re-running with identical DB content produces identical HTML and skips file writes. Suitable for nightly cron.
Known gaps (not blockers for launch)¶
- Loan programs lack prefecture binding —
loan_programs.prefecturedoesn't exist; the same 5 nationwide JFC products appear on all 47 pages. Acceptable because every applicant in every prefecture can use them. If we ever ingest prefecture-specific 制度融資 (信用保証協会 etc.), this should be revisited. - Region grouping is fixed in
_pref_slugs.REGIONS— used by the index page only; not a CMS-editable field. Edit the Python tuple if 区分 ever changes (it won't). - No municipality drill-down (e.g.
/prefectures/tokyo/shibuya.html) — explicit non-goal for v1; would balloon page count to ~1,700 with thin content. Revisit if data depth supports it.
Quick verification¶
# Dry-run a single prefecture to inspect content shape:
.venv/bin/python scripts/generate_prefecture_pages.py --slug tokyo --dry-run
# Generate all 47 + index + sitemap-prefectures.xml:
.venv/bin/python scripts/generate_prefecture_pages.py
# Visual spot-check (Cloudflare Pages serves these as-is once deployed):
open site/prefectures/tokyo.html
open site/prefectures/index.html