このチェックリストの使い方
RedSkill.org のページはすべて静的な HTML で、公開前に検証を通します。ここに挙げているのは、このサイト自身の回帰テストが実行しているものと同じ確認項目です。汎用的なリンク集ではなく、それぞれの確認が何のために存在するのかを添えてあります。自動化できない項目については、手作業の手順をそのまま書いています。
順番には意味があります。まずクローラーの到達性と構造化データ、次に本文の分量とアクセシビリティ、最後にパフォーマンスです。誰にも拾われない美しいページの価値はゼロで、性能は最も測りやすく最も過剰投資しやすい項目だからです。
検索とインデックス
- Google Search Console: このサイトはドメインプロパティとして確認しているため、
redskill.org全体の状況がまとめて報告されます。公開後は/sitemap.xmlを再送信し、変更したページは URL 検査にかけます。 - Bing Webmaster Tools: サイト直下の
BingSiteAuth.xmlで確認します。Bing とその提携先の比重が大きい市場からの流入があるため、この一手間には意味があります。
構造化データとリッチリザルト
- Google Rich Results Test: 各ページが出力する JSON-LD のグラフを検証します。全ページに
OrganizationとWebSiteがあり、ガイドはArticle、カテゴリはCollectionPageとBreadcrumbList、ハブはItemList、トップページはデータセットを示すDatasetを追加で持ちます。 - Schema Markup Validator: リッチリザルトの対象にならないまでも問題のある構造を拾います。たとえば
ItemListの全項目が同じ URL を指している、といったケースです。
クローラーの到達性
広告と検索のクローラーがこのサイトを読めるかどうかは 2 つのファイルで決まり、どちらもデプロイ前に自動で検証されます。
/robots.txtはすべてのユーザーエージェントを許可し、信頼ページを遮断してはいけません。noindexを持つページを遮断すると、その指示ごと隠れてしまい、結果として裸の URL がインデックスに残り得ます。どちらか一方だけを選ぶより悪い結果です。/ads.txtはこのドメインの AdSense 販売者を承認します。1 行だけのファイルで、site.config.jsonのパブリッシャー ID と食い違えばビルドが失敗します。
パフォーマンスとアクセシビリティ
- PageSpeed Insights: モバイルの Core Web Vitals を確認します。よくある退行は、サイズの見積もりなしに画像やフォントウェイトを足してしまうことなので、ラボのスコアだけでなく実測データを見ます。
- WCAG 2.2: 全体の印象ではなく、具体的な達成基準に対して確認します。ブロックスキップ (2.4.1) は全ページのスキップリンクで、フォーカスの可視化 (2.4.7) はリンクと操作要素のフォーカスリングで、コントラスト比 (1.4.3) はトークン単位の検証で 4.5:1 を下回ればビルドを失敗させることで、ターゲットサイズ (2.5.8) は操作要素を 24×24 CSS ピクセル以上(モバイル専用の要素は 44 以上)に保つことで、色の使用 (1.4.1) はリスクのラベルに必ず文字を添えることで満たしています。
ローカルでの回帰確認
公開前にリポジトリのルートで次の 3 つを実行します。意図的に高速で、外部通信も行いません。
python3 scripts/build-content.py --checkは、生成ページと sitemap が最新かを確認します。生成物への手作業の変更が黙って残ることを防ぎます。python3 scripts/verify-seo.pyは、メタ情報の文字数、canonical、hreflang の対応、JSON-LD の必須項目、静的アセットのキャッシュ識別子、robots と ads.txt の内容、CSS のカラートークン、コントラスト比、そしてインデックス対象ページの最小本文量を検証します。python3 -m unittest discover -s scripts -p "test_*.py"は、共通のヘッダーとフッター、ページの骨格、検証の境界が互いにずれないようにする契約テストです。
主張していないこと
これらの確認がすべて通っても、ページの構造が整っていて一貫しているという意味にすぎません。内容が正しいことや、ここで扱っている第三者のスキルが安全で、保守されていて、今も入手できることを意味しません。それは自動の確認では答えられない問いであり、このサイトがすべての行を「検証済みの事実」ではなく「確認すべき手がかり」として提示している理由です。