@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/case-study-douzucarry-site-renewal/#article>
    schema:about <https://comcomponent.com/knowledge/site-renewal/>, <https://comcomponent.com/knowledge/redirect-301/> ;
    schema:mentions <https://comcomponent.com/knowledge/url-inventory/>, <https://comcomponent.com/knowledge/url-mapping-table/>, <https://comcomponent.com/knowledge/redirect-chain/>, <https://comcomponent.com/knowledge/meta-refresh-redirect/>, <https://comcomponent.com/knowledge/content-retention-checklist/>, <https://comcomponent.com/knowledge/inquiry-drop-risk/>, <https://comcomponent.com/knowledge/local-seo-area-page/>, <https://comcomponent.com/knowledge/contact-channel-consolidation/>, <https://comcomponent.com/knowledge/domain-portfolio-cleanup/>, <https://comcomponent.com/knowledge/dns-expiry/>, <https://comcomponent.com/knowledge/backlink-value-loss/>, <https://comcomponent.com/knowledge/cloudflare-pages/>, <https://comcomponent.com/knowledge/redirects-file/>, <https://comcomponent.com/knowledge/cloudflare-redirect-rules/>, <https://comcomponent.com/knowledge/pre-launch-verification/>, <https://comcomponent.com/knowledge/curl-head-check/>, <https://comcomponent.com/knowledge/search-console/> .

<https://comcomponent.com/knowledge/site-renewal/> a skos:Concept ;
    skos:prefLabel "サイトリニューアル"@ja ;
    skos:definition "既存サイトが積み上げてきた検索評価や問い合わせ導線を維持しながら、デザインや実装を刷新するプロジェクト。既存サイトの調査、URL構造やSEO評価の引き継ぎ、既存原稿・データの移行を伴う。"@ja ;
    skos:altLabel "ホームページリニューアル"@ja ;
    skos:altLabel "Site Renewal" .

<https://comcomponent.com/knowledge/redirect-301/> a skos:Concept ;
    skos:prefLabel "301リダイレクト"@ja ;
    skos:definition "HTTPステータスコード301を返して恒久的な移転であることを検索エンジンとブラウザーに伝える転送方式。"@ja ;
    skos:altLabel "恒久的な転送"@ja ;
    skos:altLabel "301 Moved Permanently" ;
    ks:implements <https://comcomponent.com/knowledge/url-mapping-table/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/curl-head-check/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/search-console/> .

<https://comcomponent.com/knowledge/url-inventory/> a skos:Concept ;
    skos:prefLabel "URL棚卸し表"@ja ;
    skos:definition "旧サイトの全URLを固定ページ・エリアページ・記事・非ページファイルの単位で洗い出し、現在のステータスや判定を記録する表。"@ja ;
    skos:altLabel "URLインベントリ"@ja ;
    skos:altLabel "URL Inventory" ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/url-mapping-table/> .

<https://comcomponent.com/knowledge/url-mapping-table/> a skos:Concept ;
    skos:prefLabel "URL対応表(リダイレクトマッピング)"@ja ;
    skos:definition "URL棚卸し表を基に、旧URLごとにkeep(維持)かredirect(転送)かを判定し、対応先URLを1本ずつ確定させた表。"@ja ;
    skos:altLabel "URLマッピング"@ja ;
    skos:altLabel "URL Mapping Table" ;
    skos:broader <https://comcomponent.com/knowledge/url-inventory/> .

<https://comcomponent.com/knowledge/redirects-file/> a skos:Concept ;
    skos:prefLabel "_redirectsファイル"@ja ;
    skos:definition "Cloudflare Pagesでビルド成果物のルートに置くと、記載した内容に従って同一ホスト内のリダイレクトを返す設定ファイル。"@ja ;
    skos:altLabel "_redirects" ;
    ks:implements <https://comcomponent.com/knowledge/redirect-301/> .

<https://comcomponent.com/knowledge/cloudflare-redirect-rules/> a skos:Concept ;
    skos:prefLabel "Cloudflare Redirect Rules"@ja ;
    skos:definition "Cloudflareダッシュボードで、ホスト名などの条件に基づいて動的にリダイレクトを設定できる機能。"@ja ;
    skos:altLabel "Redirect Rules" ;
    skos:altLabel "Bulk Redirects" ;
    ks:implements <https://comcomponent.com/knowledge/redirect-301/> .

<https://comcomponent.com/knowledge/cloudflare-pages/> a skos:Concept ;
    skos:prefLabel "Cloudflare Pages"@ja ;
    skos:definition "静的サイト生成の成果物をホスティングするCloudflareのサービス。"@ja ;
    skos:altLabel "Cloudflare Pages" ;
    ks:uses <https://comcomponent.com/knowledge/redirects-file/> .

<https://comcomponent.com/knowledge/redirect-chain/> a skos:Concept ;
    skos:prefLabel "リダイレクトチェーン"@ja ;
    skos:definition "1つのURLへ到達するまでに複数回の転送が連なる状態。評価の引き継ぎや到達性を損ないやすい。"@ja ;
    skos:altLabel "多段リダイレクト"@ja ;
    skos:altLabel "Redirect Chain" .

<https://comcomponent.com/knowledge/meta-refresh-redirect/> a skos:Concept ;
    skos:prefLabel "meta refreshによる転送"@ja ;
    skos:definition "HTMLのmeta要素で自動的にページを転送する手法。HTTPのステータスコードとしては200のまま返る。"@ja ;
    skos:altLabel "meta http-equiv=refresh" ;
    skos:altLabel "Meta Refresh" ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/redirect-301/> .

<https://comcomponent.com/knowledge/content-retention-checklist/> a skos:Concept ;
    skos:prefLabel "コンテンツ保持チェックリスト"@ja ;
    skos:definition "リニューアルで旧サイトの必須情報(料金・営業時間・連絡先・強みなど)が新サイトに欠けていないかを、主要ページごとに新旧照合するためのチェックリスト。"@ja ;
    skos:altLabel "情報引き継ぎチェックリスト"@ja ;
    skos:altLabel "Content Retention Checklist" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/site-renewal/> ;
    ks:mitigates <https://comcomponent.com/knowledge/inquiry-drop-risk/> .

<https://comcomponent.com/knowledge/inquiry-drop-risk/> a skos:Concept ;
    skos:prefLabel "問い合わせ減少事故"@ja ;
    skos:definition "デザイン刷新の過程で料金・営業時間・連絡先など問い合わせ判断に直結する情報が抜け落ち、問い合わせが減ってしまう事故。"@ja ;
    skos:altLabel "情報欠落による問い合わせ減少"@ja .

<https://comcomponent.com/knowledge/contact-channel-consolidation/> a skos:Concept ;
    skos:prefLabel "問い合わせ導線の集約"@ja ;
    skos:definition "電話・メール・フォームなど複数に分散した問い合わせ手段のうち、実際に機能しているものだけを洗い出して1つの導線へまとめること。"@ja ;
    skos:altLabel "問い合わせ経路の統合"@ja ;
    skos:altLabel "Contact Channel Consolidation" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/site-renewal/> .

<https://comcomponent.com/knowledge/domain-portfolio-cleanup/> a skos:Concept ;
    skos:prefLabel "旧ドメインの整理"@ja ;
    skos:definition "サービスLP用などに分散した旧ドメインについて、契約状況とDNSの生存を確認し、301設定や統合を行う取り組み。"@ja ;
    skos:altLabel "ドメインポートフォリオの整理"@ja ;
    skos:altLabel "Domain Cleanup" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/site-renewal/> ;
    ks:prevents <https://comcomponent.com/knowledge/backlink-value-loss/> .

<https://comcomponent.com/knowledge/backlink-value-loss/> a skos:Concept ;
    skos:prefLabel "被リンク評価・指名検索流入の喪失"@ja ;
    skos:definition "ドメインに蓄積されていた被リンク評価や指名検索による流入を、ドメインの失効などにより突然失うこと。"@ja ;
    skos:altLabel "被リンク評価の喪失"@ja ;
    skos:altLabel "Backlink Value Loss" .

<https://comcomponent.com/knowledge/dns-expiry/> a skos:Concept ;
    skos:prefLabel "DNSの失効"@ja ;
    skos:definition "ドメインの契約・更新が途切れるなどしてDNSレコードが機能しなくなり、名前解決ができなくなる状態。"@ja ;
    skos:altLabel "ドメイン失効"@ja ;
    skos:altLabel "DNS Expiry" ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/redirect-301/> .

<https://comcomponent.com/knowledge/local-seo-area-page/> a skos:Concept ;
    skos:prefLabel "地域名対応エリアページ"@ja ;
    skos:definition "「地名+サービス名」のような地域名を含む検索クエリの受け皿として、地域ごとに個別のURLで用意するページ。"@ja ;
    skos:altLabel "エリアページ"@ja ;
    skos:altLabel "Local Landing Page" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/site-renewal/> .

<https://comcomponent.com/knowledge/pre-launch-verification/> a skos:Concept ;
    skos:prefLabel "公開前検証"@ja ;
    skos:definition "新サイトの公開前に、コンテンツの保持状況やリダイレクトの実測結果、公開に必要なファイルの状態を確認する作業。"@ja ;
    skos:altLabel "リニューアル公開前チェック"@ja ;
    skos:altLabel "Pre-Launch Verification" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/site-renewal/> ;
    ks:uses <https://comcomponent.com/knowledge/curl-head-check/> ;
    ks:uses <https://comcomponent.com/knowledge/content-retention-checklist/> .

<https://comcomponent.com/knowledge/curl-head-check/> a skos:Concept ;
    skos:prefLabel "curl -Iによる実測確認"@ja ;
    skos:definition "curlコマンドの-Iオプションでレスポンスヘッダーだけを取得し、リダイレクトを自動で追わずにステータスコードとLocationヘッダーを確認する方法。"@ja ;
    skos:altLabel "curl -I" ;
    skos:altLabel "HEADリクエスト確認"@ja .

<https://comcomponent.com/knowledge/search-console/> a skos:Concept ;
    skos:prefLabel "Google Search Console"@ja ;
    skos:definition "自社サイトが検索結果に何回表示され、何回クリックされたかを確認できるGoogleの無料ツール。"@ja ;
    skos:altLabel "サーチコンソール"@ja ;
    skos:altLabel "Search Console" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/url-inventory/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/site-renewal/> ;
    schema:description "旧サイトに検索流入や被リンクがある場合、デザインの検討より先にURL棚卸し表を作ることが本記事の推奨である"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/url-inventory/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/url-mapping-table/> ;
    schema:description "旧URLを種別・ステータス・判定の列で洗い出した棚卸し表ができて初めて、新URLへの対応を1本ずつ判定する対応表を作れる"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/redirect-301/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/url-mapping-table/> ;
    schema:description "対応表でredirectと判定された旧URLは、301リダイレクトとして実装される"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/redirects-file/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/redirect-301/> ;
    schema:description "同一ホスト内でパスだけが変わるリダイレクトは、Cloudflare Pagesの_redirectsファイルに301を明示して実装する"@ja ;
    ks:evidence <https://developers.cloudflare.com/pages/configuration/redirects/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cloudflare-redirect-rules/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/redirect-301/> ;
    schema:description "ホスト名そのものが変わるリダイレクトは、Cloudflareダッシュボードの Redirect Rules で301として実装する"@ja ;
    ks:evidence <https://developers.cloudflare.com/rules/url-forwarding/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cloudflare-pages/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/redirects-file/> ;
    schema:description "Cloudflare Pagesは、ビルド成果物のルートに置かれた_redirectsファイルの内容に従ってリダイレクトを返す"@ja ;
    ks:evidence <https://developers.cloudflare.com/pages/configuration/redirects/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/redirect-301/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/redirect-chain/> ;
    schema:description "リダイレクトを1ホップで完結させる設計ルールを徹底することで、転送が連なるリダイレクトチェーンの発生を防ぐ"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/meta-refresh-redirect/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/redirect-301/> ;
    schema:description "meta refreshによる転送はHTTPステータスコードとしては200のまま返るため、301として扱ってほしい恒久的な移転の代替には用いない。併用できないわけではなく、恒久的な移転の手段として不十分だという意味である"@ja ;
    ks:evidence <https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/content-retention-checklist/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/site-renewal/> ;
    schema:description "主要ページごとに旧サイトの必須情報を書き出したチェックリストを作り、公開前に新旧ページを1つずつ照合することが本記事の推奨である"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/content-retention-checklist/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/inquiry-drop-risk/> ;
    schema:description "新旧ページを1つずつ照合するチェックリストを使うことで、判断材料となる情報の欠落による問い合わせ減少事故のリスクを軽減する"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/site-renewal/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/inquiry-drop-risk/> ;
    schema:description "デザインを新しくする過程で、料金・営業時間・連絡先といった問い合わせ判断に直結する情報がいつの間にか抜け落ちることがある"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/contact-channel-consolidation/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/site-renewal/> ;
    schema:description "実際に機能している問い合わせ導線だけを洗い出し、使われていない残置スクリプトなどは生きている導線へ301で集約することが本記事の推奨である"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/domain-portfolio-cleanup/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/site-renewal/> ;
    schema:description "サービスLP用の別ドメインが分散している場合、契約状況とDNSの生存を確認したうえでリニューアル時に整理することが本記事の推奨である"@ja ;
    ks:evidence <https://www.icann.org/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/domain-portfolio-cleanup/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/backlink-value-loss/> ;
    schema:description "旧ドメインが復旧できるうちに301を設定して整理しておくことで、蓄積されていた被リンク評価や指名検索流入の突然の喪失を防ぐ"@ja ;
    ks:evidence <https://developers.google.com/search/docs/fundamentals/seo-starter-guide> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dns-expiry/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/redirect-301/> ;
    schema:description "DNSが失効して名前解決できなくなったドメインと、そのドメインからの301リダイレクトは両立しない。旧ドメインを維持し続けることがリダイレクトの前提になる"@ja ;
    ks:evidence <https://www.icann.org/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dns-expiry/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/backlink-value-loss/> ;
    schema:description "旧ドメインを維持・更新せずDNSが失効した状態で放置すると、蓄積されていた被リンク評価や指名検索の流入をある日突然失う可能性がある"@ja ;
    ks:evidence <https://developers.google.com/search/docs/fundamentals/seo-starter-guide> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/local-seo-area-page/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/site-renewal/> ;
    schema:description "地名を含む検索クエリの受け皿として、エリアページのURLをリニューアル後も変更せず維持することが本記事の推奨である"@ja ;
    ks:evidence <https://developers.google.com/search/docs/appearance/structured-data/local-business> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/pre-launch-verification/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/site-renewal/> ;
    schema:description "コンテンツ保持チェックリストとの照合や301リダイレクトの実測確認を公開前に行うことが本記事の推奨である"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/pre-launch-verification/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/curl-head-check/> ;
    schema:description "公開前検証では、ブラウザではなくcurl -Iを使って301リダイレクトのステータスコードと転送先を実測で確認する"@ja ;
    ks:evidence <https://curl.se/docs/manpage.html> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/pre-launch-verification/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/content-retention-checklist/> ;
    schema:description "公開前検証では、コンテンツ保持チェックリストとの新旧ページ照合を行う"@ja ;
    ks:evidence <https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/redirect-301/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/curl-head-check/> ;
    schema:description "301リダイレクトが想定通り機能しているかは、リダイレクトを自動で追わないcurl -Iで確認できる"@ja ;
    ks:evidence <https://curl.se/docs/manpage.html> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/redirect-301/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/search-console/> ;
    schema:description "301リダイレクトが検索エンジン側で認識されたかは、公開後にSearch Consoleのカバレッジレポートで数週間かけて確認できる"@ja ;
    ks:evidence <https://support.google.com/webmasters> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
