仕様のURL:
https://tecn.apice-tec.co.jp/tecn%e5%86%85%e9%83%a8%e3%83%aa%e3%83%b3%e3%82%af%e6%8a%bd%e5%87%bagas-%e4%bb%95%e6%a7%98%e6%9b%b8-v0-1/
1. 目的
TECN記事台帳に登録されている各記事URLをもとに、公開HTMLを取得し、記事内に存在する内部リンクを抽出する。
取得した内部リンクは、専用シートに一覧化し、以下を把握できるようにする。
- どの記事からどの記事へリンクしているか
- どの見出し配下からリンクしているか
- アンカーテキストは何か
- ピラー記事、クラスター記事、無料DL記事への導線が足りているか
- 孤立記事や被リンク不足の記事を発見できるか
2. GASの位置づけ
本GASは、記事台帳に付属するGASではなく、独立GASとして作成する。
対象スプレッドシートIDをGAS内またはスクリプトプロパティに定義し、TECN記事台帳スプレッドシートを外部参照する。
3. 対象スプレッドシート
対象:TECN記事台帳
対象シート名:記事台帳
記事台帳の主な項目:
- 記事ID
- 記事タイトル
- URL
- ページパス
- スラッグ
- 主カテゴリ
- 従カテゴリ
- 公開日
- 更新日
- 状態
- 最終確認日
- 備考
- 従カテゴリー2
- 最新PV
4. 抽出対象記事
記事台帳シートのうち、以下の条件を満たす行を対象とする。
- URLが空白ではない
- 状態が Publish
- URLが
https://tecn.apice-tec.co.jp/で始まる - 取得対象件数は初期仕様では最大300件
将来的には、主カテゴリ単位で以下のように絞り込み可能にする。
- 在庫管理のみ
- ダイソーのみ
- LDAC-blueのみ
- WORDPRESSのみ
- 全記事
5. HTML取得方法
各記事URLに対して、GASの UrlFetchApp.fetch() を使用して公開HTMLを取得する。
取得するのはWordPress編集画面のブロックHTMLではなく、実際に公開ページとして出力されているHTMLとする。
これにより、以下のリンクも取得対象に含める。
- 本文内リンク
- カスタムHTMLリンク
- ブログパーツ内リンク
- 関連記事リンク
- ショートコード展開後のリンク
- テーマ側で出力されたリンク
6. 抽出対象リンク
HTML内の <a href=""> を抽出する。
ただし、初期仕様では以下の内部リンクのみを対象とする。
https://tecn.apice-tec.co.jp/で始まるリンク/xxxのような相対パスで、TECN内部リンクと判断できるリンク
除外候補:
- 外部サイト
#だけのページ内リンクmailto:tel:- 画像ファイル
- CSS / JS / feed
- 管理画面URL
- カテゴリ一覧URL
- タグ一覧URL
- プライバシーポリシー
- お問い合わせページ
除外条件は初期実装後に調整する。
7. 見出し判定
HTMLを上から順番に読み、直前に出現したH2またはH3を現在見出しとして保持する。
リンクが出現した時点で、直前のH2/H3をリンク元見出しとして記録する。
記録する見出し情報:
- 見出しレベル
- 見出しテキスト
例:
H2「SKUとJANの違いとは?」のあとに内部リンクが出た場合、そのリンクはこのH2配下のリンクとして記録する。
8. 出力シート
新規シート名:内部リンク抽出
出力項目:
- 取得日時
- FROM記事ID
- FROMタイトル
- FROM URL
- FROMページパス
- FROM主カテゴリ
- FROM従カテゴリ
- FROM従カテゴリー2
- FROM最新PV
- 見出しレベル
- 見出しテキスト
- TO URL
- TOページパス
- TO記事ID
- TOタイトル
- TO主カテゴリ
- TO従カテゴリ
- TO従カテゴリー2
- アンカーテキスト
- リンク種別
- nofollow
- target
- HTTPステータス
- 備考
9. TO記事情報の照合
抽出したTO URLからページパスを作成し、記事台帳のページパスと照合する。
一致した場合は、TO記事情報として以下を補完する。
- TO記事ID
- TOタイトル
- TO主カテゴリ
- TO従カテゴリ
- TO従カテゴリー2
一致しない場合は、TO記事IDなどは空白にし、備考に「記事台帳未登録」と記録する。
10. リンク種別
初期仕様では自動判定は簡易的に行う。
候補:
- 本文リンク
- ブログパーツ候補
- 関連記事候補
- メニュー・フッター候補
- 不明
ただし、初期実装では「不明」でもよい。
まずは内部リンク全体を取得することを優先する。
11. 実行単位
初期仕様では、1回の実行で最大300記事まで処理する。
将来的には以下を検討する。
- 前回処理済み行の続きから再開
- 主カテゴリ指定実行
- URL指定実行
- エラー行のみ再実行
- 取得済みHTMLキャッシュ
12. エラー処理
HTML取得時にエラーが発生した場合も、処理全体は停止しない。
記録する内容:
- HTTP 404
- HTTP 403
- fetch失敗
- タイムアウト
- HTML取得不可
- リンクなし
エラーは内部リンク抽出シートの備考欄に記録する。
13. 初期実装の優先順位
第1段階:
- 記事台帳を読む
- Publish記事のURLを取得
- 公開HTMLを取得
- 内部リンクを抽出
- 見出しレベル・見出しテキストを記録
- 内部リンク抽出シートに出力
第2段階:
- TO URLを記事台帳と照合
- TO記事ID、TOタイトル、TOカテゴリを補完
第3段階:
- 被リンク数集計
- 発リンク数集計
- ピラーへのリンク数集計
- 無料DLページへのリンク数集計
- 孤立記事一覧作成
14. 最終目的
TECN全体の内部リンク構造を可視化し、以下の改善に活用する。
- TECNトップから各主カテゴリへの導線整理
- 在庫管理ピラーへの内部リンク強化
- SKU、バーコード、ピッキング、使用期限、棚番、在庫分析などのサブクラスター強化
- STOCKmini、STEPmini、アピスmini無料DLへの導線強化
- 2026年12月時点で月10〜30件の無料DL獲得を目指す
tecn内部リンク抽出 シート:カラム定義 確定版
| 列 | 項目名 | 内容 |
|---|---|---|
| A | 取得日時 | HTMLを取得した日時 |
| B | FROM記事ID | リンク元の記事ID |
| C | FROMタイトル | リンク元の記事タイトル |
| D | FROM URL | リンク元URL |
| E | FROMページパス | リンク元ページパス |
| F | FROM主カテゴリ | リンク元の主カテゴリ |
| G | FROM従カテゴリ | リンク元の従カテゴリ |
| H | FROM従カテゴリー2 | リンク元の従カテゴリー2 |
| I | FROM最新PV | リンク元記事の最新PV |
| J | 見出しレベル | H2 / H3 / 見出し外 |
| K | 見出しテキスト | リンクが出現した直前の見出し |
| L | TO URL | リンク先URL |
| M | TOページパス | リンク先ページパス |
| N | TO記事ID | 記事台帳と照合したリンク先記事ID |
| O | TOタイトル | 記事台帳と照合したリンク先タイトル |
| P | TO主カテゴリ | リンク先の主カテゴリ |
| Q | TO従カテゴリ | リンク先の従カテゴリ |
| R | TO従カテゴリー2 | リンク先の従カテゴリー2 |
| S | アンカーテキスト | リンクに表示されている文字 |
| T | リンク種別 | 本文リンク / ブログパーツ候補 / 関連記事候補 / メニュー候補 / 不明 |
| U | nofollow | relにnofollowがあるか |
| V | target | target属性 |
| W | HTTPステータス | FROM記事取得時のHTTPステータス |
| X | 備考 | 記事台帳未登録・除外候補・取得エラーなど |
同一記事内に同じTO URLが複数回出現した場合でも、
出現したリンクごとに1行ずつ記録する。
同じリンク先でも、
どの見出し配下にあるか
どんなアンカーテキストか
本文中か記事末尾か
によって意味が違うため。
スクリプトプロパティ TECN_LEDGER_URL ここにtecn記事台帳のURLを入れておきます。
TECN_LEDGER_URL
TECN_LEDGER_SHEET_ID
スクリプトプロパティ 記載から抽出方法
■ スクリプトプロパティ
TECN_LEDGER_URL
TECN記事台帳のURLまたは
スプレッドシートIDを設定する。
■ 初期設定
setupTecnLedgerSpreadsheetUrl()
を実行する。
URLからスプレッドシートIDを抽出し、
TECN_LEDGER_SHEET_ID
へ保存する。
以後の処理は
TECN_LEDGER_SHEET_ID
を利用する。
V0.2 変更仕様
15. V0.2 本文外リンク除外処理
15-1. 目的
V0.1では公開HTMLから内部リンクを取得するため、本文以外の以下の領域も内部リンクとして取得される。
- 筆者プロフィール
- 関連記事
- コメント欄
- 最近の投稿
- アーカイブ
これらはサイト共通パーツやWordPress標準機能によるリンクであり、クラスター設計や内部リンク戦略の分析ノイズとなる。
そのためV0.2では、V0.1で作成された「tecn内部リンク抽出」シートに対して後処理を実施し、本文分析に不要なリンク行を除外する。
15-2. 処理対象シート
対象シート
tecn内部リンク抽出
15-3. 判定列
対象列
K列(見出しテキスト)
15-4. 処理開始条件
K列に以下の文字列が出現した場合、
筆者プロフィール|DXジュン(Apice Technology 代表)
以降を本文外領域とみなす。
15-5. 削除対象
本文外領域において、K列が以下の文字列と一致する行を削除対象とする。
関連記事
コメントする コメントをキャンセル
最近の投稿
アーカイブ
15-6. アーカイブ到達後の処理
K列で
アーカイブ
を検出した時点で、その記事の本文外領域の解析は終了する。
以降の行は分析対象外として扱い、次の
筆者プロフィール|DXジュン(Apice Technology 代表)
が出現するまで読み飛ばす。
セカンドパス V0.2: cleanupTecnInternalLinksV02()
記事末尾での、サイドメニュ周りのリンクを外します。
15-7. 実行タイミング
V0.1の内部リンク抽出完了後に実行する。
処理フロー
runExtractTecnInternalLinks()
↓
tecn内部リンク抽出 作成
↓
cleanupTecnInternalLinksV02()
↓
本文分析用データ完成
15-8. 削除方式
初期実装では対象行を物理削除する。
対象行はシート下部から順番に削除することで行番号ずれを防止する。
15-9. 期待効果
V0.1では以下が混在する。
本文リンク
ブログパーツ
関連記事
最近の投稿
アーカイブ
コメント関連リンク
V0.2実施後は主に
本文リンク
ブログパーツ
ピラーページリンク
無料DL導線
関連記事(本文内設置)
のみが残る。
これにより、
- クラスター設計分析
- 被リンク分析
- 発リンク分析
- STOCKmini導線分析
- アピスmini導線分析
の精度を向上させる。


```



コメント