Sandheden om Kamala Harris 'mand, Douglas Emhoff

Jeg forsøger at reducere indlæsningstiden for mit websted, som er hostet i Bluehost. Så når jeg tjekker præstationsscore via GTmetrix under YSlow-sektionen, nævnes det at "Tilføj udløbsoverskrifter" for fire statiske komponenter som nedenfor.

Tilføj Overskriften udløber

There are 4 static components without a far-future expiration date. https://www.googletagmanager.com/gtag/js?id=UA-49812165-2 https://www.google-analytics.com/analytics.js https://www.trustedsite.com/rpc/ajax?do=tmjs-visit&host=surf2ship.com&rand=1565102041274 https://cdn.ywxi.net/meter/surf2ship.com/105.png 

Så for at få et bedre svar på dette har jeg googlet problemet og nedenstående links blev undersøgt

  1. moz.com-indlæg, der er offentliggjort i 2012
  2. Stackoverflow-indlæg - Tilføj udløber overskrifter - som offentliggøres i 2013

Alle ovenstående sider forklarer, hvordan du tilføjer udløbsoverskrifter til almindelige filtyper. For et eksempel se nedenfor .htaccess fil. Det specificerer alle almindelige formater i stedet for at specificere en nøjagtig kilde.

# Media: images, video, audio ExpiresByType audio/ogg 'access plus 1 month' ExpiresByType image/gif 'access plus 1 month' ExpiresByType image/jpeg 'access plus 1 month' 

Hvordan tilføjes Expire-overskrifter til en bestemt url? Ligesom for https://www.google-analytics.com/analytics.js

Dette er min nuværende score for webstedet

  • 1 Se også Hvordan udløber jeg ved at indtaste .htaccess for fjernindlæst Google-skrifttyper? og ville ændre udløbsoverskriften til analytics.js fra Google Analytics ødelægge tingene?
  • 1 Bemærk, at resultaterne / forslagene fra disse præstationsværktøjer kun er rådgivende. Dette betyder ikke nødvendigvis, at forslagene skal implementeres. YMMV. GTMetrix ser ud til at markere analytics.js som et problem. Men Googles anbefaling er at holde det, som det er. support.google.com/analytics/answer/1032389?hl=da
  • @ MrWhite mener du, at der ikke er behov for at gemme det på min server og ikke behøver at tilføje udløbsdatoer?
  • Ja, det er Googles anbefaling. Google indstiller allerede en Expires (og afgørende Cache-Control: max-age) header - det er bare, at de ikke er "langtidsfremtidige" - hvilket synes at være bevidst. (Bemærk, at Google bruger indholdsforhandling og sender et præ-gzip-svar, hvis det accepteres - gør du dette?) At hoste filen lokalt øger (lidt) belastningen på din server og forbedrer ikke nødvendigvis downloadydeevnen på grund af browsers antal-forbindelser pr. vært-begrænsning (såvel som serverens).
  • @MrWhite godt forklaret og tak. Hvis det er muligt, kan du fortælle mig, om jeg skal tilføje udløbsoverskrifter for andre links, som jeg har nævnt i spørgsmålet.

Som @ Evgeniy allerede har dækket i sit svar, skal du kopiere disse ressourcer lokalt - til en server, du styrer - for at tilføje HTTP-svaroverskrifter til ressourcer eksternt til dit websted, så du kan sende HTTP-svaroverskriften som en del af HTTP-svaret.

Uanset om du skal gøre dette eller ej, er det en anden sag, og hver instans skal vurderes individuelt. At betjene en ressource "lokalt" fra din applikationsserver forbedrer muligvis ikke besøgende. Det kan også reducere funktionaliteten, hvis den tilsyneladende "statiske" ressource opdateres, eller hvis der bruges tredjepartscookies (hvilket måske eller måske ikke er ønskeligt).

Resultaterne fra GTmetrix (og andre "performance" -værktøjer) skal kun ses som "rådgivende". Et sted hvorfra du kan starte din egen webstedsanalyse. Du bør ikke implementere forslagene blindt uden først at vurdere konsekvenserne. Det er ikke nødvendigvis forkert at ikke have "en langt fremtidig udløbsdato". Implementering af funktioner til simpelthen at tilfredsstille den "automatiske ydeevneværktøjsrapport" er forkert.

skal jeg tilføje udløbsoverskrifter til andre links, som jeg har nævnt i spørgsmålet.

  1. https://www.googletagmanager.com/gtag/js?id=UA-49812165-2
  2. https://www.google-analytics.com/analytics.js

Bemærk, at disse ressourcer, som nævnt i kommentarer, ikke er uden Expires headere (og endnu vigtigere: Cache-Control: max-age header), det er bare, at de ikke er, hvad du kan kalde "langtid". Det gtag/js filen er cachelagret i 15 minutter og analytics.js er cachelagret i "rimelige" 2 timer. Kombineret med det faktum, at de samme ressourcer bruges af mange andre websteder, er de sandsynligvis allerede cachelagret, når den besøgende rammer dit websted, og cachetiden kan endda være tilstrækkelig lang til, at disse ressourcer forbliver cachelagrede i løbet af brugerens besøg (og hvis de fortsætter med at gennemse andre websteder i andre faner, gemmes ressourcerne alligevel igen).

Google serverer disse ressourcer, der er pre-gzippet fra en hurtig CDN, så det er usandsynligt, at du vil være i stand til at slå den oprindelige downloadtid ved at være vært for den på din egen server.

StackExchange (anses generelt for at gøre det rigtige når det kommer til SEO / performance) anmodninger analytics.js direkte fra Google (på ovenstående URL) og kopierer det ikke lokalt.

Google anbefaler ikke selv at vise disse filer lokalt. Google angiver dog ikke "ydeevne" som hovedårsagen:

Henvisning til JavaScript-filen fra Googles servere sikrer, at du får adgang til nye funktioner og produktopdateringer, når de bliver tilgængelige, hvilket giver dig de mest nøjagtige data i dine rapporter.

Når du først har gået til at betjene disse filer lokalt, kan vedligeholdelse være mere af et problem. For dem, der bruger WordPress, er der plugins tilgængelige, der specifikt hjælper med at automatisere processen med at kontrollere opdateringer.

  1. https://www.trustedsite.com/rpc/ajax?do=tmjs-visit&host=surf2ship.com&rand=1565102041274

Dette ser ikke ud til at være en statisk ressource! (Måske narre GTmetrix af tekst / javascript-svaret?) Svaret varierer mellem anmodninger og indstiller en (tredjeparts) cookie i 6 dage. Kopiering af dette lokalt og caching tjener intet formål og muligvis bryder funktionalitet. (Eller måske har du slet ikke brug for det?)

  1. https://cdn.ywxi.net/meter/surf2ship.com/105.png

Serveres fra Amazon CloudFront CDN og gzip'd. Mens den Expires header er udløbet! Det Cache-Control: public, max-age=86400 header sikrer, at alle fjerntliggende mainstream-browsere cache denne ressource i 1 dag.

Konklusion

IMO du sandsynligvis ikke drager fordel af at kopiere lokalt og cache nogen af ​​disse "ressourcer". Det er mere arbejde og kan endda gøre ydeevnen dårligere for dine brugere; ikke bedre. GTmetrix (og andre "værktøjer") er kun ment som en vejledning. Virkelig brugerpræstation er det, der virkelig betyder noget.

  • Dette er hvad jeg nøjagtigt ville have. Mange tak for at have brugt din dyrebare tid til dette. Endnu en gang tak.

Nej, du er ikke i stand til at administrere overskrifter på filer, som du ikke hoster af dig selv. Den eneste måde at administrere overskrifter på de filer, du nævnte (google analytics osv.), Er at være vært for dem lokalt. I dette tilfælde skal du også administrere deres opdateringer.

Generelt kan du matche filer i htaccess med deres filtyper, som denne:

 # Enable expirations ExpiresActive On # Default directive ExpiresDefault 'access plus 1 month' # Javascript ExpiresByType application/javascript 'access plus 1 year'  

Men hvis du vil indstille overskrift til en bestemt fil, skal du bruge filesmatch direktiv, ligesom

  FileETag None Header set Cache-Control 'max-age=604800, public, must-revalidate' Header set Expires 'Thu, 31 Dec 2020 20:00:00 GMT'  
  • Tak for hjælpen. Ja, du har ret. Også endnu et emne for mig. Hvis jeg er vært for dem på min egen server, og hvordan kan jeg så skrive i min .htaccess-fil. Forestil dig, at jeg har en js fil navngivet googleanalytics.js og så kan du venligst fortælle mig, hvordan man forbinder det i .htaccess fil.
  • Endnu en gang tak for dette klare svar. Jeg har to ting til at blive ryddet. Hvis det er muligt, bedes du opdatere dit svar med, hvordan skal jeg bruge FilesMatch hvis min googleanalytics.js gemt i public html/js/googleanalytics.js og kan du venligst nævne hvor mange dage det er godt at angive udløbsdatoer for ovenstående links. Det ville være en stor hjælp, hvis du kunne opdatere dit svar med det. Tak
  • 2 At hoste disse filer lokalt vil ikke nødvendigvis forbedre ydeevnen for dine besøgende på webstedet (Googles servere er hurtige og gør brug af CDN'er). At hoste disse filer lokalt betyder også, at du skal opdatere disse filer manuelt, hvis de ændres. Faktisk anbefaler Google ikke at gemme disse filer lokalt.
  • 2 "hvordan skal jeg bruge FilesMatch hvis min googleanalytics.js gemt i ... "- FilesMatch refererer kun til filnavnet, ikke filstien, så der er ikke noget at ændre. Hvis du målretter mod en enkelt fil, skal du sandsynligvis bruge den enklere Files direktiv i stedet - som ikke bruger en regex.
  • 1 Bemærk, at hardcoding af Expires header i .htaccess kan være problematisk, medmindre du i det væsentlige indstiller uendelig udløbstider. Selvom Cache-Control: max-age header prioriteres i alle moderne browsere.

Se løsningen her, som fungerer meget godt for mig.

  • Tak, det er meget nyttigt
  • 1 Svar her kræves for at være mere end bare links, da de ofte kan blive utilgængelige i fremtiden. Kan du opsummere det vigtige indhold fra dette link eller inkludere det som et tilbud? Tak.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger