Zur Suche springen Zur Navigation springen Zum Hauptinhalt springen Zum Footer springen

Die Performance gehört zu den wichtigsten Faktoren wenn es um die technische Optimierung einer Website geht. User erwarten schnelle Seiten und auch Google rankt Sites mit hoher Performance im Index weiter nach vorne. Es lohnt sich also hier zu optimieren.
Um zu prüfen welche Bereiche eurer Website verbesserungswürdig sind, könnt ihr beispielsweise Google Page Speed oder Yahoo YSlow nutzen. Beide Dienste empfehlen die Nutzung eines sog. CDN (= Content Delivery Network), also die Auslagerung von Medianinhalten auf verschiedene Server dessen Aufgabe ausschließlich die Verwaltung und Verteilung dieser Inhalte ist. Es muss aber kein echter CDN-Dienst sein. Häufig reicht eine eigene Subdomain.

Schulungen von kulturbanause

Intensive Trainings mit hohem Praxisbezug.

Bessere Website-Performance durch „Load Sharing“

Wenn eine Website im Browser geladen wird, erzeugt jede geladene Datei einen sog. HTTP-Request (Server-Anfrage). Der Browser kann in der Regel zwischen zwei und vier Requests parallel bearbeiten. Je mehr Dateien eure Website laden muss, desto länger wird die Warteschlange der Anfragen und desto länger wird der Seitenaufbau verzögert. Moderne Websites fassen Dateien und Scripte daher in Paketen wie beispielsweise CSS-Sprites zusammen um Requests zu sparen – aber das ist ein anderes Kapitel.

Die Begrenzung der Requests erfolgt pro Domain! Wenn wir Daten auf externe Domains, in unserem Fall eine Subdomain, auslagern, können mehr Serveranfragen parallel bearbeitet werden. Diese Vorgehensweise kann den Seitenaufbau spürbar beschleunigen.
Es wäre also möglich Bilder auf images.domain.de und Scripte auf scripts.domain.de auszulagern. Achtet jedoch darauf, dass ihr nur dann Daten auf eine Subdomain auslagert, wenn die Datenmenge angemessen ist. Die Auflösung der Domain kostet nämlich auch wieder Zeit.

Google Page Speed Online
Google Page Speed Online

Die optimale Lösung wäre der Einsatz eines echten Content Delivery Network (kurz: CDN). Hierbei werden die Daten auf verschiedene physikalische Server ausgelagert. Häufig werden auch verschiedene Standorte für die Server berücksichtigt um Inhalte für den Besucher optimal ausliefern zu können. Diese Methode ist jedoch technisch sehr aufwändig und kostenintensiv. Ein CDN lohnt sich daher meist erst für richtig große Websites.

Kurz und knapp. Was haben wir vor?

Damit ihr wisst was euch erwartet, fasse ich einmal kurz zusammen was getan werden muss um die Mediathek erfolgreich auszulagern.

Zunächst wird natürlich eine Subdomain benötigt. Wenn bereits Inhalte in die „alte“ Mediathek hochgeladen wurden, müssen diese nun auf die Subdomain verschoben werden. Dafür ist ein Update der Datenbank notwendig damit die Dateizuordnungen nicht verloren gehen. Anschließend wird innerhalb von WordPress als Upload-Verzeichnis die Subdomain eingerichtet. Von nun an werden auch neue Inhalte automatisch auf die Subdomain hochgeladen. Zuletzt sollte die Google Bildsuche nicht vernachlässigt werden.

Nicht vergessen! Datenbank-Backup erstellen, Serverbackup erstellen.

Subdomain einrichten, Pfad ermitteln

Als erstes braucht ihr natürlich eine Subdomain. Wie ihr eine Subdomain einrichtet ist abhängig von eurem Provider. Bei 1und1, Strato und HostEurope könnt ihr Subdomains unkompliziert über das Kunden-Administrationsinterface einrichten. Solltet ihr nicht wissen wie eine Subdomain einzurichten ist, wendet euch bitte an den entsprechenden Provider.
Sobald die Subdomain aktiv ist, müsst ihr den Serverpfad ermitteln. Diesen Pfad benötigen wir später um in WordPress angeben zu können wo die Daten hochgeladen werden sollen.
Erstellt eine Datei mit folgendem Inhalt und speichert sie unter dir.php ab.

<? echo dirname(__FILE__); ?>

Ladet die Datei nun auf die Subdomain hoch und ruft sie im Browser auf (http://subdomain.deine-domain.de/dir.php). Ihr seht nun den Pfad zu der Datei. Er sollte in etwa so aussehen:

/is/htdocs/12784521_GGTZAIUHSDN/www/subdomain.deine-domain.de

Notiert euch den Pfad und löscht die Datei wieder vom Server!

Daten der Mediathek umziehen

Nun verschieben oder kopieren wir die Mediathek an Ihren neuen Ort. Die Mediathek findet ihr auf dem Server unter ../wp-content/uploads/.
Wenn ihr die Möglichkeit habt mit einer Kopie zu arbeiten, tut das. Da Google einige Zeit braucht um zu merken, dass die Bilder umgezogen sind vermeidet ihr mit einer Kopie tote Bild-Links in Googles Bildersuche.

Ihr solltet nun also eine unveränderte alte Mediathek besitzen und eine Kopie des Orders uploads auf der Subdomain erstellt haben.

Datenbank aktualisieren

Nun geht es an die Datenbank. Wenn ihr mit einer Kopie der Mediathek arbeitet, sieht eure Website noch aus wie immer. Wenn ihr die Mediathek verschoben habt, sind alle Inhalte der Mediathek jetzt verschwunden. Wir müssen also die Pfade in der Datenbank auf den neuen Standort der Mediathek aktualisieren. Dafür gibt es verschiedene Methoden.

phpMyAdmin SQL Section
SQL-Section zur Ausführung von SQL-Befehlen in phpMyAdmin.

In der Regel werdet ihr die Datenbanken über phpMyAdmin verwalten. Noch einmal zur Erinnerung: erstellt ein Backup eurer funktionierenden Datenbank, damit ihr im Notfall alles wieder herstellen könnt.

Möglichkeit 1: MySQL-Befehl in phpMyAdmin absetzen

Ihr könnt die Pfade in der Datenbank über folgenden SQL-Befehl direkt in phpMyAdmin anpassen. Achtet darauf, dass die Tabellen der Datenbank, sowie der alte und der neue Domainname stimmen.


UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://deine-domain.de/wp-content/uploads/', 'http://subdomain.deine-domain.de/');

Möglichkeit 2: Datenbank exportieren, Pfade ersetzen, Datenbank importieren

Alternativ könnt ihr über phpMyAdmin auch zunächst die Datenbank exportieren. Anschließend öffnet ihr die *.sql-Datei mit einem Texteditor und ersetzt den alten Pfad (bsp: http://deine-domain.de/wp-content/uploads/) mit dem neuen Speicherort der Mediathek (bsp: http://subdomain.deine-domain.de/).
Anschließend importiert ihr die Datenbank wieder.

Wenn ihr eure Seite nun im Browser aufruft sollte alles funktionieren. Ihr könnt im Quellcode einmal nachschauen ob die Medieninhalte korrekt auf die Subdomain verweisen.

Einstellungen im WordPress-Backend

Jetzt müssen wir WordPress noch mitteilen, dass neu hinzugefügt Medieninhalte auch in die neue Mediathek geladen werden. Dazu ruft ihr im WordPress-Dashboard den Punkt „Einstellungen → Mediathek“ auf.

Einstellungen der WordPress-Mediathek

Im unteren Bereich seht ihr den Abschnitt „Dateien hochladen“. Tragt in das obere Feld den anfangs ermittelten Serverpfad ein. In das untere Feld gehört der komplette Pfad zu den Dateien.

Speichert die Einstellungen und ladet ein Testbild in die Mediathek hoch um zu prüfen ob das Bild auch an den richtigen Ort geladen wird. Wenn alles funktioniert seid ihr mit dem Umzug der Mediathek fertig.

Geänderte Einstellungen seit WordPress 3.5

Seit WordPress 3.5 sind die o.g. Eingabefelder verschwunden. Ihr könnt die Upload-Felder mit Hilfe des Plugins WP Original Media Path wiederherstellen.

Google informieren

Je nachdem wie viele Bilder eure Website beinhaltet stellt die Google Bildersuche eine nicht zu vernachlässigende Besucherquelle dar. Google benötigt einige Zeit um zu merken dass die Bilder umgezogen sind. Daher haben wir die Mediathek zunächst auch kopiert und nicht verschoben. Besucher gelangen über Google also solange auf das „alte“ Bild bis Google den Pfad aktualisiert hat.
Damit Google alle Pfade aktualisiert, solltet ihr mit einem Redirect 301 per .htaccess nachhelfen.


redirect 301 /wp-content/uploads
http://subdomain.deine-domain.de
[loggedin]Leider kann es sich als ziemlich lästig erweisen alle Bilder in der Mediathek zu finden und aufzulisten. Mit folgendem PHP-Snippet könnt ihr allerdings alle Bilder der Mediathek auflisten. Das sollte schon einmal deutlich helfen.


<?php 
$query_images_args = array(
    'post_type' => 'attachment', 'post_mime_type' =>'image', 'post_status' => 'inherit', 'posts_per_page' => -1,
);

$query_images = new WP_Query( $query_images_args );
$images = array();
foreach ( $query_images->posts as $image) {
    $images[]= $image->guid;
}
?>

<?php 
for ($x = 0; $x < sizeof($images); ++$x)
{
     echo current($images)."<br>";
     next($images);
}
?>
[/loggedin]

Laut Martin dauert es ca. eine Woche bis Google merkt, dass die Bilder umgezogen sind. Ihr müsst also einfach ein paar Stichproben in der Bildsuche machen. Sobald Google alle Pfade geändert hat, könnt ihr die alte Mediathek löschen.

Links zum Thema

Geschrieben von Jonas

thumb

Jonas ist Gründer der Webdesign Agentur kulturbanause® und des kulturbanause® Blogs. Er übernimmt Projektleitung, Grafik sowie Frontend- und WordPress-Development und hat zahlreiche Fachbücher und Video-Trainings veröffentlicht. Als Dozent leitet er Schulungen und Workshops. Am liebsten beschäftigt er sich mit Projekten und Themen, die ihn gleichermaßen konzeptionell als auch gestalterisch und technisch fordern.

Seminare mit Jonas Hellwig anzeigenJonas Hellwig bei Xing

Feedback & Ergänzungen – 43 Kommentare

  1. Alexander Wagner
    schrieb am 18.11.2020 um 19:53 Uhr:

    Hallo,

    ich habe es alles wie Beschriben befolgt, aber wenn ich neue Bilder hochlade und ich diese dann aufrufe erhalte ich Error 403. Trotzdem nette und hilfreiche Anleitung.

    Antworten
  2. Jan
    schrieb am 06.08.2018 um 16:11 Uhr:

    Moin,

    macht dieses Vorgehen mit http2 und Server-Push überhaupt noch Sinn?

    Grüße
    Jan

    Antworten
    • Jonas Hellwig (Autor)
      schrieb am 07.08.2018 um 09:12 Uhr:

      Hallo Jan, das sollte in der Tat in Zukunft überflüssig sein.

      Antworten
  3. WordPress gegen Hacker-Angriffe absichern – Martina Rüter: Web – Text – Training
    schrieb am 11.06.2018 um 08:01 Uhr:

    […] Weitere Informationen zum Auslagern des Upload-Ordners auf eine Subdomain unter: https://blog.kulturbanause.de/2012/05/wordpress-mediathek-auf-subdomain-auslagen-warum-und-wie/ […]

    Antworten
  4. Manuel
    schrieb am 06.04.2016 um 16:44 Uhr:

    Hallo zusammen,
    super Beitrag, den ich Schritt für Schritt umgesetzt habe. Leider nicht mit dem gewünschten Ergebnis. Und ich habe die Vermutung, dass es an WP 4.4 mit der Einführung der nativen responsiven Bildunterstützung liegt.

    Nach den Änderungen an der wp_posts zeigen alle src’s der Bilder auf meine Subdomain, das neu eingeführte „srcset“ aber leider noch auf den alten Pfad. Von dort wird das Bild dann auch geladen.

    Hat die Anleitung seit 4.4 im November schon jemand erfolgreich umgesetzt?

    Antworten
    • Manuel
      schrieb am 06.04.2016 um 16:49 Uhr:

      …und was mir gerade noch auffällt. Alle Beitragsbilder werden ebenfalls noch vom alten Pfad geladen. Die Pfade sind wohl nicht in „post_content“ abgelegt?!

      Hat jemand ne Hilfestellung?

      Antworten
  5. Providerwechsel - Schmuttermaier PHOTOGRAPHY
    schrieb am 03.12.2015 um 11:18 Uhr:

    […] Hier findet ihr bei den Kulturbanausen eine guten Anleitung wie man die WordPress Mediathek auf eine… […]

    Antworten
  6. Urs
    schrieb am 15.06.2015 um 22:41 Uhr:

    N’Abend Jonas. Intetessantes thema und super beschrieben. Sorry für meine Nerd-Frage, aber muss in der subdomain auch wp installiert sein?
    Und wenn ja, müssen beide wp versionen dieselben sein – immer? (Würde bedeuten 2 mal upgraden? – mal anzahl Seiten die man verwaltet…ganz schöner aufwand unter umständen!?

    Antworten
    • Jonas Hellwig (Autor)
      schrieb am 15.06.2015 um 23:39 Uhr:

      Hallo Urs, auf der Subdomain muss WP nicht installiert sein.

      Antworten
  7. Christina
    schrieb am 21.11.2014 um 12:54 Uhr:

    Eine tolle Anleitung – alles hat funktioniert. Nur hab ich jetzt ein total schlechtes Google Pagespeed Ergebnis – von 90 auf 20???? Zum einem möppert Pagespeed rum, dass ich die Bilder komprimieren soll (sind ja die gleichen wie vorher und da hat es nicht gemeckert) und für einen Teil meiner Bilder kommt die Info, dass ich das Browser-Caching nutzen soll. Dabei hab ich an den Einstellungen ja sonst nichts verändert. Muss ich in W3 irgendwelche Änderungen vornehmen? Warum werden meine Bilder nicht browsergecacht? Hat jemand eine Ahnung?
    LG
    Christina

    Antworten
    • Markus Schall
      schrieb am 01.05.2015 um 19:01 Uhr:

      Moin,

      ich vermute mal, daß das Browsercaching und die gzip-Komprimierung in der .htaccess auf die Subdomain ausgeweitet werden muß…? Sachverständige vor! ;-)

      Antworten
  8. Eugen
    schrieb am 24.10.2014 um 21:11 Uhr:

    Eine Super-Lösung! Vielen Dank! Ich werde auf jeden Fall die Tagen das ganze umsetzen.

    Antworten
  9. Patric
    schrieb am 19.05.2014 um 13:22 Uhr:

    Danke für die Anleitung, die einfach und verständlich ist. Da meine WP-Seite in einem Unterverzeichnis liegt, habe ich die Pfade dementsprechend angepasst. Die Medien-Datein werden korrekt im Upload-Ordner auf der Subdomain abgelegt. Wenn ich allerdings Medien in einen Beitrag einfügen will, habe ich nur ein „weisses“ Bild vor mir.

    Ich habe mir die CHMOD-Rechte der Ordner angeschaut und festgestellt, dass dort alle Rechte auf 750 stehen. Auch ein Austesten mit 755 / 777 brachte nichts.

    Hat jemand eine Idee?

    Antworten
  10. Angela
    schrieb am 08.05.2014 um 21:31 Uhr:

    Hallo Jonas,
    ich habe nach deiner Anleitung gearbeitet – übrigens so gut beschrieben, dass selbst ich Dummie das verstanden habe. Allerdings funktioniert der SQL-Befehl auf meiner Datenbank nicht. Wenn ich ihn eingebe, erscheint oben die Meldung „0 Daten betroffen“ (oder so ähnlich). Jedenfalls wird dieser Befehl nicht ausgeführt.
    Hast du eine Ahnung wo der Fehler liegen könnte?
    Vorerst vielen DAnk und
    viele Grüße,
    Angi

    Antworten
    • Jonas Hellwig (Autor)
      schrieb am 09.05.2014 um 11:41 Uhr:

      Hallo Angela,

      wenn die Pfadangabe stimmt, und du dich in der korrekten Tabellen der Datenbank befindest wüsste ich ehrlich gesagt auf Anhieb nicht woran es liegen könnte.

      Antworten
    • Patric
      schrieb am 19.05.2014 um 13:24 Uhr:

      Hast Du eventuell bei der Installation von WP den Tebellen-Präfix geändert und vergessen beim SQL-Befehl den Präfix anzupassen?

      Antworten
  11. maki
    schrieb am 25.04.2014 um 09:28 Uhr:

    Hi,

    kann es sein, dass jede Seite / Artikel dann auch über
    cdn.meinedomain.de ebenfalls aufrufbar ist???

    Dann hätten wir hier massiven duplicate content.

    Antworten
  12. SEO Tools, Tricks und kleine Spielereien
    schrieb am 17.04.2014 um 14:39 Uhr:

    […] WordPress Mediathek – Bilder etc. auf Subdomain auslagern. Mit Update der vorhandenen Medien. […]

    Antworten
  13. Rainer
    schrieb am 16.09.2013 um 23:39 Uhr:

    Hallo Jonas,

    danke für deine Anleitung. Is gut verständlich und hat auch bei mir geklappt. Nur habe ich folgendes Problem, dass ich keine Bilder hochladen kann.

    Ich habe die Pfade so eingegeben, wie du sie in deiner Anleitung beschrieben hast. Habe auch sämtliche Variationen ausprobiert.

    Entweder ich bekomme im Backend von WordPress die Fehlermeldung, dass ich die Datei nicht hochladen kann, oder sie wird lt. WordPress hochgeladen, ich sehe aber in WordPress kein Vorschaubild und auf meinem CDN ist sie auch nicht.

    Als Blog ist die Domain http://www.huaweiblog.de und als Subdomain habe ich einen externen Server cdn.ne8.de (kann es sein, dass es daran liegt?).

    Ein weiteres Problem ist, wenn ich die Pfade in WordPress einstelle, dass dann die Attachments nicht mehr angezeigt werden.

    Alles bisserl strange ;)

    Ich hoffe du kannst mir da vlt. weiterhelfen, soll auch nicht dein Schaden sein und du wirst auch in nem Blogeintrag von mir lobenswärt erwähnt und verlinkt. ;)

    Viele Grüße

    Rainer

    Antworten
    • Josef
      schrieb am 10.11.2013 um 06:13 Uhr:

      Hallo Reiner,

      wenn du für den Bildupload einen externen Server nutzen möchtest, beispielsweise ein CDN, dann kann das in diesem Fall leider nicht funktionieren. Der Grund: WordPress hat im Standard keine Möglichkeit die Bilder auf einen externen Server zu laden, da du in WordPress ja nirgendwo die FTP-Zugangsdaten für den anderen Server hinterlegt hast.

      Abhilfe könnte hierfür eines der zahlreichen Plugins schaffen, die beispielsweise extra für den Einsatz mit CDNs in Zusammenspiel mit Bildern entwickelt wurden. Leider kann ich kein konkretes empfehlen, da ich beim Einsatz von CDN immer auf die Option „Customer Origin“ setze.

      Viele Grüße
      Josef

      Antworten
  14. Mirco
    schrieb am 02.09.2013 um 18:09 Uhr:

    Toller Artikel! Besten Dank für deine Mühen, Jonas.

    Kurze Frage noch dazu: Woher weiß ich, ob meine Subdomains Cookies anlegt oder nicht?

    Viele Grüße
    Mirco

    Antworten
    • Josef
      schrieb am 10.11.2013 um 06:04 Uhr:

      Hallo Mirco,

      dass kannst du beispielsweise ganz einfach mit dem Firefox Add-On Firebug + YSlow herausfinden. In YSlow gibt es nämlich eine Option „Use cookie-free domains“ die dir anzeigt, ob die jeweilige Domain Cookies nutzt.

      Gruß Josef

      Antworten
  15. Tobias G.
    schrieb am 10.06.2013 um 18:19 Uhr:

    Funktioniert das Verschieben der Bilder auf eine Subdomain auch in einer Multi Domain Installation? Es sollen alle Subdomains den gleichen Mediathek Ordner nutzen (z.B. img.domain.de)?

    Antworten
  16. Mark aus Hamburg
    schrieb am 17.04.2013 um 15:56 Uhr:

    Moin Kinners. Feine Anleitung.
    Allerdings habe ich ein Verständnisproblem: Und zwar der PHP-Code-Schnipsel zur Auflistung aller Bilder in der Mediathek – wo kommt der hin? Wie verfahre ich da? Es steht nur der Code und keinerlei Anweisung. Kannst du das kurz updaten? Dankeschön!

    Antworten
    • Jonas Hellwig (Autor)
      schrieb am 17.04.2013 um 16:08 Uhr:

      Hallo Mark, das Snippet kannst du beispielsweise in einem Page Template einbauen. Dann listet das Template alle Inhalte der Mediathek auf und du kannst die Pfade ganz einfach kopieren. So habe ich das zumindest gemacht als ich die Mediathek ausgelagert habe. Nachdem ich die Pfade kopiert hatte, wurde das Template wieder gelöscht.

      Antworten
      • Marcel
        schrieb am 20.06.2016 um 09:24 Uhr:

        Hallo,

        das mit dem Auflisten der ganzen Bilder aus der Mediathek klappt soweit.
        Doch es sind ja nur die Originalbilder.

        Von jedem Bild gibt es ja noch … „kopieren“ in verschiedenen Pixelgrößen, je nach Template. Diese werden nicht mit dem Script aufgelistet.

        Da diese Bilder auch auf verschiedenen Seite im Blog genutzt werden (Titelbilder, Gallery …) – müssen wir Google doch auch darüber informieren?

      • Marcel
        schrieb am 20.06.2016 um 09:41 Uhr:

        Hallo,

        was ich auch festgestellt habe … nach dem ich über 3000 Bilder (ohne die ganzen anderen Bilder in verschiedenen Pixelformaten), per Redirect 301 in die htaccess eingebunden habe, erscheint beim Aufruf der Webseite, nur ein Internal Server 500 Fehler.

        Nehme ich nur knapp 1000 Redirects in die htacces, funktioniert die Seite.

        Woran kann das liegen?

  17. Anna
    schrieb am 28.03.2013 um 16:56 Uhr:

    Bitte um Hilfe!!!!!!!!

    Was ist wenn bei mir sowohl im Subdomain und in der Domain das Bild befindet wenn ich es hochlade. Hat dann der Umzug der Mediathek auch funktioniert oder habe ich einen Fehler gemacht????

    Bitte um Hilfe… glg. anna gailberger

    Antworten
    • Marcus
      schrieb am 04.04.2013 um 21:49 Uhr:

      Hi Anna,

      in WordPress 3.5 ist der Bildpfad rausgenommen worden. Mithilfe dieses Plugins ist das aber kein Problem:

      http://wordpress.org/extend/plugins/wp-original-media-path/

      @ Jonas
      Vielen Dank für die tolle Anleitung, so war das Auslagern der Bilder auf die Subdomain kein Problem! Die Geschwindigkeit hat sich zwar nur minimal geändert, aber so gibt es einfach noch ein paar mehr Möglichkeiten zu spielen :-) Jetzt muss ich nur noch meinen Slider auf die Reihe bekommen…

      Antworten
  18. Anna
    schrieb am 21.03.2013 um 17:36 Uhr:

    Hallo.

    Ich bräuchte dringend Hilfe. Bei mir funktioniert dies nicht wirklich. Wenn ich die dir.php öffne, steht nur forbitten und kein Link, den ich mir notieren kann. Ebenso kommt bei WordPress 3.5.1 bei Einstellungen->Media nicht Uploads in folgenden Ordner einfügen und Kompletter Pfad zu den Dateien.
    Wie geht dies.
    Bitte um rasche Hilfe, da meine Bilderseite zu langsam ladet (www.rc-gugge.at/wordpress). Dies ist meine Diplomarbeit und leider ist gleich Abgabe. Bitte daher um Hilfe….

    DANKE im Voraus.

    Anna Gailberger

    Antworten
  19. Ben Stein
    schrieb am 04.03.2013 um 16:31 Uhr:

    Hi auch von mir ein Lob für diesen tollen Artikel !
    Auch mich würde es interessieren wie es in der Multisite-Umgebung aussieht…

    Weiter so !

    Ben

    Antworten
  20. Volker aus Hamburg
    schrieb am 11.12.2012 um 03:30 Uhr:

    Erstmal herzlichen Dank für die sehr gute und praxistaugliche Anleitung – nicht immer eine Selbstverständlichkeit.

    Weil ich immer auf der Suche nach noch mehr Performance für meine WordPress-Websites bin, kam mir diese Gebrauchsanleitung gerade recht.

    Aufgrund der guten Anleitung war es leicht, die Datenbank entsprechend zu aktualisieren:

    UPDATE wp_posts SET post_content = REPLACE(post_content, ‚http://deine-domain.de/wp-content/uploads/‘, ‚http://subdomain.deine-domain.de/‘);

    Nimmt man als Erbsenzähler die Anleitung wörtlich, müsste der Befehl jedoch

    UPDATE wp_posts SET post_content = REPLACE(post_content, ‚http://deine-domain.de/wp-content/uploads/‘, ‚http://subdomain.deine-domain.de/uploads/‘);

    lauten.

    Wie auch immer …

    Aufgrund der gut nachvollziehbaren Anleitung war die Angelegenheit schnell erledigt. Auch die Nachprüfung im Adminbereich bestätigte eine einwandfreie Funktion.

    Nun kam die Nagelprobe über http://tools.pingdom.com/fpt/: 2,7 Sekunden.

    Vorher: 740 Millisekunden.

    Also: ein Griff ins Klo!

    Hier half auch die Ausschaltung des Browser-Caches nicht, um das Ergebnis zu relativieren.

    Zugeben muss ich jedoch, dass ich durch sehr viel Experimentiererei und diverse Hacks auf diese 740 Millisekunden gekommen bin. Und wir wissen auch, dass die Einstellungen auf den Servern ins Unendliche gehen, so dass mein Ergebnis nicht maßgebend sein muss.

    Abschließend darf man wie immer urteilen: die Tiefen des Internets sind unergründlich und für nahezu jedermann unverständlich.

    Der unerbittliche – diesmal leicht enttäuschte – Ladezeitenfeiler aus der weltbekannten Hansestadt Hamburg

    Antworten
  21. Michael
    schrieb am 06.12.2012 um 22:34 Uhr:

    Servus,

    vielen Dank schonmal und hab das ganze soweit mal umgesetzt und funktioniert soweit. Die vorhandenen Bilder werden angezeigt und sind normal erreichbar.

    Versuche ich jedoch ein neues Bild hochzuladen funktioniert es nicht und das Bild wird nicht angezeigt, Schreibrechte 775 und 777 getestet.

    Verzeichnisstruktur sieht bei mir so aus (Hoster Domainfactory):
    – media (der Ordner für die Subdomain media.domain.tld mit allen Grafiken)
    – webseiten (wo alle Webseiten drin sind)
    — webseitenname (da wo WordPress drin ist und erreichbar ist unter domain.tld)

    Kann es vielleicht daran liegen, dass der Subdomain Ordner eine Ebene höher ist als WordPress? Also das ich den media Ordner in den WordPress Ordner lege und dann funktioniert?

    Gruß
    Michael

    Antworten
  22. Falk
    schrieb am 27.09.2012 um 17:30 Uhr:

    Leider funktioniert es so einfach bei mir nicht. Alle Thumbs werden nicht lokalisiert. Muss mal in die Datenbank schauen, wo noch der wp-Upload-Ordner zu finden ist.

    Antworten
  23. Karsten
    schrieb am 21.09.2012 um 10:34 Uhr:

    Danke für den Artikel, die cookiefrei Subdomain wollte ich schon längst angehen, jetzt hab ich noch einen Grund mehr :)

    Gibt es Erfahrungen, wie das Ganze in einer Multisite-Umgebung umzusetzen ist, bzw welche Änderungen man da noch zusätzlich vornehmen muss?
    Uploads werden dort ja in wp-content/blogs.dir/ angelegt…

    Gruß
    Karsten

    Antworten
  24. Max
    schrieb am 06.07.2012 um 00:05 Uhr:

    @Björn: Ganz herzlichen Dank für deine ausführlichen Ergänzungen und @Jonas natürlich für den sehr guten und vor allem verständlichen Artikel.
    Selbst wenn das Ganze keine 20% Geschwindigkeitsvorteil bringt ist es eine Mühe die man sich mal machen sollte.
    Gruß, Max

    Antworten
  25. Björn Rücker
    schrieb am 09.06.2012 um 01:27 Uhr:

    Ein schöner Artikel, kleine Ergänzung noch: Ein weiterer Grund, warum eine eigene URL für statischen Content sinnvoll ist, ist den Cookie-Payload zu reduzieren.

    Denn wird ein Cookie gesetzt, wird dies bei jedem http-Request mit übertragen (und dies können schnell mehrere hundert Byte für mehrere Cookies sein). Also auch bei jedem CSS-, JS- oder Image-Request zum Beispiel (und dann können sich mehrere hundert Byte schnell zu zig KByte aufsummieren).

    Bei der Verwendung einer Subdomain, wie hier vorgeschlagen wurde, ist in dem Zusammenhang darauf aufzupassen, dass die Cookies des Hauptprojektes sich nicht auch auf Subdomains erstrecken – was bei vielen Cookies allerdings standardmäßig der Fall ist. Dann gewinnt man in Bezug auf „Cookieless Domain“ trotz des ganzen Aufwandes mit der Subdomain nämlich nichts.

    Abhilfe schafft hier entweder:

    a) Alle Cookie-Quellen der Hauptdomain durchgehen und dafür sorgen, dass auf Subdomains keine Cookies gesetzt werden. In WordPress z.B. in wp-config.php define(‚COOKIE_DOMAIN‘, ‚www.meinedomain.de‘); hinzufügen. Auch für Google-Analytics & Co gibt es Patches. Dies kann aber sehr mühsam sein und nicht bei jedem eingebundenen Dritt-Anbieter hat man da überhaupt Einfluss. Wenn man diesen Weg beschreitet, dann sollte man jedoch ALLE Cookie-Quellen von der Subdomain verbannen.

    b) Keine Subdomain sondern gleich eine eigene dedizierte Domain dazu verwenden – Problem gelöst. Einziger Nachteil imho: Evt. Wildcard-SSL-Zertifikate greifen dann natürlich nicht mehr -> also ggf. ein eigenes SSL-Zertifikat wird nötig. Dürfte aber wohl eher für Shop’s und Business-Seiten von Relevanz sein und bei dem ganzen Aufwand werden die paar wenigen Euro für ein zusätzliches Zertifikat wohl kaum ins Gewicht fallen ^^

    Darüber hinaus ist für Extrem-Optimierungen evt. ein anderer Webserver-Dienst wie lighttpd oder ein Reverse-Proxy für die statischen Inhalte einzusetzen.

    Ich muss allerdings gestehen, dass ich beide Tipp’s selber auch noch nicht bei uns umgesetzt habe – da auch erst vor einigen Wochen darüber gelesen. Wir setzen derzeit also auch noch nur eine Subdomain für statische Inhalte ein und einen seperaten lighttpd haben wir auch noch nicht – ist aber beides geplant.

    Insgesamt ist die hier beschriebene Subdomain zur Parallelisierung von Requests schon mal ein erster sehr guter Schritt und stellt einen echten Performance-Gewinn dar. Cookieless und spezielle Server ist dann – zugegebener Weise – doch schon sehr speziell um die letzten Quentchen an überflüssigen Bytes auch noch zu weg zu optimieren – Cheers ;)

    Björn

    Antworten
  26. Fidel Seehawer
    schrieb am 16.05.2012 um 11:20 Uhr:

    Wie bereits René geschrieben hat würde ich W3 Total Cache und zusätzlich WP Smush.it empfehlen.

    @Stefan: Durch die genanten Optimierungen kann einen Geschwindigkeitszuwachs von bis zu 80% erreicht werden (eventuell auch mehr). Es gibt auch einen anderen Ansatz von google. SPDY statt HTTP: http://dev.chromium.org/spdy/spdy-whitepaper

    Antworten
  27. Stefan Stern
    schrieb am 12.05.2012 um 23:58 Uhr:

    Hallo Jonas,
    vielen Dank für dieses hilfreiche Tutorial.

    Kannst du abschätzen, welchen Geschwindigkeitsvorteil das Auslagern auf eine Subdomain letztendlich bringen kann? Natürlich hängt das stark von den Inhalten der jeweilen Homepage ab, logisch. Aber reden wir über 5% schneller geladen, über 20% oder gar über 50% schnellere Ladezeiten?

    Hast du hier bereits Erfahrungswerte?

    Grüße
    Stefan

    Antworten
    • Jonas Hellwig (Autor)
      schrieb am 13.05.2012 um 18:39 Uhr:

      @Stefan: Ich habe keine exakten Werte, aber der Geschwindigkeitszuwachs ist schon spürbar. Nichts desto trotz sind es natürlich Optimierungen im Detail. Das es 20% Beschleunigung sind glaube ich nicht.

      Antworten
  28. Jojo
    schrieb am 11.05.2012 um 17:30 Uhr:

    Moin Jonas,
    danke für deine ausführliche Anleitung, habe mir schon des öfteren überlegt, solch einen Schritt auf einigen WordPress-Seiten umzusetzen und werde das nun vielleicht auch in Verbindung mit einem Cache-Plugin umsetzen.

    Viele Grüße
    Jojo

    Antworten
  29. René Grosche
    schrieb am 11.05.2012 um 14:33 Uhr:

    Moin Jonas, schön beschieben :) … was ich noch empfehlen kann // für dich wohl nichts neues // bei WordPress das Plugin W3 Total Cache..

    Mit diesen könnt Ihr scripte, css, db, usw. alles komprimieren lassen. Die Minify-Funktion lässt sich ganz gut einstellen für den Fall, dass ein Plugin „nö“ sagt und dann nicht mehr gehen sollte..

    Ebenso kann man direkt CDN anbinden :) – Wichtig ist nur, dass Plugin erst zu schalten, wenn die Webseite wirklich im richtigen pfad liegt (nicht in der Testumgebung).. ansonsten schickt euch der Cache auch nach Strg+F5 auf einen nicht mehr vorhandenen Link :)

    LG
    René

    Antworten
    • Jonas Hellwig (Autor)
      schrieb am 11.05.2012 um 14:41 Uhr:

      @René: Vielen Dank für die Ergänzung! WP Super Cache ist in der Tat mehr als empfehlenswert. Das mit dem CDN hatte ich da ehrlich gesagt grad gar nicht mehr auf dem Schirm :)

      Antworten

Schreibe einen Kommentar zu Rainer Antworten abbrechen

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

WordPress-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir setzen WordPress seit über 10 Jahren erfolgreich ein und realisieren maßgeschneiderte Websites auf Basis dieses großartigen CMS.

WordPress-Leistungsangebot →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →

Unsere Agentur in Berlin realisiert vom durchgestylten One-Pager bis zur funktionalen Konzern-Website Projekte mit sehr unterschiedlichem Umfang. Wir haben u.a. mit folgenden Kunden erfolgreich zusammengearbeitet: