いつの間にかNetlifyにプラグインが導入されてました。 そのプラグインリストの中には、リンク切れチェック用のプラグインもあるんですが、使ってみた感じは正直使いにくいです。 プラグインにするとビルドの度にチェックしてくれるので便利ではあるんですけどね。

「他に何か良いツールはないものか〜??」と探してみたところ、思った以上にすぐ見つかっちゃいましたのでご報告。

stevenvachon/broken-link-checker

WordPressのと同じ名前です。 でもこちらはNodeで動いてくれるbroken-link-checkerです。 基本のaタグやimgタグだけでなく、iframeにも対応しているので埋め込みのyoutubeもチェックしてくれました。 未確認ですが、Twitterにも対応してるかもしれないですね。

実行速度の方はかなり速いです。 PCのスペックにも影響されるかもしれないですけど、WordPressのノロノロ運転とは比べ物にならないスピードです。

経験上、リンク切れで困ることってほとんどなかったので、時々手動で実行させるだけでも十分かな。

使用方法

npmやyarnでインストールした後に、ターミナル上で

blc <対象サイトのurl> -roi

とするだけの、超お手軽仕様。

オプションのiは個人的に付け足しました。 内部リンクを除外して、対象を外部リンクに限定するオプションです。 Gatsbyで作ってる場合は基本的に問題ないはずなので、このオプションを使って時間短縮させましょう。

注意点

URLにマルチバイト文字が入っていると、「TypeError: Request path contains unescaped characters」とエラーになるっぽくて、そのページはスキップされます。 うちのサイトはタグページがまさにそうなってるんで、時々このエラーが出てきます。 タグページには何もないので問題ないんですけど、これが記事ページで出ちゃうとこのツールは完全に使い物にならなくなっちゃうので注意ですね。

もしこのツールを使うのであれば、記事ページのURLは何がなんでも英数字で統一しときましょうネ。