Große wp_postmeta - Wie bereinigen?

  • Hallo Leute,

    ich habe mit meinem Wordpress-Blog Performance-Probleme. Mir wird im Google Pagespeed-Tool eine hohe TTFB angezeigt. Bei der Fehlersuche ist mir aufgefallen, dass die wp_postmeta ziemlich groß ist.

    Hier ein paar Fakten:
    - 41.855 Beiträge
    - wp_postmeta hat 730.000 Zeilen und ist 580 MB groß
    - Revisionen auf max. 3 gestellt

    Ich habe die Vermutung, dass in der postmeta viele unnütze Daten sind. Ich hatte mehrere Themes installiert, die sicherlich auch in der postmeta Zeilen angelegt haben. Die bleiben bestimmt beim Theme-Wechsel bestehen, stimmt's?

    Wie räume ich da am besten auf? Habe ein wenig Angst da Einträge zu löschen, die meine Seite noch benötigt.

    Danke schon mal.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • hy,

    bevor du was machst immer ein Backup erstellen.
    zb. duplicator oder mit Updraft

    wenn du möglichkeit hast, am besten eine testumgebung erstellen.
    und dort mit den Backups spielen.

    580MB ist zwar ein größe kommt natürlich auf die seite, zb. bei einen sehr großen blog mit vielen kommentaren ist das keine seltenheit.


    TTFB


    sagt nur aus wie lange der server braucht um zu antworten und hat nicht umbedingt mit der Datenbank zu tun.
    ist der server lahm dann bringt auch eine datenbank bereinigung nicht viel.
    zu dem thema datenbank bereinigung gibt es sehr viele anleitungen im netz diese mal mit tante goo suchen oder hier im forum

  • Backup -> Check.

    Gibt es denn eine Möglichkeit zu prüfen, welche eigenen Felder mein neues Theme verwendet? Ich fürchte es liegt hauptsächlich an den alten Feldern.

    Server ist der zweit-schnellste Managed-Server bei Hetzner. Es läuft nur die eine Webseite darauf.

  • Bzgl. TTFB, werden Cache- oder Optimierungs-Plugins verwendet? Deaktiviere die alle mal und prüfe, ob sich was ändert. Welche PHP-Version wird verwendet?

    Bzgl. wp_postmeta, Du kannst (nach einem Datenbank-Backup und dem Wissen, wie man das wieder einspielt, wenn was schiefgeht) mit einem Plugin wie "WP Optimize" mal gezielt nur alte post Revisions bereinigen und danach damit nur die postmeta bzgl. Einträgen ohne Bezug bereinigen.

    Ob / wie das von Themes abhängt, kommt ganz auf den Einzelfall an, wenn man alleine mal ein Theme kurz testet, kommen sicher keine 580 MB zusammen. Eine saubere Analyse könnte man nur nach Einblick in die Daten selbst machen.

  • Bzgl. TTFB, werden Cache- oder Optimierungs-Plugins verwendet? Deaktiviere die alle mal und prüfe, ob sich was ändert. Welche PHP-Version wird verwendet?

    Bzgl. wp_postmeta, Du kannst (nach einem Datenbank-Backup und dem Wissen, wie man das wieder einspielt, wenn was schiefgeht) mit einem Plugin wie "WP Optimize" mal gezielt nur alte post Revisions bereinigen und danach damit nur die postmeta bzgl. Einträgen ohne Bezug bereinigen.

    Ob / wie das von Themes abhängt, kommt ganz auf den Einzelfall an, wenn man alleine mal ein Theme kurz testet, kommen sicher keine 580 MB zusammen. Eine saubere Analyse könnte man nur nach Einblick in die Daten selbst machen.

    Hmm jetzt zeigt mir das Tool auf einmal nur 60 ms an. Es waren vorher aber deutlich mehr und wurde mir als Problem/Fehler angezeigt. Ich habe generell mit der Seite ein Performance-Problem, welches mir in einem "schnellen SEO-Audit" bescheinigt wurde.

    Als Cache-Plugin nutze ich die Premium-Version von "WP Fastest Cache". PHP ist 7.3 aktiv.

    Alte Revisionen habe ich bereits mit WP Optimize gelöscht. b3317133, meinst du mit "Ohne Bezug" die Option "Remove expired transient options"? Die habe ich bereits ausgeführt.

  • Ok. Ich habe jetzt folgende Query ausgeführt, um mir die Einträge anzeigen zu lassen:

    SELECT meta_key, COUNT(*) FROM `wp_postmeta` GROUP BY meta_key ORDER BY `COUNT(*)` DESC

    Ausgegeben wurden folgende erste Zeilen:

    meta_key COUNT(*) [Blockierte Grafik: https://konsoleh.your-server.de/phpmyadmin4/themes/dot.gif] 1
    keyword_cache 42004
    _schema_json 41930
    _schema_json_timestamp 41930
    _yoast_wpseo_metadesc 41913
    _yoast_wpseo_title 41895
    penci_post_month_views_count 41848
    penci_post_views_count 41848
    penci_post_week_views_count 41848
    _wp_page_template 41720
    postleitzahlen 41101
    _yoast_wpseo_meta-robots-noindex 33934
    essb_cache_expire 31363
    rp4wp_child 30340
    rp4wp_parent 30340
    rp4wp_auto_linked 5023
    _edit_lock 3509
    _edit_last 3434
    ratings_users 3241
    ratings_average 3240
    ratings_score 3240
    _yoast_wpseo_primary_category 3085

    Soweit ich das deute sind die ersten 6 Zeilen das Yoast-SEO-Plugin. Die Penci-Einträge kommen durch mein aktuelles Theme. Postleitzahlen habe ich ebenfalls erstellt und wird genutzt. essb ist für ein Social-Sharing-Plugin. rp4wp kommt durch ein Related-Posts Plugin.

    Da alle Plugins im Einsatz sind, ist wohl soweit alles grob okay. Oder was meint ihr? Ist das normal, dass die Zeilen so eine große Datenbank verursachen?

  • Bzgl. TTFB, deaktiviere alle Cache- und Optimierungs-Plugins und prüfe, ob sich was ändert.

    Versuche es auch mal mit PHP 7.2, manche ältere Themes / Plugins verursachen zig. Warnings mit PHP 7.3, die dann den kleinen Geschwindigkeitsvorteil durch zig Error-Log Einträge usw. ins Negative umkehren.

    Bzgl. der Grösse der Datenbank, zu penci_post_xxx deaktiviere die Statistikfunktionen des Themes oder wende Dich an den Theme-Support, wie Du das kleiner halten kannst. Bzgl. Cache essb_cache_expire des Social Share Plugins, wende Dich an den Plugin-Support, mit der gleichen Frage. Bzgl. der Yoast-Tabellen ebenso. Wäre noch zu klären, woher keyword_cache kommt.

    Bzgl. WP-Optimize und postmeta meine ich "Clean post meta data".

  • Die Cache-Plugins hatte ich schon probeweise deaktiviert. Dadurch werden die Resultate insgesamt schlechter. TTFB hatte sich nicht geändert.

    Social Share-Plugin habe ich gelöscht. die _schema-Einträge sind jetzt auch weg und stammten vom Plugin "Schema", welches ich früher mal installiert hatte.

    Die Yoast-Tabellen sind soweit in Ordnung. Die nicht benötigten Funktionen hatte ich bereits deaktiviert.

    keyword_cache weiß ich auch nicht.

    "Clean post meta data" zeigt bereits "No orphaned post meta data in your database". Hatte ich also schon ausgeführt.

    Wie kann man denn die besonders großen Einträge in der postmeta ausgeben? Gibt es da eine Query?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!