Sitemap Generator Language Table of Contents
 Japanese [日本語]  
 English [英語]  
 Korean [韓国語]  
 Simplified Chinese [简体中文]  
 Traditional Chinese [繁體中文]  
 Español [スペイン語]  
 Français [フランス語]  
 Português [ポルトガル語]  
 Arabic العربية [アラビア語]  
 Deutsch [ドイツ語]  
 Italiano [イタリア語]  
 Russian [ロシア語]  
 Turkish [トルコ語]  
 Hindi [ヒンディー語]  
 Vietnamese [ベトナム語]  
 Thai [タイ語]  
 Dutch [オランダ語]  
 Indonesian [インドネシア語]  
 Malay [マレー語]  
 Filipino [フィリピン語]  
 Swedish [スウェーデン語]  
 Norwegian [ノルウェー語]  
 Danish [デンマーク語]  
 Finnish [フィンランド語]  
 Polish [ポーランド語]  
 Czech [チェコ語]  
 Hungarian [ハンガリー語]  
 Greek [ギリシャ語]  
 Romanian [ルーマニア語]  

XML Sitemap Generierungsprogramm
XML-Sitemap-Generator
Kopieren Sie den Code und erstellen Sie das Programm.
Beispiel XML-Sitemap

Einführung
Eine Sitemap ist eine Seite oder Datei, die die Struktur und den Inhalt Ihrer Website auflistet. Sie hilft Benutzern und Suchmaschinen, die Informationen auf Ihrer Website zu verstehen, und unterstützt bei der Navigation.
Obwohl der Titel dieser Seite "XML Sitemap Generierungsprogramm" ist, fungiert die aktuelle Seite nicht als Werkzeug zur Generierung von Sitemaps.
Auf dieser Seite finden Sie den Code zum Generieren und Abrufen einer Sitemap im XML-Format. Laden Sie den unten stehenden Code  auf den Server Ihrer Website hoch und führen Sie das Programm aus, wenn Sie eine XML-Sitemap für Ihre Website benötigen. Sie können den Code nach Belieben ändern. Bitte verwenden Sie ihn frei.
Haftungsausschluss
Abhängig von der Struktur Ihrer Website besteht die Möglichkeit, dass dieses Programm möglicherweise keine Sitemap erfolgreich generiert.
Das Programm geht davon aus, dass die Website mit UTF-8 erstellt wurde. Selbst wenn der gesamte Inhalt in UTF-8 ist, funktioniert es möglicherweise nicht, wenn HTML-Tags nicht dem Muster des Programms entsprechen.
Risiken
Dieses Programm ist darauf ausgelegt, in einer Online-Umgebung ausgeführt zu werden. Daher sind damit folgende Risiken verbunden.
  1. Risiko der Manipulation durch Dritte: Böswillige Dritte können das PHP-Programm ausführen und möglicherweise die Wurzel verändern.
  2. Serverleistung: Bei zahlreichen Dateien/Verzeichnissen kann es Zeit und Speicher beanspruchen und sich auf die Serverlast auswirken.
  3. Auswirkungen auf den Googlebot: Während der Verweis des Googlebots auf die Sitemap kann es sein, dass, wenn das Programm während des Schreibens durchsucht wird, korrekte Informationen den Bot nicht erreichen.
Getroffene Maßnahmen
Wir haben folgende Maßnahmen ergriffen, um das Risiko zu reduzieren:
  1. Speicherung generierter Dateien: Zur verbesserten Sicherheit der generierten Sitemap-Datei befolgt das Programm diese Schritte:
    1. Temporäre Speicherung: Sitemap-Dateien werden zunächst temporär an einem Ort außerhalb des Root-Verzeichnisses gespeichert, um direktes Schreiben oder Manipulation durch böswillige Dritte auf dem Webserver zu verhindern.
    2. Datei-Umbenennung: Die generierte Sitemap-Datei wird nach der vorübergehenden Speicherung umbenannt, um das Risiko einer Manipulation durch Ändern des Originaldateinamens zu verringern.
Noch zu ergreifende Maßnahmen
Um Ihr Risiko zu verringern, beachten Sie bitte Folgendes:
  1. Löschen der Programmdatei: Löschen Sie nach der Sitemap-Generierung prompt die hochgeladene Programmdatei vom Server.
  2. Ausführung in einer sicheren Umgebung: Seien Sie vorsichtig beim Platzieren von Dateien auf entfernten Servern und erwägen Sie eine lokale Ausführung, wenn Sie Gefahr sehen.
  3. Lastüberwachung: Wenn die Serverlast steigt, beenden Sie die Nutzung sofort, um Leistungsprobleme zu vermeiden.
  4. Maßnahmen für den Googlebot: Überprüfen Sie nach der Generierung der Sitemap den Crawling-Erfolg in der Google Search Console. Erwägen Sie manuelles Initiieren des Crawlings, wenn nötig.
  • Wenn Sie keinen Sitemap-Generierungs-Plugin wie WordPress haben, müssen Sie die Sitemap selbst generieren. Verwenden Sie in diesem Fall bitte den hier vorgestellten Code.
  • Detaillierte Informationen zur Struktur und Notwendigkeit von Sitemaps finden Sie auf vielen Websites, daher wird dies hier ausgelassen und es wird nur der PHP-Code bereitgestellt.
  • Jedes Element im Code enthält Kommentare; wählen Sie die Methode, die Ihren Vorlieben entspricht.
  • Die generierte XML-Datei (.xml) sieht wie folgt aus und enthält eine Beispiel mit den minimal erforderlichen Elementen für die Google-Registrierung. Zusätzlich können Sie "Seitentitel",
    "Änderungshäufigkeit" und "Priorität" abrufen.
    Beispiel XML-Sitemap
    ・Das Datum der letzten Änderung (<lastmod>) wird in koordinierter Weltzeit (UTC) abgerufen.
    ・Zum Beispiel fügt die japanische Zeit 9 Stunden zur angezeigten Zeit hinzu.
  • Installationsanleitungen:
    1. Bereiten Sie ein Verzeichnis mit einem Namen wie "Sitemap" vor.
    2. Kopieren Sie den unten stehenden Code   und fügen Sie ihn in Ihren Webseiten-Editor ein.
    3. Befolgen Sie die Kommentare im Code, um jedes Element durch Inhalt zu ersetzen, der Ihren Bedingungen entspricht.
    4. Benennen Sie die Datei, zum Beispiel 'sitemapgenerator.php', und speichern Sie die bearbeitete Seite mit der Erweiterung '.php', nicht '.html'.
    5. Laden Sie es auf Ihren Webserver hoch. Wenn Sie auf die Seite zugreifen können und einen Bildschirm ähnlich dem untenstehenden sehen, war die Generierung erfolgreich.
      * Getestet in einer Entwicklungsumgebung mit etwa 20.000 Seiten, die Dateigröße beträgt etwa 6 MB (bei Auswahl aller verfügbaren Elemente in den Einstellungen), und es dauerte etwa 3 Sekunden.
      Erfolgreiches Beispiel für einen Typ mit MTML-Abschnitt
      【Typ mit MTML-Abschnitt】
      Erfolgreiches Beispiel für einen Typ nur mit PHP-Abschnitt
      【Typ nur mit PHP-Abschnitt】
    6. Öffnen Sie die gespeicherte "XML-Datei" in Ihrem Browser, um sie zu überprüfen, oder laden Sie die gespeicherte ".xml"-Datei herunter, um sie zu überprüfen. Wenn sie korrekt generiert wurde, melden Sie sie in derGoogle Search Console  Bing Webmaster Tools  usw. an.
      * Wenn die Dateigröße groß ist, können Sie sie möglicherweise nicht im Browser öffnen. Laden Sie die ".xml"-Datei vom Webserver herunter, um dies zu bestätigen.
      * Abhängig vom Browser wird es möglicherweise nicht korrekt angezeigt, wenn es geöffnet wird.
      * Wenn Sie es im Browser öffnen, erscheint möglicherweise nicht die "XML-Deklaration" in der ersten Zeile.
    7. Wenn Sie es zum ersten Mal verwenden, stellen Sie sicher, dass es ordnungsgemäß generiert wurde und überprüfen Sie auf unnötige Elemente.
    8. Wenn beim Zugriff auf die Seite ein "Kodierungsfehler" auftritt, kann dies durch bestimmte Zeichen verursacht werden.
      Beispiel für einen Kodierungsfehler
      Zum Beispiel sollten Zeichen wie [&] als Escape-Codes neu geschrieben werden, wie in der folgenden Tabelle gezeigt.
      * Escape-Codes können durch Klicken kopiert werden.
    9. Zeichen  Escape-Code 
      Ampersand
      &➡️
      &amp;
      Einfaches Anführungszeichen
      ➡️
      &apos;
      Doppeltes Anführungszeichen
      ➡️
      &quot;
      Größer als
      >➡️
      &gt;
      Kleiner als
      <➡️
      &lt;
      Gemeinsame Ursachen für "Kodierungsfehler":  
      Ein "Kodierungsfehler" ist eine Fehlermeldung, die auftritt, wenn eine XML-Datei nicht korrekt mit einer bestimmten Zeichenkodierung codiert ist. Folgende Probleme können in Betracht gezogen werden:
      1. Ungültige Zeichen sind vorhanden
        [Ursache] XML demands certain characters ([&][']["][>][<], etc.) maskiert werden. Ein Fehler tritt auf, wenn diese Zeichen nicht ordnungsgemäß maskiert sind.
        [Behebung] Maskieren Sie ungültige Zeichen oder stellen Sie sicher, dass sie korrekt maskiert sind.
      2. Die korrekte Codierung ist nicht angegeben
        [Ursache] Wenn die XML-Dateideklaration am Anfang, wie zum Beispiel <?xml version="1.0"?>, vorhanden ist und das Codierungsattribut danach nicht korrekt angegeben ist, tritt ein Fehler auf.
        [Behebung] Geben Sie die korrekte Codierung an, zum Beispiel <?xml version="1.0" encoding="UTF-8"?>.
      3. Die Deklaration ist falsch
        [Ursache] Ein Fehler tritt auf, wenn die Deklaration falsch ist oder ein Fehler zwischen "<?xml" and "?>" vorliegt.
        [Behebung] Korrigieren Sie die Deklaration.
      4. FDie Dateicodierung stimmt nicht mit der Deklaration überein
        [Ursache] Ein Fehler tritt auf, wenn die tatsächliche Codierung der Datei nicht mit der in der XML-Deklaration angegebenen Codierung übereinstimmt.
        [Behebung] Passen Sie die Dateicodierung an, um mit der Deklaration übereinzustimmen.
      5. Die Datei ist beschädigt
        [Ursache] Fehler treten auf, wenn die Datei nicht korrekt gespeichert oder beschädigt ist.
        [Behebung] Speichern Sie die Datei erneut ab und stellen Sie sicher, dass sie erfolgreich geladen werden kann.
    10. Als wir dies in einer Testumgebung überprüften, wurde festgestellt, dass bei Nichtangabe von Ausschlüssen im XML-Datei ein Verzeichnis wie "sys" gefunden wurde, das auf dieser Website nicht als Webseitenverzeichnis (Ordner) verwendet wird. Wenn dies bestätigt ist, geben Sie bitte den Verzeichnisnamen im 'Verzeichnisse ausschließen'-Element an, zum Beispiel "$excludeDirectories = ['sys']".
      Alternativ versuchen Sie etwas wie "$excludeMetaTags = ['NOINDEX']" im Abschnitt "Meta-Tags ausschließen" anzugeben. Der folgende PHP-Code verwendet "NOINDEX" als Standardeinstellung.
《 XML Sitemap Generierungs-PHP-Code 》
 ZIP-Datei herunterladen nur mit PHP-Teil   
Sie können das Programm auch nur mit dem PHP-Abschnitt ausführen.
Speichern Sie die Datei mit der Erweiterung ".php".

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>XML Sitemap Generierung PHP Programm</title>
<meta name="robots" content="NOINDEX,NOFOLLOW">
<!-- Laden von kostenlosen Icon-Schriftarten - kann entfernt werden, wenn nicht verwendet -->
<link href="https://use.fontawesome.com/releases/v6.2.0/css/all.css" rel="stylesheet">
</head>
<body>
<h2>&nbsp;&nbsp;<i class="fa-regular fa-pen-to-square fa-2x" style="color: crimson"></i>&nbsp;XML Sitemap Erstellung</h2>
<hr>
<div style="margin:15px 5px 10px 20px;padding: 0 15px 0 0; font-size: 14px;background-color: lavenderblush; border: gray 1px solid; border-radius: 4px;">
<div style="margin:15px 0 0 20px">
    <form method="post">
        <input type="submit" name="downloadLocal" value="XML-Datei lokal herunterladen" style="background-color: white;border-radius: 5px;cursor: pointer;">
    </form>
</div>
<ul>
<li>Die von hier heruntergeladene XML-Datei enthält einen Teil des HTML-Bereichs der Seite.</li>
<li>Wenn Sie eine reine XML-Datei benötigen, laden Sie sie von einem entfernten Server herunter. Oder löschen Sie den HTML-Teil der heruntergeladenen Datei. Die XML-Dateien von "&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;" bis "&lt;/urlset&gt;" sind XML-Dateien.</li>
</ul>
</div>
<hr>
<?php
//************************************************
// XML Sitemap Generierung PHP Programm
// Programm bereitgestellt von: Jeder weiß ein bisschen nützliches Buch
// Minna no Chishiki Chotto Benricho
// みんなの知識 ちょっと便利帳
// https://www.benricho.org/Tips/sitemapgenerator/
// Veröffentlicht am: 3. Januar 2024
//************************************************

// Wurzelverzeichnis des Webservers. Automatisch abgerufen.
$sitemapDirectory = $_SERVER['DOCUMENT_ROOT'];

// .xml Dateiname (endgültiger Dateiname)
// Der .xml Dateiname kann geändert werden. Viele Suchmaschinen verwenden jedoch "sitemap.xml" als Standardkonvention, daher wird die Verwendung von "sitemap.xml" empfohlen.
$finalSitemapFilename = 'sitemap.xml';

// Verzeichnis zum Speichern der Sitemap-Datei (endgültiges Verzeichnis - Wurzel)
$finalSitemapPath = $sitemapDirectory . '/' . $finalSitemapFilename;

// Verzeichnis zum Generieren der Sitemap
$rootDirectory = $_SERVER['DOCUMENT_ROOT'];

// .xml Dateiname (temporärer Dateiname)
$tempSitemapFilename = 'temporarysitemap.xml';

// Verzeichnis zum Speichern der Sitemap-Datei (temporäres Verzeichnis)
$tempSitemapPath = $sitemapDirectory . '/' . $tempSitemapFilename;

// Temporäres Verzeichnis erstellen, wenn es nicht existiert
$tempDirectory = dirname($tempSitemapPath);
if (!file_exists($tempDirectory)) {
    mkdir($tempDirectory, 0777, true);
}

// Alte Sitemap löschen und in die neue Sitemap umbenennen (mit Shell-Befehl)
$oldSitemapFilename = 'old-' . $finalSitemapFilename;
$oldSitemapPath = $sitemapDirectory . '/' . $oldSitemapFilename;

// Alte Sitemap löschen, wenn sie existiert
if (file_exists($oldSitemapPath)) {
    unlink($oldSitemapPath);
}

// In die neue Sitemap umbenennen
if (file_exists($tempSitemapPath)) {
    rename($tempSitemapPath, $oldSitemapPath);
}

// Überprüfen, ob der Download-Button geklickt wurde
if (isset($_POST['downloadLocal'])) {
    // Kopiere die Sitemap in das temporäre Verzeichnis
    copy($finalSitemapPath, $tempSitemapPath);

    // Header für den Download setzen
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . $finalSitemapFilename . '"');
    header('Content-Length: ' . filesize($tempSitemapPath));

    // Datei ausgeben
    readfile($tempSitemapPath);

    // Nach dem Download die in temporärem Verzeichnis gespeicherte Sitemap löschen
    unlink($tempSitemapPath);
    exit;
}

///// Ausschluss-Einstellungen /////
// Auszuschließende Verzeichnisse. Geben Sie nur die Verzeichnisnamen an. ['dir-1', 'dir2'] usw.
// Auf ein leeres Array setzen, wenn nicht benötigt. $excludeDirectories = [];
$excludeDirectories = [];

// Auszuschließende Dateien. Geben Sie nur die Dateinamen an. ['aaa.html', 'bbb.php'] usw.
// Auf ein leeres Array setzen, wenn nicht benötigt. $excludeDirectories = [];
$excludeFiles = [];

// Auszuschließende Verzeichnisse/Dateien ['dir-1/dir1/file1.html', 'dir2/file2.php'] usw.
// Auszuschließende Pfade sollten kein führendes "/" enthalten.
// Auf ein leeres Array setzen, wenn nicht benötigt. $excludeDirectories = [];
$excludePaths = [];

// Meta-Tags mit ['NOINDEX', 'NOFOLLOW', 'REFRESH'] usw. zum Ausschließen
// Auf ein leeres Array setzen, wenn nicht benötigt. $excludeDirectories = [];
// Empfohlen ist die Angabe von ['NOINDEX']
$excludeMetaTags = ['NOINDEX'];

///// Bedingungen für die Sitemap-Generierung /////
// Seitentitel abrufen (1: Ja, 2: Nein)
// * Nicht von Google Search Console empfohlen
// * Bei der Registrierung bei Google Search Console auf "2: Nein" setzen
// * Wenn auf "1: Abrufen" gesetzt, kann Google Search Console eine Warnung anzeigen: "Title-Tags werden nicht erkannt. Bitte korrigieren Sie dies."
$getTitle = 2;
// Zeichenfolgen aus dem Seitentitel entfernen
// * Kann bestimmte Zeichenfolgen aus dem Titel entfernen. ['of', 'is'] usw.
// Auf ein leeres Array setzen, wenn nicht benötigt. $excludeDirectories = [];
$removeTitleStrings = [];

// Letztes Änderungsdatum der Datei abrufen (1: Ja, 2: Nein)
// * Von Google Search Console empfohlen
$getLastMod = 1;

// Seitenumbruchhäufigkeit
// * Von Google ignoriert. Es wird empfohlen, keine Werte hinzuzufügen.
// Verwenden Sie Seitenumbruchhäufigkeit (1: Ja, 2: Nein)
$useChangeFreq = 2;
// Elemente für die Aktualisierungshäufigkeit auswählen, wenn "1" ausgewählt ist
// ['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never']
// Wählen Sie Werte aus, die zur Aktualisierungshäufigkeit Ihrer Website passen
$changefreqValues = ['Element, das für Ihre Website geeignet ist'];

// Seitenspezifität abrufen (1: Ja, 2: Nein)
// * Von Google ignoriert. Es wird empfohlen, keine Werte hinzuzufügen.
$getPriority = 2;

// Nachricht zur Sitemap-Generierung
$successMessage = "<p>・ Die Sitemap-XML-Datei wurde generiert.</p><p>・ Es wurde im Stammverzeichnis des entfernten Servers als '{$finalSitemapFilename}' gespeichert.<br>・ Aus Sicherheitsgründen löschen Sie bitte die Programmdatei vom entfernten Server.</p><p>・ <a href='/{$finalSitemapFilename}' target='_blank'>Öffnen Sie die 'XML-Datei' im Browser [neuer Tab].</a></p>";

// Sitemap XML-Header (für die endgültige Sitemap-Datei)
$xmlFinal = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
XML;

// Dateien im Verzeichnis rekursiv verarbeiten (für die endgültige Sitemap-Datei)
function generateSitemap($directory, $excludeDirs, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, &$xmlFinal) {
    $dir = new DirectoryIterator($directory);
    foreach ($dir as $fileInfo) {
        if ($fileInfo->isDot()) continue;

        $filename = $fileInfo->getFilename();
        $filepath = $fileInfo->getPathname();
        $fileExtension = pathinfo($filename, PATHINFO_EXTENSION);

        // Überprüfen, ob es sich um ein ausgeschlossenes Verzeichnis/Datei handelt
        $excludePath = str_replace($_SERVER['DOCUMENT_ROOT'], '', $filepath);
        if (in_array(ltrim($excludePath, '/'), $excludePaths)) {
            continue;
        }
        if ($fileInfo->isDir()) {
            if (in_array($filename, $excludeDirs)) {
                continue;
            } else {
                generateSitemap($filepath, $excludeDirs, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, $xmlFinal);
            }
        } else {
            if (in_array($filename, $excludeFiles) || in_array($filename, $excludeDirs)) {
                continue;
            }

            if (in_array($fileExtension, ['html', 'php'])) {
                processFile($filepath, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $xmlFinal);
            }
        }
    }
}

// Datei verarbeiten (für die endgültige Datei)
function processFile($filepath, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, &$xmlFinal) {
    $content = file_get_contents($filepath);
    if (shouldExcludeContent($content, $excludeMetaTags)) {
        return;
    }

    $url = getRelativeUrl($filepath);
    // Letztes Änderungsdatum im UTC-Format (Coordinated Universal Time) setzen (angegeben durch "+00:00")
    $lastMod = ($getLastMod == 1) ? getLastModifiedDateUTC($filepath) : '';

    $xmlFinal .= "\n <url>";
    $xmlFinal .= "\n <loc>{$url}</loc>";

    if ($getTitle == 1) {
        $title = getTitleFromContent($content);
        if (!empty($title)) {
            $title = str_replace($removeTitleStrings, '', $title);
            $xmlFinal .= "\n <title>{$title}</title>";
        }
    }

    // Letztes Änderungsdatum anzeigen
    if (!empty($lastMod)) {
        $xmlFinal .= "\n <lastmod>{$lastMod}</lastmod>";
    }

    // Änderungshäufigkeit anzeigen
    if ($useChangeFreq == 1) {
        $changefreq = $changefreqValues[array_rand($changefreqValues)];
        $xmlFinal .= "\n <changefreq>{$changefreq}</changefreq>";
    }

    // Priorität anzeigen
    if ($getPriority == 1) {
        $priority = getPriorityFromDepth($filepath);
        $xmlFinal .= "\n <priority>{$priority}</priority>";
    }

    $xmlFinal .= "\n </url>";
}

// Priorität basierend auf der Tiefe berechnen (für die endgültige Datei)
function getPriorityFromDepth($filepath) {
    $depth = substr_count($filepath, DIRECTORY_SEPARATOR);
    return 1 - ($depth * 0.1);
}

// Überprüfen, ob Meta-Tags ausgeschlossen werden sollen (für die endgültige Datei)
function shouldExcludeContent($content, $excludeMetaTags) {
    foreach ($excludeMetaTags as $tag) {
        if (stripos($content, '<meta name="robots" content="' . $tag) !== false) {
            return true;
        }
    }

    return false;
}

///// Letztes Änderungsdatum der Datei abrufen - Es wird empfohlen, UTC (Koordinierte Weltzeit/Coordinated Universal Time) im Sitemap XML-Element zu verwenden
// Setzen Sie das letzte Änderungsdatum im UTC-Format (angezeigt durch "+00:00")
function getLastModifiedDateUTC($filepath) {
    $lastModTimestamp = filemtime($filepath);
    $lastModDateTime = new DateTimeImmutable('@' . $lastModTimestamp);
    return $lastModDateTime->format('c');
}

// Seitentitel aus HTML-Datei abrufen (für die endgültige Datei)
function getTitleFromContent($content) {
    $dom = new DOMDocument;
    libxml_use_internal_errors(true); // Fehler während des HTML-Parser-Vorgangs unterdrücken
    $dom->loadHTML($content);

    $titleElements = $dom->getElementsByTagName('title');
    if ($titleElements->length > 0) {
        $title = $titleElements->item(0)->textContent;
        return $title;
    }

    return '';
}   

// Die relative URL der Datei abrufen (für die endgültige Datei)
function getRelativeUrl($filepath) {
    $relativeUrl = str_replace($_SERVER['DOCUMENT_ROOT'], '', $filepath);
    return $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . str_replace('\\', '/', $relativeUrl);
}

// Starten Sie die Sitemap-Erstellung (für die endgültige Datei)
generateSitemap($rootDirectory, $excludeDirectories, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, $xmlFinal);

// Sitemap-Fußzeile (für die endgültige Datei)
$xmlFinal .= "\n</urlset>";

// Speichern Sie die Sitemap in einer Datei (für die endgültige Datei)
file_put_contents($finalSitemapPath, $xmlFinal);

// Erfolgsmeldung anzeigen (zeigt an, dass die endgültige Sitemap-Datei generiert und gespeichert wurde)
echo $successMessage;
?>
<hr>
<p style="margin-top: 20px">
<!-- Setzen Sie den Dateinamen dieses PHP-Programms im <a>-Tag. Die Erweiterung lautet ".php" -->
<a href="Dateiname dieses Programms.php" style="margin-left: 20px;text-decoration: none;"><i class="fa-solid fa-check" style="color: #005eff;"></i> "XML-Datei" neu generieren&nbsp;&nbsp;<i class="fa-solid fa-rotate fa-spin fa-2x" style="color:crimson"></i>&nbsp;&nbsp;&nbsp;[Seite neu laden]</a>
</p>
<p>
<!-- Öffnen Sie die generierte "XML-Datei" in einem Browser -->
<a href='<?php echo '/' . $finalSitemapFilename; ?>' target='_blank' style='margin-left: 20px;text-decoration: none;'><i class="fa-solid fa-check" style="color: #005eff;"></i> "XML-Datei" im Browser öffnen&nbsp;&nbsp;<i class="fa-solid fa-chalkboard-user fa-beat-fade fa-2x" style="color:green"></i>&nbsp;&nbsp;&nbsp;[Separater Tab]</a>
<div style="margin-left: 30px;font-size: 12px;color: gray">* Wenn die Dateigröße groß ist, können Sie sie möglicherweise nicht in Ihrem Browser öffnen. Wenn Sie es nicht im Browser öffnen können, laden Sie bitte die ".xml"-Datei vom Webserver herunter und überprüfen Sie sie.</div>
</p>
<hr>
<!-- Bestätigen Sie die Hinzufügung/Aktualisierung der "Google"-Sitemap -->
<p>
<!-- <a>Setzen Sie Ihre eigene URL im Tag -->
<a href="https://search.google.com/search-console/sitemaps?resource_id=Ihre eigene URL" target="_blank" style="margin-left: 20px;text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>&nbsp;[<strong>Google</strong>]&nbsp;Bestätigen Sie die Hinzufügung/Aktualisierung der Sitemap&nbsp;&nbsp;<i class="fa-solid fa-arrow-up-from-bracket fa-bounce fa-2x" style="color: #db0016;"></i></a>
</p>
<!-- [Google Search Console] -->
<p>
<!-- <a>Setzen Sie die URL der "Sitemap"-Seite von Google Search Console, die Sie im Tag registriert haben. -->
<a href="https://search.google.com/search-console?resource_id=Ihre eigene URL" target="_blank" style="margin-left: 20px;text-decoration: none;"><i class="fa-solid fa-check" style="color: #005eff;"></i>&nbsp;[<strong>Google Search Console</strong>]&nbsp;&nbsp;&nbsp;<i class="fa-solid fa-up-right-from-square fa-beat fa-2x" style="color: blue"></i></a>
<div style="font-size: 13px; margin: 0 40px">* Es wird angenommen, dass Sie bereits bei "Google Search Console" registriert sind.</div>
</p>
<hr>
<!-- "Bing" Bestätigen Sie die Hinzufügung/Aktualisierung der Sitemap -->
<p>
<!-- Setzen Sie die URL der Bing "Webmaster Tools"-Seite, die Sie registriert haben, und den XML-Dateinamen, den Sie im <a>-Tag festgelegt haben. Der Dateiname sollte mit dem im "$sitemapFilename" festgelegten Dateinamen übereinstimmen. -->
<a href="https://www.bing.com/webmasters/sitemaps?siteUrl=Ihre eigene URL/&sitemap=Ihre eigene URL/sitemap.xml" target="_blank" style="margin-left: 20px;text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>&nbsp;[<strong>Bing</strong>]&nbsp;Bestätigen Sie die Hinzufügung/Aktualisierung der Sitemap&nbsp;&nbsp;<i class="fa-solid fa-arrow-up-from-bracket fa-bounce fa-2x" style="color: #db0016;"></i></a>
</p>
<!-- [Bing Webmaster Tools] -->
<p>
<!-- Setzen Sie die URL der Bing "Webmaster Tools"-Seite, die Sie im <a>-Tag registriert haben. -->
<a href="https://www.bing.com/webmasters/home?siteUrl=Ihre eigene URL" target="_blank" style="margin-left: 20px;text-decoration: none;">
<i class="fa-solid fa-check" style="color: #005eff;"></i>&nbsp;[<strong>Bing Webmaster Tools</strong>]

&nbsp;&nbsp;&nbsp;<i class="fa-solid fa-up-right-from-square fa-beat fa-2x" style="color: blue"></i></a>
<div style="font-size: 13px; margin: 0 40px">* Es wird angenommen, dass Sie sich bereits bei "Bing Webmaster Tools" registriert haben oder die Zusammenarbeit mit "Google Search Console" abgeschlossen haben.</div>
</p>
<hr>
<!-- Zeigt den Seitennamen usw. an. Wenn Sie es nicht anzeigen möchten, löschen Sie es bitte. -->
<h3 align="center"><i class="fa-solid fa-house" style="color: crimson"></i>&nbsp;Ihr Seitenname usw.&nbsp;<i class="fa-solid fa-house" style="color: crimson"></i></h3>
<!-- Sie können es löschen. -->
<h4 align="center"><a href="https://www.benricho.org/" target="_blank" style="text-decoration: none;"><i class="fa-solid fa-house" style="color: blue"></i>&nbsp;みんなの知識 ちょっと便利帳&nbsp;<i class="fa-solid fa-house" style="color: blue"></i></h4>
</body>
</html>
Speichern Sie die Datei mit der Erweiterung ".php".
 ZIP-Datei herunterladen nur mit PHP-Teil   
Sie können das Programm auch nur mit dem PHP-Abschnitt ausführen.
Dies schließt unsere Einführung in den PHP-Code für den XML-Sitemap-Generator ab.
Durch die Verwendung dieses Codes können Sie eine effektive Indizierung und Crawling von Suchmaschinen erreichen und einen reibungslosen Betrieb Ihrer Website sicherstellen.
Obwohl es kostenpflichtige Programme mit erweiterten Funktionen wie automatischen Updates gibt, lag hier der Fokus auf der Bereitstellung grundlegender Funktionalitäten.
Es kann Fehler in der Formulierung geben, da es eine Übersetzung aus der japanischen Version ist. Wir entschuldigen uns für die Unannehmlichkeiten, aber wenn es einen Fehler in der Formulierung im Code gibt, korrigieren oder passen Sie ihn bitte selbst an.
Wir schätzen Ihr Feedback zur Verwendung dieses Codes. Beachten Sie bitte, dass ich keine Fragen beantworten kann.

おすすめサイト・関連サイト…

Last updated : 2024/04/23