Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Viết script Python đo mật độ và vị trí từ khóa trong một bài HTML

2026年10月30日に「Dev.to」が公開したITニュース「Viết script Python đo mật độ và vị trí từ khóa trong một bài HTML」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

PythonスクリプトでHTML記事のキーワード出現状況を分析するツールを紹介。SEO対策として、キーワード密度よりタイトル・URL・冒頭などの重要位置への配置を重視。Pythonを使った実用的なWebコンテンツ分析手法を学ぶのに役立つ。

ITニュース解説

このニュース記事は、ウェブページのキーワードの配置と出現頻度をチェックするPythonスクリプトの開発について述べている。システムエンジニアを目指す初心者にとって、ウェブコンテンツの品質管理やSEO(検索エンジン最適化)の基礎を理解し、それを自動化するプログラミングの考え方を学ぶ良い機会となるだろう。

まず、このスクリプトが解決しようとしている課題は、コンテンツ制作者が記事内の主要キーワードが適切に配置されているかを迅速に確認したいというニーズだ。通常、このようなチェックには専門のプラグインが使われることが多いが、この記事ではプラグインに依存せず、自分たちでカスタマイズ可能なツールを構築することを目指している。

スクリプトがチェックする主要な要素は「キーワード密度」と「キーワードの位置」である。キーワード密度とは、記事全体の文字数に対して、特定のキーワードがどれくらいの割合で出現するかを示す数値だ。例えば、1000文字の記事にキーワードが10回出現すれば、密度は1%となる。これは簡単に計算できる指標だが、記事では、これが最も重要ではないと指摘されている。Googleのような検索エンジンは、単にキーワードの出現回数が多いからといって記事を高く評価するわけではないからだ。むしろ、キーワードを不自然に詰め込む「キーワードスタッフィング」は、スパム行為としてペナルティの対象となるリスクさえある。そのため、このスクリプトではキーワード密度を厳密な基準とはせず、3%を超えた場合に「念のため確認すべき」という警告として扱うに留めている。

本当に重要だとされているのは「キーワードの位置」だ。検索エンジンは、キーワードが記事の特定の「重要な場所」に配置されていることを重視する。これは、記事が何について書かれているかを検索エンジンが効率的に理解し、ユーザーが検索結果を見たときに記事の内容を適切に判断できるようにするためである。このスクリプトでは、キーワードの配置を「必須」と「推奨」の二つのレベルに分けてチェックしている。

「必須」のチェック項目は、SEOタイトル、URL(スラッグ)、そして記事の冒頭100語である。SEOタイトルは、検索結果に表示される記事のタイトルであり、ユーザーと検索エンジンの双方にとって、その記事が何についてのものかを示す最も重要な情報だ。URLも同様に、記事のテーマを簡潔に表す部分であり、キーワードが含まれていることが望ましい。記事の冒頭部分にキーワードが含まれていることは、ユーザーが記事を読み始めたときに、求めている情報がそこにあることをすぐに理解できるだけでなく、検索エンジンにも記事の主要なテーマを伝える上で非常に効果的だ。これらの「必須」の場所のいずれかにキーワードが存在しない場合、スクリプトは「エラー」として報告する。

次に「推奨」のチェック項目は、メタディスクリプション、記事中の1〜2つの見出し(H2やH3など)、そして結論部分だ。メタディスクリプションは、検索結果のスニペットとして表示される記事の要約文であり、ユーザーがクリックするかどうかを判断する上で重要な情報源となる。見出しは、記事の構造を整理し、読者が内容を把握しやすくするために使われるが、ここにもキーワードを含めることで、記事の関連性を高めることができる。結論部分で再度キーワードに触れることは、記事全体のテーマを締めくくる上で自然であり、読者の理解を深める助けとなる。これらの「推奨」の場所のいずれかにキーワードが存在しない場合、スクリプトは「提案」として改善の余地があることを示す。

このようなチェックを行うために、スクリプトはHTML記事の構造を理解する必要がある。そこで登場するのがPythonのBeautifulSoupというライブラリだ。BeautifulSoupは、ウェブページ(HTML)のデータを解析し、タイトル、メタディスクリプション、見出し、段落といった要素を簡単に抽出できるようにするツールである。システムエンジニアは、このようなライブラリを活用することで、複雑なウェブデータから必要な情報だけを効率的に取り出すプログラムを構築できる。

また、キーワードの照合においては「正規化」という処理が重要となる。例えば、ベトナム語には声調符号などのアクセント記号が存在するが、URLにはこれらの記号を含めることができない。そのため、キーワードとURLを比較する際には、キーワードからアクセント記号を取り除く処理が必要となる。このような、異なる形式のデータを比較可能にするために、特定の方法でデータを統一する処理を正規化と呼ぶ。Pythonのunicodedataやre(正規表現)といったモジュールは、このような文字列操作やパターンマッチングに活用される。

このスクリプトは非常に有用だが、いくつかの限界も指摘されている。例えば、スクリプトは記事がユーザーの「検索意図」に合致しているか、あるいは同じウェブサイト内で複数の記事が同じキーワードを狙ってしまい、互いに競合しているといった高度な問題は判断できない。これらは、キーワードプランニングやコンテンツ戦略といった、より人間による深い考察が必要な領域だ。また、同義語やセマンティックキーワード(文脈を理解するのに役立つ関連キーワード)もスクリプトでは検出できない。これらを扱うには、自然言語処理の分野における、より高度な技術が必要となる。

最後に、このようなスクリプトを開発する上で、「テスト」は非常に重要な工程である。キーワードを詰め込みすぎた記事や、逆に自然にキーワードが分散している記事など、様々なケースでスクリプトが正しく機能し、適切なフィードバックを返すかを確認するのだ。そして、一度作成したスクリプトも、要件の変化や新たな知見に基づいて機能を追加したり改善したりする「拡張性」を考慮して設計することが、システムエンジニアリングの重要な側面である。例えば、画像のalt属性(代替テキスト)にキーワードが含まれているかをチェックする機能を追加したり、複数の記事ファイルを一括で処理し、結果をCSV形式で出力する機能を追加したりすることが考えられる。

このスクリプトの開発プロセスを通じて、システムエンジニアを目指す初心者は、単にコードを書くだけでなく、問題の本質を理解し、それを解決するための最適なアプローチを設計し、限界を認識しつつ、将来の拡張性も考慮に入れるといった、実践的な思考プロセスを学ぶことができるだろう。

関連コンテンツ

関連IT用語