Μετά από μία εγκατάσταση ή μεταφορά μίας σελίδας, μόλις κάνουμε Login στο wordpress, εμφανίζει συνεχόμενα…
Πως να διορθώσετε το μήνυμα “Parallelize Downloads Across Hostnames”
Πως να αποφύγετε την ειδοποίηση “Parallelize Downloads Across Hostnames”
Βλέποντας το μήνυμα “parallelize downloads across hostnames” στο Pingdom, GTmetrix, or Google PageSpeed Insights? Αυτό συμβαίνει γιατί οι browsers έχουν ένα όριο παράλληλων συνδέσεων. Αυτό οφείλεται κυρίως στην HTTP/1.1, που οι browsers ανοίγουν κατά μέσο όρο 6 συνδέσεις ανά host.
Σημείωση: Αν τρέχεται σε HTTP/2, αυτή η ειδοποίηση μπορεί να αγνοηθεί. Τελευταία είναι πολύ συχνό οι περισσότεροι Server να υποστηρίζουν την τεχνολογία HTTP/2. Με το HTTP/2 πολλαπλές συνδέσεις μπορούν να φορτωθούν παράλληλα.
Ανάλογα το εργαλείο που κοιτάτε, το μήνυμα μπορεί να είναι διατυπωμένο με διαφορετικούς τρόπους:
- “parallelize downloads across hostnames”
- “increase download parallelization by distributing these requests across multiple hostnames”
Αν τρέχετε την σελίδα σας ακόμα σε HTTP και δεν έχετε περάσει στο HTTP/2, μπορείτε να ακολουθήσετε το παρακάτω tutorial.
Διορθώστε την ειδοποίηση “Parallelize Downloads Across Hostnames”
Ένας τρόπος είναι να μοιράσετε το περιεχόμενο από περισότερα subdomain (γνωστό ως Domain sharding). Με αυτή τη μέθοδο μπορείτε να φορτώσετε τη σελίδα cookie-free, αλλά προσθέτετε μία καθυστέρηση όσο αφορά τα DNS requests.
1. Δημιουργήστε τα επιπλέον Subdomains
Πρώτα πρέπει να δημιουργήσετε τα subdomains από το περιβάλλον του server σας (cpanel, plesk κ.ο.κ.).
selidamou.gr
static1.selidamou.gr
static2.selidamou.gr
static3.selidamou.gr
2. Αλλαγή του WordPress Config
Έπειτα πρέπει να αλλάξετε το wpconfig, ώστε δώσετε την δυνατότητα πολλαπλών συνδέσεων στα subdomain. Απλά προσθέστε το παρακάτω κώδικα στο functions.php αρχείο (src: GitHub). Αντικαταστήστε τις τιμές στο $subdomains με τα δικά σας subdomains. Όλα τα subdomains/hostnames πρέπει να έχουν την ίδια δομή.
function parallelize_hostnames($url, $id) {
$hostname = par_get_hostname($url); //call supplemental function
$url = str_replace(parse_url(get_bloginfo('url'), PHP_URL_HOST), $hostname, $url);
return $url;
}
function par_get_hostname($name) {
$subdomains = array('media1.mydomain.com','media2.mydomain.com'); //add your subdomains here, as many as you want.
$host = abs(crc32(basename($name)) % count($subdomains));
$hostname = $subdomains[$host];
return $hostname;
}
add_filter('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);