In diesem Beitrag zeige ich Ihnen ein SEO-Plugin für das Admin Backend, das in der Lage ist den Beitragstitel und die Metadescription zu überwachen.
SEO Checker für Bludit
Das folgende Coding zeigt Ihnen ein hilfreiches Plugin für Bludit, das Ihnen im Backend eine Übersicht mit Beiträgen anzeigt, die gegen die SEO-Regeln verstoßen und entsprechend überarbeitet werden müssen. Konkret püft das Plugin ob der Titel im Bereich von 50...70 Zeichen liegt und die Metadescription im Bereich von 150...160 Zeichen liegt. Damit decken Sie bereits eine der wichtigsten SEO-Prüfungen Ihrer Webseite vollkommen automatisiert ab - Sie müssen dann lediglich noch den Edit-Button drücken ;)
Anzeige des SEO Check im Backend zeigt einige auffällige Beiträge
Plugin Verzeichnis
Legen Sie im Verzeichnis für die Bludit-Plugins einen neuen Ordner an:
bl-plugins/cmswb-seocheck
Code
In diesem Ordner erzeugen Sie die Plugin-Datei
bl-plugins/cmswb-seocheck/plugin.php
Code
Die obligatorischen Dateien wie metadata.json und den Ordner language können Sie bequem aus anderen Plugin-Ordnern übernehmen und später noch mit hilfreichen Informationen ergänzen. Für die reine Funktionsweise ist zunächst lediglich deren Existenz wichtig, nicht jedoch deren Inhalt.
Das Plugin
Folgenden Code kopieren Sie in das File plugin.php
001 <?php
002 class pluginCmswb_SEOCheck extends Plugin {
003
004 public function dashboard() {
005 global $pages, $categories, $tags, $L;
006
007 $titleMax = 70;
008 $titleMin = 50;
009 $descriptionMin = 150;
010 $descriptionMax = 160;
011
012 // TITLE zu klein
013
014 echo '<hr>';
015 echo '<h4 class="mt-3">SEO-Check: Titel kleiner '.$titleMin.' Zeichen</h4>';
016 echo '<p class="small text-muted">Erweitern Sie den Titel der folgenden Beiträge. Die Kategorie zählt mit zum Beitragstitel.</p>';
017 echo '<table cellpadding=3 width=100%>';
018 echo '<tr><th>Beitrag</th><th>Zeichen</th><th>Edit</th></tr>';
019 foreach ($pages->db as $key=>$fields) {
020 if (strlen($fields['title'].' - '.$fields['category']) < $titleMin) {
021 echo '<tr>';
022 echo ' <td>'.$fields['title'].' - '.$fields['category'].'</td>';
023 echo ' <td align=right>'.strlen($fields['title'].' - '.$fields['category']).'</td>';
024 echo ' <td><a href="edit-content/'.$key.'">edit</a></td>';
025 echo '</tr>';
026 }
027 }
028 echo '</table>';
029 echo '<br>';
030
031 // TITLE zu gross
032
033 echo '<hr>';
034 echo '<h4 class="mt-3">SEO-Check: Titel größsser '.$titleMax.' Zeichen</h4>';
035 echo '<p class="small text-muted">Reduzieren Sie den Beitragstitel der folgenden Beiträge.</p>';
036 echo '<table cellpadding=3 width=100%>';
037 echo '<tr><th>Beitrag</th><th>Zeichen</th><th>Edit</th></tr>';
038 foreach ($pages->db as $key=>$fields) {
039 if (strlen($fields['title'].' - '.$fields['category']) > $titleMax) {
040 echo '<tr>';
041 echo ' <td>'.$fields['title'].' - '.$fields['category'].'</td>';
042 echo ' <td align=right>'.strlen($fields['title'].' - '.$fields['category']).'</td>';
043 echo ' <td><a href="edit-content/'.$key.'">edit</a></td>';
044 echo '</tr>';
045 }
046 }
047 echo '</table>';
048 echo '<br>';
049
050 // DESCRIPTION zu klein
051
052 echo '<hr>';
053 echo '<h4 class="mt-3">SEO-Check: Beschreibung kleiner '.$descriptionMin.' Zeichen</h4>';
054 echo '<p class="small text-muted">Liste aller Beiträge deren Meta-Beschreibungen zu kurz sind und für besseres Ranking erweitert werden müssen.</p>';
055 echo '<table cellpadding=3 width=100%>';
056 echo '<tr><th>Beitrag</th><th>Zeichen</th><th>Edit</th></tr>';
057 foreach ($pages->db as $key=>$fields) {
058 if (strlen($fields['description']) < $descriptionMin) {
059 echo '<tr>';
060 echo ' <td>'.$fields['title'].' - '.$fields['category'].'</td>';
061 echo ' <td align=right>'.strlen($fields['description']).'</td>';
062 echo ' <td><a href="edit-content/'.$key.'">edit</a></td>';
063 echo '</tr>';
064 }
065 }
066 echo '</table>';
067 echo '<br>';
068
069 // DESCRIPTION zu gross
070
071 echo '<hr>';
072 echo '<h4 class="mt-3">SEO-Check: Beschreibung größsser '.$descriptionMax.' Zeichen</h4>';
073 echo '<p class="small text-muted">Liste aller Beiträge deren Meta-Beschreibungen zu lang sind und für besseres Ranking reduziert werden müssen.</p>';
074 echo '<table cellpadding=3 width=100%>';
075 echo '<tr><th>Beitrag</th><th>Zeichen</th><th>Edit</th></tr>';
076 foreach ($pages->db as $key=>$fields) {
077 if (strlen($fields['description']) > $descriptionMax) {
078 echo '<tr>';
079 echo ' <td>'.$fields['title'].' - '.$fields['category'].'</td>';
080 echo ' <td align=right>'.strlen($fields['description']).'</td>';
081 echo ' <td><a href="edit-content/'.$key.'">edit</a></td>';
082 echo '</tr>';
083 }
084 }
085 echo '</table>';
086 }
087
088 }
Code
Besonderheiten liegen im IF in den Zeilen 20, und 39 denn in meinem Template wird die Kategorie mit zum Titel des Beitrags gerechnet - sofern Sie das nicht brauchen, entfernen Sie .' - '.$fields['category'] diesen Passus.
Plugin aktivieren
Aktivieren Sie das Plugin im Admin-Backend des Bludit CMS und gehen zum Dashboard zurück. Dort erhalten Sie ab sofort eine Anzeige wie etwa folgende über auffällige Beiträge, die bei Gelegenheit überarbeiten sollten.
Anzeige des SEO Check im Backend zeigt einige auffällige Beiträge
Die Magie des Plugins steckt im wesentlichen in den Zeilen 19...27. Dieses Segment wird lediglich noch drei mal mit unterschiedlichen Parametern wiederholt. In den Zeilen 7...10 legen Sie die Grenzen fest, in der die SEO-Prüfung gemacht wird. Der Rest ist reine HTML-Kosmetik.
Optional können Sie die vier Eckparameter $titleMax, $titleMin, $descriptionMin und $descriptionMax auch in die de_DE.json Language-Datei überführen und müssten dann bei Änderung der Werte nich jedes Mal das Plugin anpassen. Das Plugin kennt diese Json-Datei bereits und kann auf den dortigen Inhalt leicht zugreifen.
Zudem steht es Ihnen natürlich auch frei weitere Inhalte Ihrer Beiträge und des Contents gegen SEO-Regeln zu prüfen.
21.12.2023 Kontakt@Oliver-Lohse.de SEO Admin Backend