コンテンツへスキップ
🛠️ToolsShed

サイトマップXML生成器

URL、優先度、変更頻度でsitemap.xmlファイルを生成します。

このツールについて

サイトマップは、検索エンジンに対してウェブサイトのページ一覧と更新頻度を伝えるためのファイルです。Sitemap XML ジェネレーターは、正しい形式の sitemap.xml ファイルを生成し、Google、Bing、その他の検索エンジンがコンテンツをより効率的にクロールしてインデックスできるよう支援します。数百ページ以上あるような大規模なウェブサイトでは、サイトマップなしでは検索エンジンボットが全ページを発見するまでに数ヶ月かかる可能性があります。

このツールを使用するには、ウェブサイトの URL を 1 行に 1 つずつ入力し、各 URL に優先度(0.0~1.0、1.0 が最高)を割り当て、更新頻度(毎日、週 1 回、月 1 回、年 1 回)を指定します。ツールはすぐに公式のサイトマップ プロトコルに準拠した有効な XML サイトマップを生成します。その後、ファイルをダウンロードしてウェブサーバーのルート ディレクトリにアップロードし、Google Search Console と Bing Webmaster Tools に送信することで、より高速なインデックスが実現できます。

サイトマップは、ウェブサイトの構造が複雑な場合や、ページ間の内部リンクが不十分な場合に特に有用です。良好なサイト構造の代替手段ではありませんが、検索エンジンが新しいコンテンツや更新されたコンテンツを発見するまでの時間を短縮できるため、SEO に不可欠です。ブログ、電子商取引ストア、ニュースサイト、ドキュメンテーションポータルなど、ほとんどの現代的なウェブサイトはサイトマップを検索エンジンに登録することで利益を得られます。

よくある質問

コード実装

from datetime import date
from xml.etree.ElementTree import Element, SubElement, tostring
from xml.dom import minidom

def generate_sitemap(urls: list[dict]) -> str:
    """
    Generate sitemap.xml string.
    Each url dict: { loc, lastmod?, changefreq?, priority? }
    """
    root = Element("urlset")
    root.set("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9")
    for entry in urls:
        url_el = SubElement(root, "url")
        SubElement(url_el, "loc").text = entry["loc"]
        if "lastmod" in entry:
            SubElement(url_el, "lastmod").text = entry["lastmod"]
        if "changefreq" in entry:
            SubElement(url_el, "changefreq").text = entry["changefreq"]
        if "priority" in entry:
            SubElement(url_el, "priority").text = str(entry["priority"])
    raw = tostring(root, encoding="unicode")
    dom = minidom.parseString(raw)
    return dom.toprettyxml(indent="  ")

urls = [
    {"loc": "https://example.com/",        "lastmod": str(date.today()), "changefreq": "daily",   "priority": 1.0},
    {"loc": "https://example.com/about",   "lastmod": str(date.today()), "changefreq": "monthly", "priority": 0.8},
    {"loc": "https://example.com/contact", "lastmod": str(date.today()), "changefreq": "monthly", "priority": 0.5},
]
print(generate_sitemap(urls))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.