01 / DUPLICATE

同じページが、何個のURLに化けていたか

/about/ /service/ /shopify/ /ecforce/ /company/ /recruit/ /news/ /blog/ の8ページは、すべて/?page=xxxへ302で転送されていた。転送先はトップページと完全に同一のHTMLで、titleは9ページとも「ウェブ・コロ — AIを、売上につながる実装へ。」、canonicalは1つも無かった。トップページを含めると、9つのURLが同一のコンテンツを返していたことになる。8ページを静的化し、固有のtitle・description・canonicalを持たせて直した。

  • 8ページが/?page=xxxへ302で転送
  • 9ページとも同じtitleでcanonical無し
  • 8ページの静的化と固有メタの設定
02 / LINKS

サービスのカードから、クローラーは辿れていたか

サービス一覧のカードはrole="link"とクリックハンドラだけで動いていて、<a href>が1つも無かった。見た目には普通のカードだが、クローラーにとっては実質的に存在しないリンクだった。実際に/shopify/への内部リンクは1本、/ecforce/は0本だった。本物の<a>タグに置き換え、両ページとも内部リンクを持つ状態にした。

  • role="link"とクリックハンドラのみで<a href>無し
  • /shopify/への内部リンクは実測1本、/ecforce/は0本
  • 本物の<a>タグへの置き換え
03 / ORPHAN

記事15本は、どこからリンクされていたか

記事はXMLサイトマップには載っていたが、静的なページからのリンクは1本も無かった。サイトマップに載っているだけでは、クローラーがそこへ辿り着く経路にはならない。/news/に一覧を実体として置き、全記事への内部リンクを持たせた。

  • サイトマップ掲載と内部リンクは別物
  • 記事への内部リンクは実測0本
  • /news/一覧の実体化による接続
04 / LANDING

申し込みページは、実在していたか

/?page=diagnosisと/?page=diagnosis-detailは、トップページと完全に同一バイトだった(169,203バイト・diff 0行)。フッターの「5社限定AIO診断」も、記事のCTAも、実体の無いページに着地していた。WordPress時代のLP(/aio/ /lp/aio/ /diagnosis/)はすべて404だった。/diagnosis/を実体として作り、旧URLから301で繋いだ。

  • /?page=diagnosisと/?page=diagnosis-detailはトップと同一バイト
  • 旧LP(/aio/ /lp/aio/ /diagnosis/)はすべて404
  • /diagnosis/の新設と旧URLからの301
05 / THIN

サービスページの本文は、どれだけの厚みだったか

/shopify/ /ecforce/の本文は、タグ除去後で約420字・408字しかなかった。対応範囲も、含まれないものも、進め方も書かれていない量だった。1,798字・1,681字まで増やし、対応範囲・含まれないもの・進め方・向き不向き・FAQの5項目を揃えた。

  • /shopify/本文は420字から1,798字へ
  • /ecforce/本文は408字から1,681字へ
  • 対応範囲・含まれないもの・進め方・向き不向き・FAQの追加
06 / MACHINE

機械は、このサイトを読み取れる状態だったか

サービスの提供条件や想定問答を、機械が読み取れる形では持っていなかった。Service(AIO診断はprice=0・LimitedAvailability)とFAQPageを実装し、llms.txtを新設、robots.txtにAIクローラーを明示的に許可した。ここで挙げた6つの確認は、どの会社のサイトでも同じ手順で行える。同じ確認はAIO診断で提供している。

  • Service(price=0・LimitedAvailability)とFAQPageの実装
  • llms.txtの新設
  • robots.txtでのAIクローラー明示許可