Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Interesante
  • Titulli i modifikuar së fundi, përshpejtimi i indeksimit të Symfony dhe kërkimit. Mitet SEO: Gjithçka rreth titullit të modifikuar së fundit

Titulli i modifikuar së fundi, përshpejtimi i indeksimit të Symfony dhe kërkimit. Mitet SEO: Gjithçka rreth titullit të modifikuar së fundit

Në këtë artikull, ne do të konfigurojmë kokën më të rëndësishme të përgjigjes së serverit - Last-Modified, për shkak të së cilës ngarkesa në server do të ulet me 20-30%, dhe indeksimi i faqes tuaj do të përshpejtohet ndjeshëm. Ne gjithashtu do t'i mësojmë serverit tuaj të lëshojë një gabim 304 kur robot kërkimi i referohet faqes tuaj me titullin If-Modified-Since.

Pse na duhet titulli i modifikuar së fundi?

Para së gjithash, do të doja të diskutoja rëndësinë Titulli i modifikuar së fundi. Por, siç tregon praktika, së bashku me rëndësinë dhe domosdoshmërinë e tij ekstreme, ky titull disi harrohet universalisht dhe nënvlerësohet plotësisht padrejtësisht. Nëse lexoni rekomandimet Motorë kërkimi, i cili shpreh qartë dhe hapur rëndësinë e transmetimit të Last-Modified në kokë (data e ndryshimit të fundit të një faqeje të caktuar), atëherë nuk do të keni asnjë dyshim se kjo duhet bërë dhe sa më shpejt aq më mirë. Kjo është veçanërisht e vërtetë për burimet me trafik të lartë dhe të mesëm, me përmbajtje të përditësuar rregullisht. Megjithatë, faqet statike me 10 faqe mund të bëjnë pa këtë këtë funksion Nuk do të ketë ndonjë ndikim negativ apo pengesë për ju.

Kreu i modifikuar së fundi përmban datën dhe kohën e GMT kur faqja është modifikuar për herë të fundit.Çdo faqe ka datën e vet. Pothuajse çdo prej CMS-ve ekzistuese tani ruan datën kur faqet ose postimet janë redaktuar dhe data e përditësimit të faqes ndryshon gjithashtu kur dikush ka lënë një koment të indeksuar (gjithçka varet nga ju cilësime specifike). Por për disa arsye jo të gjitha sistemet moderne administratat parashikojnë dërgimin e të njëjtës datë modifikimi të faqes si titull dhe, për më tepër, nuk reagojnë në asnjë mënyrë ndaj titullit të marrë If-Modified-Since, por më shumë për këtë pak më vonë.

Fakti është se një robot kërkimi shpesh mund të shkojë në një sit të përditësuar rregullisht dhe të skanojë faqet e tij sipas përparësisë, ndonjëherë madje duhet të vendosni parametrin Crawl-delay në robots.txt në mënyrë që të zvogëloni pak aromën e tepërt aktive. robotët mbingarkojnë serverin fatkeq, dhe ndonjëherë Përkundrazi, njerëzit punojnë shumë për muaj të tërë pa parë asnjë rezultat, vetëm për të rritur frekuencën e vizitave të robotëve të kërkimit në faqe. Nëse një sajt i tillë nuk i tregon zvarritësit të kërkimit se cilat faqe janë ndryshuar për herë të fundit dhe nëse ato kanë ndryshuar fare që nga vizita e fundit, zvarritësi nga ana e tij do t'i kalojë faqet pa pushim sikur të kishin ndryshuar, megjithëse kjo mund të të mos jetë kështu. Dhe meqenëse numri i faqeve të ngarkuara në një vizitë të botit të kërkimit është i kufizuar, ai thjesht mund të mos arrijë te artikujt tuaj të rinj dhe të shkojë në shtëpi, pasi ka shfrytëzuar kufirin në faqet e vjetra që nuk janë përditësuar fare. Pa dyshim, herët a vonë skaneri do të vazhdojë të arrijë në faqe të reja, por do të jetë shumë më vonë. Kjo duhet të mbahet mend si një aksiomë, dhe kushdo që nuk e beson lexon për modifikimin e fundit në faqen e internetit Yandex.

E njëjta gjë vlen edhe për vizitorët e zakonshëm të faqes, sepse nëse artikulli juaj i vjetër është në cache-në lokale dhe serveri nuk dërgon kokën 304 Not Modified, atëherë ai do të ngarkohet përsëri dhe përsëri, çdo herë nga e para, duke rritur kështu ngarkesën në serverin. Nëse herë pas here vizita e fundit disa faqe dhe duke e shtuar atë në cache, asgjë nuk ka ndryshuar, ju duhet që serveri juaj të dërgojë një kokë 304 Not Modified në përgjigje dhe të ndalojë gjenerimin e mëtejshëm të faqes. Pse të ngarkoni faqet e vjetra çdo herë nëse asgjë nuk ka ndryshuar në to? Përmbajtja e tyre mund të merret nga cache. Elementare dhe efektive!

Përgjigja e serverit në kokën If-Modified-Since

Ne iu afruam pa probleme të dytit, jo më pak pikë e rëndësishme- reagimi i serverit tuaj ndaj titullit If-Modified-Since dërguar nga robotët e kërkimit. Ata e bëjnë këtë në mënyrë që të kontrollojnë nëse faqja juaj ka ndryshuar që nga vizita e fundit dhe në fakt e përcjellin pikërisht këtë kohë në titull. Pastaj serveri juaj duhet të përputhet me kohën Përditësimi i fundit faqen në të cilën ka hyrë roboti dhe kohën e vizitës së tij të fundit, të cilën ai ju tregon. Nëse asgjë e re nuk është shfaqur në faqe që atëherë, serveri duhet të përgjigjet me një kokë 304 të pa modifikuar dhe të ndalojë transferimin e të dhënave duke dalë nga skripti ekzekutues (në rastin e PHP, ky është funksioni dalje). Pasi ka marrë një përgjigje 304, roboti i kërkimit do të kuptojë se nuk ka asgjë më shumë për të bërë këtu tani për tani dhe do të shkojë në Faqja tjetër, duke kursyer kështu shumë kohë.

Falë kësaj, indeksimi i faqes tuaj është dukshëm më i shpejtë dhe gjithashtu zvogëlon ngarkesën e panevojshme në server.

Do të doja të shtoja se në një nga artikujt tanë ne shqyrtuam një tjetër mënyrë interesante përshpejtoni indeksimin e faqeve. Aty po flisnim konkretisht për faqet në Motori WordPress dhe për këtë kemi përdorur serverë të veçantë ping, adresat e të cilëve kemi dhënë dhe kemi treguar se çfarë duhet bërë me ta.

Funksioni PHP

Pra, le të shkojmë drejtpërdrejt te pika dhe të shikojmë funksionin e zhvilluar nga specialistët tanë dhe të testuar me sukses në disa site:

Funksioni lastModified($gmdate) ( $IfModifiedSince = i rremë; nëse (isset($_ENV["HTTP_IF_MODIFIED_SINCE"]) ose është vendosur($_SERVER["HTTP_IF_MODIFIED_SINCE"])) ($IfModifiedSince($IfModifiedSince(HTTP_IFS=HTTP_IFSince"(HTTP_IFS=HTTP_strub) INCE " "] ? $_ENV["HTTP_IF_MODIFIED_SINCE"] : $_SERVER["HTTP_IF_MODIFIED_SINCE"]), 5)); ) nëse ($IfModifiedSince && $IfModifiedSince >= strtotime($gmdate[OTSOL)_SER" ($gmdate) ] ." 304 Nuk është modifikuar"); dalje; ) header ("Ndryshuar i fundit: ".$gmdate); )

Dua të theksoj se funksioni merr datën dhe orën GMT si argumentin e tij të vetëm - gmdate() , dhe jo data (), ju lutem mos u ngaterroni. Argumenti që merr funksioni është data dhe ora kur faqja është modifikuar për herë të fundit. Ku do ta merrni varet nga sistemi i administrimit, për shembull, në WordPress mund ta merrni si kjo:

$WordpressPageLastModified = get_the_modified_date("r");

Po sikur të mos ketë sistem administrimi dhe po flasim për në lidhje me një faqe interneti statike në të cilën ndryshimet bëhen manualisht, drejtpërdrejt në kod. Në këtë rast, ne gjithashtu dolëm me një zgjidhje për të dërguar datën e ndryshimit të saj të fundit në kokë:

$StaticPageLastModified = gmdate("D, d M Y H:i:s \G\M\T", koha e skedarit($_SERVER["DOCUMENT_ROOT"]."/index.php"));

në këtë rast ne përdorim funksionin filemtime (), i cili kthen kohën kur skedari është redaktuar për herë të fundit në formatin Unix time.

Meqë ra fjala, ne nuk ju rekomandojmë ta bëni këtë datë nga koka juaj, edhe nëse faqja juaj ka mbetur statike gjatë gjithë kësaj kohe. Ky truk nuk do të çojë në asgjë të mirë, sepse... motorët e kërkimit do të vazhdojnë të kontrollojnë nëse faqja ka ndryshuar në të vërtetë dhe mund t'ju ndëshkojë për mashtrimin e tyre.

Kontrollimi i përgjigjes së serverit

Ka disa shërbime në internet për të kontrolluar përgjigjen e serverit, por, siç rezulton, jo të gjithë e bëjnë atë në mënyrë korrekte dhe jo të gjitha ju lejojnë të gjurmoni sjelljen e serverit tuaj në përgjigje të transmetimit të "If-Modified-" Që nga titulli, por ne duhet të sigurohemi që serveri të dërgojë kokën 304 Not Modified nëse faqja nuk është përditësuar që nga vizita e fundit.

Ju mund të kontrolloni përgjigjen e serverit në faqen tonë të internetit, por për pamjen më të plotë ne ende rekomandojmë përdorimin e shërbimit zyrtar Yandex. Aty mund të specifikoni të gjitha titujt e nevojshëm, si dhe të zgjidhni një kohë fiktive të vizitës së fundit. Yandex do t'ju lejojë gjithashtu të zgjidhni llojin e botit të kërkimit, por për të përdorur këtë mjet ju duhet të shtoni dhe konfirmoni të drejtat për të menaxhuar faqen në Yandex.Webmaster, të cilat, për të qenë të sinqertë, duhet të bëhen gjithmonë së pari.

Pse të konfiguroni kokën e modifikuar së fundi. Le të përpiqemi të kuptojmë se si të konfigurojmë kokën e modifikuar së fundi sa më shpejt dhe thjesht të jetë e mundur.

Për të filluar, unë do të them se kjo është e nevojshme kryesisht për të zvogëluar ngarkesën në server dhe për të shpejtuar indeksimin e faqeve. Kjo është arsyeja pse është e nevojshme të konfiguroni kokën e modifikuar së fundi, veçanërisht për burime të mëdha me sasi e madhe faqet.

Qëllimi i këtij titulli është t'i tregojë klientit (shfletuesit ose motorit të kërkimit) informacion rreth ndryshimet e fundit faqe specifike. Klienti dërgon titullin If-Modified-Since në server. Nëse nuk zbulohen ndryshime në faqe, atëherë titulli "304 nuk është modifikuar" kthehet nga serveri. Megjithatë, faqja nuk ngarkohet.

Nëse janë bërë ndryshime, kjo do të merret parasysh dhe serveri do të kthejë kokën "200 OK" (faqja do të ngarkohet me përmbajtje të përditësuar).

Vendosja e saktë e modifikimit të fundit ofron përfitimet e mëposhtme:

  • rezultatet e kërkimit shfaqin datën kur përmbajtja e faqes është përditësuar për herë të fundit;
  • Kur renditen në një motor kërkimi sipas datës, faqet zënë pozicione më të larta;
  • Indeksimi i faqeve është përshpejtuar ndjeshëm.
  • Pse robotët indeksojnë faqet me konfigurim të fundit të modifikuar më shpejt?

    Përgjigja është e thjeshtë: nëse janë ndryshuar vetëm 20 faqe në faqe, atëherë roboti nuk ka nevojë të indeksojë të gjitha 500 në kërkim të përmbajtjes së re, pasi Last-Modified do të tregojë faqet me ndryshime.

    Modifikimi i fundit është veçanërisht i rëndësishëm për burimet me një numër të madh faqesh, sepse robotit i jepet kohë për të zvarritur çdo faqe. sasi e kufizuar kohë, dhe ai mund të mos ketë kohë për të arritur faqet e nevojshme.

    Si të konfiguroni Last-Modified

    Së pari ju duhet të kontrolloni nëse e keni të konfiguruar këtë kokë. Për ta bërë këtë, mund të përdorni shërbimet varvy.com, last-modified.com ose tools.seo-auditor.com.ru. Nëse kontrolli tregon mungesën e një titulli, atëherë duhet të filloni ta konfiguroni atë.

    Nëse keni një sit statik, atëherë për secilën faqe duhet të shkruani kodin që shihni në ekran:

    Pas çdo ndryshimi të përmbajtjes, ne ndryshojmë manualisht datën në kod. Dhe çfarë ndodh çdo herë, më pyet? Po, nëse faqja është statike.

    Nëse faqja është dinamike, atëherë ne përdorim cilësimin në PHP. Shpesh haset kodi i mëposhtëm:

    header("Modifikimi i fundit: " . date('r',strtotime($post->post_modified)))

    Duhet të shtohet në header.php. Por do të funksionojë vetëm për postimet dhe faqet dhe nuk do të funksionojë në faqen kryesore. Gjithashtu nuk është i vlefshëm për taksonomitë, arkivat ose numërimin e komenteve të reja.

    $LastModified_unix = 1294844676;

    $Modifikimi i Fundit = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);

    $IfModifiedSince = false;

    nëse (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))

    $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));

    nëse (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))

    $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));

    Nëse ($IfModifiedSince && $IfModifiedSince >= &LastModified_unix) (

    header($_SERVER['SERVER_PROTOCOL'] . '304 nuk është modifikuar');

    header('Modifikimi i fundit: ' . $LastModified);

    Ju gjithashtu mund të personalizoni kokën duke shkruar dy rreshta në skedarin .htaccess:

    RewriteRule .* -

    RewriteRule .* -

    Por në këtë rast, duhet të kontrolloni nëse do të ketë ndonjë problem në anën e pritjes.

    Për të mos shkruar kode, mund të përdorni zgjidhje të gatshme për konfigurimin e modifikimit të fundit. Për shembull, për CMS WordPress ka shtojca Clearfy dhe Last Modified Timestamp. Konfigurimi mund të bëhet duke përdorur shtojcën WP Super Cache. Për ta bërë këtë, në cilësimet e avancuara, aktivizoni artikullin "Gabim 304" (mbështetja për përgjigjet 304 është çaktivizuar si parazgjedhje, pasi mund të shfaqen probleme në disa sajte pritëse). CMS-të e tjera kanë gjithashtu shtojcat e tyre, ose, si mjeti i fundit, mund të porosisni një shtojcë nga një programues.

    Duhet të kuptohet se cilësimi i modifikuar së fundi nuk është gjithmonë i dobishëm (për shembull, kur çdo faqe ka një bllok informacioni "nga fundi në fund" me përmbajtje që ndryshon rregullisht të së njëjtës përmbajtje). Në këtë rast, motorët e kërkimit mund të ndalojnë së perceptuari informacionin si të ri dhe do të vizitojnë faqen tuaj më rrallë.

    Në raste të tjera, duke konfiguruar Last-Modified, ju merrni:

    • kursimet e trafikut;
    • përshpejtoni faqen e internetit;
    • ndiqni rekomandimet e motorëve të kërkimit Google dhe Yandex, gjë që shpejton ndjeshëm indeksimin dhe rrit dukshmërinë e faqeve në kërkim. Kjo është veçanërisht e dukshme në burimet me një numër të madh faqesh.

    Shumë zhvillues, kur krijojnë faqe në internet, harrojnë kokën shumë të dobishme Last-Modified, falë të cilit mund të optimizoni ngarkimin e faqeve në internet dhe të lehtësoni punën e robotëve të kërkimit. Më pas do të përpiqem të plotësoj këtë boshllëk të bezdisshëm.

    Për çfarë shërben titulli i modifikuar së fundi?

    Funksioni i kokës, siç mund ta merrni me mend nga emri, është të informojë klientin për datën e modifikimit të fundit të dokumentit të internetit. Bazuar në specifikimin RFC 2616, një klient mund të "pyet" një server në internet nëse një faqe ka ndryshuar që nga një datë e caktuar duke i dërguar serverit një kokë "Nëse-Modifikuar-Që". Nëse faqja nuk ka ndryshuar, serveri kthen vetëm kokën “304 Not Modified”, përndryshe, serveri kthen kokën “200 OK” dhe trupin e faqes. Siç mund ta shihni, ka një përfitim si për serverin ashtu edhe për klientin: shfletuesi nuk do ta ngarkojë faqen pa pushim, dhe serveri në internet do të sigurojë më pak të dhëna.

    Cilat faqe janë të indeksuara më mirë? Dinamik apo statik?

    Nja dy vjet më parë, pati një debat midis SEO-ve se cilat faqe janë të indeksuara më mirë? Dinamik, i shkruar për shembull në PHP, ose statik, pa përdorimin e gjuhëve programuese. Njohja për kokën e modifikuar së fundi mund t'i përgjigjet kësaj pyetjeje. Gjë është se vetë serveri në internet përpunon kokën "If-Modified-Since" nëse skedari është statik. Në rastin e gjenerimit dinamik të faqeve, e gjithë përgjegjësia për përgjigjen bie mbi gjuhën e programimit dhe zhvilluesin. Dhe meqenëse zhvilluesi shpesh nuk është i interesuar për këtë çështje, titujt nuk jepen fare.

    Si e shpejton titulli i modifikuar së fundi indeksimin e kërkimit?

    Është e thjeshtë, siç shkruhet në ndihmën e Yandex, "roboti nuk do të jetë në gjendje të marrë informacion nëse faqja e faqes është përditësuar që nga indeksimi i fundit. Dhe duke qenë se numri i faqeve që roboti merr nga faqja në një vizitë është i kufizuar, faqet e ndryshuara do të riindeksohen më rrallë."

    Imagjinoni. Ekziston një faqe interneti me 10 mijë faqe. Faqja është e shkruar në PHP. Kreu i modifikuar së fundi nuk është kthyer saktë. Roboti i kërkimit nuk mund të marrë informacion nëse një faqe sajti është përditësuar që nga indeksimi i fundit. Çfarë po bën ai? Indekson të gjitha faqet!!! Dhe jo vetëm ato që kanë ndryshuar.
    Sigurisht! Shumë sajte përdorin Hartën e Faqes. Por Sitemap është një rekomandim, një ndihmë për optimizuesin e motorit të kërkimit. Nuk mund të jetë një zëvendësim për kokën e modifikuar së fundi!

    Vendosja dhe trajtimi i kokës së modifikuar së fundi në php

    Në mënyrë që serveri i uebit të kalojë kokën If-Modified-Since në php-backend, ju duhet t'i tregoni për këtë!

    Për kombinimin nginx + php është kështu:

    vendndodhja ~ \.php$
    {

    nëse_modified_nga off;

    Fastcgi_pass fcgi;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /<путь >/web$fastcgi_skript_emri;

    fastcgi_pass_header Last-Modified;
    përfshijnë fastcgi_params;
    }

    Për kombinimin apache + php, si kjo

    #Nëse-Modifikuar-Që ( nëse php nuk është i instaluar si cgi, atëherë komentoni rreshtat më poshtë)
    RewriteRule .* -
    RewriteRule .* -

    * Ky kod burim u theksua me theksuesin e kodit burimor.


    Nëse php funksionon si modul, atëherë nuk keni nevojë të konfiguroni asgjë!

    Kod i thjeshtë php për trajtimin e një kërkese If-Modified-Since,

    $qtime = është vendosur ($_SERVER["HTTP_IF_MODIFIED_SINCE" ])? $_SERVER["HTTP_IF_MODIFIED_SINCE" ]:"" ;

    $modified = substr(gmdate("r" , $timestamp), 0, -5)."GMT" ;

    nëse ($hdr == $ndryshuar)
    {
    header ("HTTP/1.1 304 Nuk është modifikuar");
    header("Modifikimi i fundit: $modified");
    dalje ();
    }
    header("Modifikimi i fundit: $modified");
    //render

    * Ky kod burim u theksua me theksuesin e kodit burimor.

    Si të trajtoni kërkesën If-Modified-Since në Symfony?

    Symfony tashmë ka një mekanizëm të përpunimit të kokës. Gjithçka që zhvilluesi duhet të bëjë është të kalojë një kokë në objektin sfWebResponse. Nëse e specifikoni, korniza do të bëjë gjithçka vetë.
    $datestamp = koha();
    $response->setHttpHeader("Modifikimi i fundit" , $response->getDate($datesamp));

    * Ky kod burim u theksua me theksuesin e kodit burimor.


    Meqenëse faqja zakonisht përmban përmbajtje të ndryshme, unë shkrova një metodë që vendos më të fundit të titujve të transmetuar!
    funksioni publik statik setModifiedLastModified($dateamp)
    {
    $response = sfContext::getInstance()->getResponse();
    $kërkesë = sfContext::getInstance()->getRequest();

    nëse (është_array ($datestamp))
    {
    rsort($datestamp, SORT_NUMERIC);
    $datestamp = $datestamp;
    }

    if (!$response->hasHttpHeader("Modifikimi i Fundit" ))
    {
    $response->setHttpHeader("Modifikimi i fundit" , $response->getDate($datesamp));
    }
    tjetër
    {
    $origLastModified = strtotime($response->getHttpHeader("Modifikimi i Fundit" ));
    nëse ($origLastModified< $datestamp)
    $response->setHttpHeader("Modifikimi i fundit" , $response->getDate($datesamp));
    }
    }

    * Ky kod burim u theksua me theksuesin e kodit burimor.


    Është shumë i përshtatshëm për t'u përdorur nëse, për shembull, faqja përmban 3 videot e fundit, 3 artikujt e fundit dhe diçka tjetër. Duke ngarkuar çdo model nga baza e të dhënave, ne mund të thërrasim metodën dhe në fund të marrim datën më të fundit të modifikimit në përgjigje.
    Për të interesuarit, kodi i përpunimit të kokës është në klasën sfCacheFilter.class.php.

    Si përfundim, do të doja të them se përdorimi i kokës së modifikimit të fundit nuk është gjithmonë i justifikuar. Për shembull, nëse ka 5 mijë faqe në një faqe dhe secila përmban të njëjtin bllok me përmbajtje që ndryshon shpesh, përdorimi i një titulli do të jetë i padobishëm! Në këtë rast, ju mund të jepni vetëm tituj të ndryshëm për klientët dhe robotët e kërkimit. Por sa për mua, mashtrimi i robotëve nuk çon në asgjë të mirë. Epo, ose hiqni këtë bllok;).

    Ju mund të kontrolloni faqen për përpunimin e duhur të kokës

    Ka shumë mite të ndryshme që qarkullojnë në fushën e optimizimit të motorëve të kërkimit në uebfaqe (SEO). Disa prej tyre kanë një bazë, disa prej tyre kanë ardhur nga askund. Në këtë shënim do të shikojmë njërën prej tyre - duke përdorur kokën e përgjigjes së modifikuar së fundit.

    Pak kohë më parë ne morëm një dokument të titulluar "Ingate Rekomandime për Web Studios në faqet e promovuara". Dhe një nga "rekomandimet" ishte si vijon:

    Pas një ridizajnimi ose në një faqe të re që po zhvillohet, duhet të tregohet data e modifikimit të fundit të faqeve të faqes (Ndryshimi i fundit).

    Për të shtuar informacion në lidhje me datën e modifikimit të fundit të faqeve në një faqe interneti PHP, duhet të futni një skript në fillim të kodit burimor të secilës faqe.

    header("Modifikimi i fundit: " . date("D, d M Y H:i:s", koha()) . "GMT");
    ?>

    Ishte kjo marrëzi e egër, kjo marrëzi e plotë dhe një kod sinqerisht i çmendur që më shtyu të shkruaj këtë shënim. Këtu do të përpiqem të shpjegoj se çfarë është Last-Modified, pse nevojitet dhe si e përdorin shfletuesit dhe motorët e kërkimit.

    Çfarë është modifikuar së fundi

    Kur transmeton informacion te klienti (shfletuesit ose roboti i kërkimit), serveri në internet raporton mjaft të dhëna shtesë. Ato mund të shihen në tastierën e shfletuesit, për shembull:

    konfiguroni serverin që të lëshojë titujt e saktë të përgjigjes (për shembull, nëse faqja nuk ekziston, lëshoni një gabim 404 dhe nëse merret një kërkesë If-Modified-Since, atëherë lëshoni një kod 304 nëse faqja nuk është ndryshuar që nga data e specifikuar në kërkesë).

    Ju gjithashtu mund të shihni se nëse serveri nuk i përgjigjet në asnjë mënyrë një kërkese të kushtëzuar GET, atëherë nuk ndryshon nga një kërkesë e rregullt. Kjo do të thotë, koka e modifikimit të fundit me kohën aktuale, e cila gjithashtu është formuar gabimisht (përshëndetje Integgate!) nuk nevojitet fare!

    Pra, a është i nevojshëm modifikimi i fundit apo jo?

    Në përgjithësi e nevojshme. Por është e rëndësishme të kuptohet se nuk është vetë titulli që luan ndonjë rol, por i gjithë skenari i kërkesës së kushtëzuar, i cili duhet të zbatohet plotësisht nga faqja. Është në këtë rast që ne do të marrim një shpejtësi të lartë të indeksimit të faqes.

    Por shpesh është shumë e vështirë për ta zbatuar këtë në një CMS të gatshme. Kjo mund të kërkojë ndryshime mjaft të rëndësishme në kodin e vetë CMS.

    Edhe pse për një numër të CMS-ve kjo mund të arrihet duke aktivizuar cachimin e faqeve. Nëse CMS ruan faqet, duke krijuar dhe shërbyer skedarë në thelb statikë, atëherë vetë serveri i uebit do t'i përgjigjet saktë kërkesave të kushtëzuara. Për shembull, në WordPress kjo mund të arrihet duke përdorur shtojcën WP Super Cache:

    Le ta kontrollojmë në veprim. E aktivizova këtë shtojcë, hapa shfletuesin në modalitetin anonim dhe bëra dy kërkesa për të njëjtën faqe. Shihet qartë se përgjigja e dytë është e saktë - 304 Pa modifikuar:

    Në vend të një përfundimi

    Kështu, ne kemi trajtuar kokën e modifikuar së fundi. Së pari, ai duhet të përcjellë informacion në lidhje me datën dhe kohën kur dokumenti është modifikuar në të vërtetë. Së dyti, përgjigja e serverit ndaj një kërkese të kushtëzuar me kokën If-Modified-Since është jashtëzakonisht e rëndësishme.

    Epo, dëgjoni më pak SEO-të që nuk i dinë bazat se si funksionon interneti.

    Kuptimi nëse modifikohet që nga ajo kohëështë se motori i kërkimit (në internet shkruajnë që këtë mund ta bëjnë edhe shfletuesit, nuk e kam kontrolluar) kur hyjnë në faqe lexojnë titullin e modifikuara e fundit(koha e modifikimit të fundit të dokumentit). Herën tjetër kur hyni, motori i kërkimit dërgon datën e mbajtur mend, detyra e sajtit është të kontrollojë nëse faqja është përditësuar që nga hera e mëparshme dhe, nëse datat përputhen, përgjigjeni me një titull 304 Nuk është modifikuar dhe ndaloni ekzekutimin e skenarit. Këto tituj do të rrisin shpejtësinë e riindeksimit të faqes.

    Si të shtoni një titull nëse është modifikuar që atëherë

    Nëse faqja juaj nuk e ka tashmë titulli nëse është modifikuar që nga ajo kohë, modifikoni skedarin:
    /inc/_func.php gjeni (~220+ rresht)

    ) if(!getvars())( ... ) Shto më poshtë që të duket kështu: ) if(!getvars())( ... )else( $a=array(); if(isset($a [$g ->artikull(0).$g->artikull(1).$g->artikull(2)])) $t=time();//TIME;//në më vonë other( $t= filemtime($g->skedar); if(isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"])>=$t)( header("HTTP/1.1 304 Nuk është modifikuar"); die( ); ) ) header("Modifikimi i fundit: ".gmdate("D, d M Y H:i:s \G\M\T",$t)); )

    Nëse faqja ka seksione dinamike: rishikime, katalog produktesh, etj. shtoni emrat e tyre në grupin $a, mund t'i merrni nga shiriti i adresave të shfletuesit ose në menunë e redaktimit të seksionit të panelit të kontrollit --> lidhje.

    $a=array("rishikime"=>1); $a=array("rishikime"=>1,"katalog"=>1);

    Si të kontrolloni 304 që nuk është modifikuar dhe nëse është modifikuar që atëherë

    1) Mund të kontrolloni 304 jo të modifikuar dhe nëse është modifikuar që nga titujt duke përdorur përgjigjen e serverit që kontrollon shërbimin në webmasterin Yandex https://webmaster.yandex.ru/server-response.xml. Kontrolloni kutinë "shtoni titullin "If-Modified-Since" dhe vendosni datën atje një orë më parë duhet të japë kodin e statusit https: "304 nuk është modifikuar". Tjetra, vendosni datën në një ditë më parë - marrim kodin e statusit https: "200 OK". Hurray gjithçka funksionon.
    Natyrisht, faqja e testimit duhet të ndryshohet përpara testimit.


    2) Një metodë më e thjeshtë https://last-modified.com/ru/if-modified-since.html. Ne fusim adresën dhe voila, gjithçka do të shkruhet atje në Rusisht, çfarë u gjet dhe çfarë nuk u gjet.

    304 pa modifikuar nuk u gjet

    Drejtimi http nëse është modifikuar që nga ajo kohë do të gjendet në çdo rast, por statusi i të dytit mund të rezultojë i tillë: 304 pa modifikuar nuk u gjet, sipas metodës së dytë të verifikimit, sipas metodës së parë në Yandex, thjesht do të tregojë 200-tën.
    Me shumë mundësi problemi është se titujt nuk transmetohen përmes serverit proxy nginx 304 të modifikuar së fundi ose Apache nuk transmeton.

    Unë nuk shoh një problem të tillë tani, me Apache 2.2.27, por vetëm në rast, për kombinimin Apache + php, kjo mund të zgjidhet në dy mënyra nëse php nuk është instaluar si cgi:

    Htaccess në fund e sjellim në formë: 1) Vetëm në php RewriteRule (.*) index.php?q=$1 2) Për të gjithë skedarët RewriteRule (.*) index.php?q=$1 RewriteRule .* - # RewriteRule .* -

    304 nginx i pa modifikuar

    Këtu është pak më e ndërlikuar; në mënyrë që titulli të transmetohet në fund, duhet ta tregoni për të. Nëse nginx funksionon si një server proxy, fillimisht do të provoja të kaloja në HTTP 1.1 - proxy_http_version 1.1; Nginx komunikon me Apache duke përdorur 1.0 si parazgjedhje. Por për shembull, në një nga serverët e mi nuk mund ta arrija këtë në një kohë të arsyeshme; përfaqësuesi për shpërndarjen statike ishte një modul për sipanelin Nginx Admin (v4.8 Stable). Vendosa të heq thjesht modulin me pjesën e përparme.

    Vendndodhja / ( chunked_transfer_encoding off; proxy_http_version 1.1; proxy_pass https://localhost:9001; proxy_buffering off; proxy_set_header X-Real-IP $remote_addr; Proxy_set_header Host $proxy_upgraderxet; jon "upgrade"; Përmirësimi i proxy_set_header foleja e internetit; #?)

    Nëse po flasim për një server të veçantë për një faqe interneti, atëherë konfigurimet mund të jenë të ndryshme:

    Vendndodhja ~ \.php$ ( if_modified_since off; #Në faqen e internetit nginx, dikush shkroi se # kjo është tashmë e çaktivizuar për skriptet, ky flamur çaktivizon kontrollin e brendshëm, provo.. fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME / path/ $fastcgi_script_name; fastcgi_pass_header Modifikimi i fundit; përfshin fastcgi_params; )

    Për momentin nuk kam ku të eksperimentoj, kështu që e dërgoj më tej në Google dhe kërkoj:

    Proxy_set_header If-Modified-Since $http_if_modified_since; proxy_pass_header If-Modified-Since; fastcgi_param Nëse-Modified-Since; nënvizat_në_titujt në; ignore_invalid_headers off;

    Nëse dikush ka konfigurime pune, shkruaj postë Unë do ta postoj.

    Artikujt më të mirë mbi këtë temë