はじめに — コンテンツ量だけではSEOは上がらない
ZERONOVA LABには100本以上の記事(Focus Blog 55本 + Journal 49本)、74個の無料ツール、6つのプロダクトがあります。コンテンツ量は十分なはず。でも「このサイトの著者は信頼できるか」をGoogleに伝える構造が弱いことに気づきました。
E-E-A-T(Experience, Expertise, Authoritativeness, Trustworthiness)は、Googleの検索品質評価ガイドラインの中核概念です。特に著者情報の充実は、YMYL以外のサイトでも検索順位に影響するとされています。
この記事では、PMとして設計し、Claude Codeで実装したE-E-A-T強化の24施策と、トップページSEO最適化の具体的な内容を開発日記から振り返ります。
/about ページの全面刷新 — 9セクション構成
E-E-A-T改善の中核は /about ページです。「このサイトの著者は誰か、何をしてきたか、なぜ信頼できるか」を伝えるページを、9セクション構成で全面刷新しました。
/about ページ全面刷新: プロフィール → 実績ハイライト → 開発フィロソフィー → プロダクト一覧 → 最新の活動 → スキル → 経歴 → 運営者情報 → リンクの9セクション構成
上半分で「今」、下半分で「なぜ信頼できるか」
ページの構成にはPMとして意図を持たせました。上半分で「今の ZERONOVA LAB」(プロダクト数、記事数、ツール数)を伝え、下半分で「なぜ信頼できるか」(経歴、実績、法人情報)を裏付ける構成です。
Googleはページ全体をクロールするためセクション順がSEO評価に影響することはありませんが、訪問者が求める情報を先に表示することで直帰率と滞在時間を改善する狙いがあります。
動的コンテンツの導入
実績ハイライトセクションでは、プロダクト数と記事数を動的に取得しています。
記事数は getAllPosts() と getAllJournalPosts() で実際のMarkdownファイル数をカウントし、ツール数は定数で管理しています。「100本以上の記事を公開中」と書くよりも、実数を表示した方が信頼性が高いと判断しました。
JSON-LDの精密化 — 167ページに波及する改善
E-E-A-T改善で最もインパクトが大きかったのは、getAuthorJsonLd() 関数の強化です。
getAuthorJsonLd() に jobTitle, knowsAbout, sameAs, image を追加。Focus Blog 55ページ + Journal 49ページ + ツール74ページ + プロダクト詳細 = 167ページ以上のJSON-LDが一括強化
この関数は AuthorCard コンポーネント内で使われており、全コンテンツページに配置されています。1つの関数を修正するだけで167ページ以上のJSON-LDが改善されるという設計が効きました。
PM-AI 対話: JSON-LDにどこまで情報を入れるか
JSON-LDの設計について、Claude Code と議論しました。
knowsAbout を追加したいが、どれくらい詳細にすべきか。あまり多すぎると逆効果にならないか。knowsAbout はGoogleが著者の専門分野を理解するのに使います。サイトのコンテンツに実際に対応する分野に絞るのが良いです。「プロダクトマネジメント」「新規事業開発」「Next.js」「SEO」など、記事やツールで実際にカバーしている分野を10-15項目程度が適切です。knowsAbout に入れると信頼性が下がる可能性があるということか。knowsAbout の整合性を評価する可能性があります。「機械学習」と書いてもサイトに機械学習の記事がなければ、シグナルとして弱くなります。この方針に基づき、実際にサイトで扱っている分野だけを knowsAbout に設定しました。
WebSite Schema に SearchAction を追加
トップページのJSON-LDに SearchAction を追加しました。
{
"@type": "WebSite",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://zeronova-lab.com/tools?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
これはGoogleの検索結果にサイトリンク検索ボックスを表示するためのマークアップです。ツール一覧ページの検索機能(?q= パラメータ)と連動させています。
トップページSEO最適化 — 7つの施策
2026年2月13日、トップページのSEO最適化をClaude Codeで実施しました。
トップページSEO最適化7施策: H1キーワード統合、meta description拡充、セマンティックHTML強化、見出し階層修正、ISR移行、OGP/Twitter Card description拡充
H1に日本語キーワードを統合
トップページのH1は英語の「FROM ZERO TO ONE, REPEATEDLY.」でした。見た目はクールですが、Google は日本語キーワードを認識できません。
そこで日本語のサブタイトル「AIと共に、0から1を何度でも。AIネイティブな実験開発スタジオ。」を <h1> の中に <span> で配置しました。視覚的には変わりませんが、HTMLの意味構造としてはH1に日本語キーワードが含まれるようになりました。
meta description の拡充
meta description を約50文字から約120文字に拡充しました。
変更前は「ZERONOVA LABはAIネイティブな実験開発スタジオです。」とだけ記載していましたが、プロダクト名(Wakulier、IdeaSpool、CancelNavi)やツール数(74種)を含めることで、検索結果のスニペットで具体的な情報が表示されるようにしました。
セマンティックHTMLの強化
プロダクトカードの外側を <div> から <article> に変更し、リリースタイムラインのコンテナを <ol> + <li> に変更しました。GoogleのクローラーはセマンティックなHTML要素から文書構造を理解するため、適切な要素の使用はSEOに寄与します。
ISRへの移行
トップページのデータ取得戦略を force-dynamic(リクエストごとにサーバーサイドレンダリング)から ISR(revalidate = 3600、1時間ごとに静的ページを再生成)に変更しました。
force-dynamic → ISR(revalidate = 3600): TTFB改善。GitHub APIのデータは1時間キャッシュで十分新鮮
TTFB(Time to First Byte)が改善され、Googleの Core Web Vitals にも好影響があります。GitHub API から取得するコントリビューションデータは1時間程度のキャッシュで十分新鮮です。
プライバシーポリシーページの新設
E-E-A-Tの「Trustworthiness(信頼性)」を高めるために、プライバシーポリシーページ(/privacy)を新設しました。
プライバシーポリシーページ新設: 運営者情報、Vercel Analytics、Google Fonts、IdeaSpool、PageSpeed API、Cookie方針を明記
個人開発サイトでもプライバシーポリシーは信頼性の重要な指標です。特に外部サービス(Vercel Analytics、Google Fonts等)の利用を透明に開示することで、ユーザーの信頼を得やすくなります。
著者情報の統一 — Single Source of Truth
167ページ以上で著者情報を表示しているため、情報の一貫性が重要です。
PM-AI 対話: 著者情報の管理方法
getAuthorJsonLd() 関数を Single Source of Truth にする設計にしましょう。AuthorCard は人が読む用のUI、JSON-LD はGoogleが読む用の構造化データですが、データソースは同じ関数から取得するようにすれば不整合を防げます。この設計により、職種を「PM」から「PdM」に変更した際も、1箇所の修正で全ページに反映されました。
まとめ — 個人開発サイトのE-E-A-T改善チェックリスト
24の施策を通じて得た知見を、個人開発者向けのチェックリストとしてまとめます。
最優先(やっていないなら今すぐ):
-
/aboutページに経歴・実績・運営者情報を明記 - 全ページに
AuthorCard+ JSON-LD(Person)を配置 -
sameAsにSNS・GitHub・noteのURLを設定
推奨(余裕があれば):
- プライバシーポリシーページの作成
- WebSite Schema に SearchAction を追加
-
knowsAboutにサイトコンテンツと整合するスキルを設定 - 記事数・プロダクト数の動的取得
SEO基本(トップページ):
- H1にターゲットキーワードを含める
- meta description を100-120文字で具体的に記述
- セマンティックHTML(article、ol/li、適切なh2/h3)を使用
- ISR で TTFB を改善
E-E-A-Tの改善は一度やって終わりではなく、コンテンツの増加に合わせて継続的に更新していく必要があります。しかし、getAuthorJsonLd() のような共通関数で設計しておけば、1箇所の修正で全ページに反映される仕組みを作れます。
関連記事:
- Next.js App Router で SEO 最適化する完全ガイド — SEO実装の技術詳細
- Next.js ブログに構造化データ(JSON-LD)を実装する方法 — JSON-LD実装パターン
- 個人開発でもやるべきセキュリティ監査チェックリスト — セキュリティ改善の観点
Zeronova(ゼロノバ)
Product Manager / AI-Native Builder
Web/IT業界19年以上・20以上のWebサービスを担当したPdM。東証プライム上場企業の子会社代表として事業経営を経験。現在はAIを駆使して企画から実装まで完結させる個人開発を実践中。