"Den säkraste koden är den som aldrig skrivs"
SEO-vänliga HTML-genererande ramverk?
Visa signatur
Skrivet av WebbkodsLärlingen:
Tanken är att i takt med att en HTML-baserad webbplats växer så kommer du behöva inkludera nya länkar i exempelvis nav-elementet. Då vill du ju inte behöva gå in i varje enskild HTML-fil för att uppdatera nav-elementet där. PHP som jag förstår det renderar ju HTML-kod på serversidan och sedan skickar som HTTP-svar men således finns det inga HTML-filer på serversidan för "web crawlers" att nosa i? Men samtidigt förstår jag inte då hur WordPress-bloggartiklar (PHP-baserat) kan lyckas "web crawlas" och därmed hamna på sökresultatsidor?
Här har du en tankevurpa. En crawler kan inte gå inte igenom filer på din server (det hade ju varit ett enormt säkerhetshål!). Som vilken annan HTTP-klient som helst får den nöja sig med HTTP-svaren och där kan den ju omöjligt veta om svaret är statiskt eller dynamiskt genererat (med till exempel PHP). Det ser likadant ut för klienten om du dynamiskt inkluderar samma nav.html
i flera sidor med PHP eller kopierar innehållet i nav.html
till alla dina undersidor och serverar allt statiskt.
Visa signatur
Spela Swemantle! Du vet att du vill.
Ibland har jag fel, men då är det någon annans fel.
Citera flera
Citera
(4)
Fallstudie...
Kollegorna byggde typ 42 sajter åt ett större företag. Varje sajt hade 1-3 språk (men typ ett dussin språk totalt) och allt genererades som statiska HTML-sidor. Sajterna blev skitsnabba att ladda eftersom de kunde cachas helt och hållet på CDN, vilket ger bonus på SEO-fronten. Ramverket som genererar sidorna är Gatsby.
Backenden är irrelevant, men vi kan låtsas att det är en vanlig högnormaliserad relationsdatabas, där varje liten del av alla sidtyper är sitt eget lilla dataobjekt, dock ligger alla språk direkt på objektet. Samma databas används för alla sajter, eftersom man vill ha möjligheten att återanvända all information på alla sajter och på alla sidtyper. Att lägga till ett visst objekttyp på en viss sidtyp ska naturligtvis gå att göra helt dynamiskt.
Allt är frid och fröjd till kunden kommer på att de vill kunna publicera saker snabbt. Det är ju rimligt. Jahapp, man har ändrat ett objekt någonstans nere i datahierarkin, men på vilka sidtyper används objektet? Och på vilka av de 42 sajterna används just det objektet på en sida av dessa sidtyper?
Det är inte läge att generera om rubbet varje gång, det kostar icke-triviala pengar i processortid, eftersom man lagt alltihop i molnet. Ramverket har inget riktigt stöd för att bara generera om rätt saker, det begriper sig inte riktigt på just den här backenden så bra (det är ett generellt verktyg) att den kan göra så smarta saker. Att skriva "databasfrågor" för varje objekttyp är varken kul eller speciellt underhållsvänligt -- det krävs ju en specifik fråga per sidtyp-objekttyp-kombination, vilka såklart är dynamiska på tre ledder (sidtyper kan tillkomma, objekttyper kan tillkomman och användningen av objekttyperna förändras). Hierarkin är naturligtvis inte lika djup överallt. Eftersom alla språk ligger på objektet så kan man inte härleda ändringen till språknivån, så man får generera om sidor på sajter som har objektet men inte det ändrade språket.
Sedan kommer kunden på att de vill kunna köra preview på de objekt de har ändrat, innnan de publicerar dem. Rimligt, kan man tycka, speciellt som det tar en halv evighet att publicera om något. Samma fråga igen, vilken sida, vilket språk, vilken sajt är det man vill titta på? Och det råkar vara så att man har valt att lägga grejerna i ett generellt moln i stället för ramverksleverantörens SaaS, där det finns bra stöd för detta.
Nå, vi är ju konsulter, det vi är bra på är att ta betalt för fulhackade lösningar. Lös problemet.
Lärdomen är att generering av statiska sidor kan vara riktigt bra. Om man kommer överens med kunden om att man ska köra genereringen batchvis ganska sällan - och om man har en lösning på preview-problematiken.
Senast redigerat
Citera flera
Citera
(2)
Skrivet av KAD:
Fallstudie...
Kollegorna byggde typ 42 sajter åt ett större företag. Varje sajt hade 1-3 språk (men typ ett dussin språk totalt) och allt genererades som statiska HTML-sidor. Sajterna blev skitsnabba att ladda eftersom de kunde cachas helt och hållet på CDN, vilket ger bonus på SEO-fronten. Ramverket som genererar sidorna är Gatsby.
Backenden är irrelevant, men vi kan låtsas att det är en vanlig högnormaliserad relationsdatabas, där varje liten del av alla sidtyper är sitt eget lilla dataobjekt, dock ligger alla språk direkt på objektet. Samma databas används för alla sajter, eftersom man vill ha möjligheten att återanvända all information på alla sajter och på alla sidtyper. Att lägga till ett visst objekttyp på en viss sidtyp ska naturligtvis gå att göra helt dynamiskt.
Allt är frid och fröjd till kunden kommer på att de vill kunna publicera saker snabbt. Det är ju rimligt. Jahapp, man har ändrat ett objekt någonstans nere i datahierarkin, men på vilka sidtyper används objektet? Och på vilka av de 42 sajterna används just det objektet på en sida av dessa sidtyper?
Det är inte läge att generera om rubbet varje gång, det kostar icke-triviala pengar i processortid, eftersom man lagt alltihop i molnet. Ramverket har inget riktigt stöd för att bara generera om rätt saker, det begriper sig inte riktigt på just den här backenden så bra (det är ett generellt verktyg) att den kan göra så smarta saker. Att skriva "databasfrågor" för varje objekttyp är varken kul eller speciellt underhållsvänligt -- det krävs ju en specifik fråga per sidtyp-objekttyp-kombination, vilka såklart är dynamiska på tre ledder (sidtyper kan tillkomma, objekttyper kan tillkomman och användningen av objekttyperna förändras). Hierarkin är naturligtvis inte lika djup överallt. Eftersom alla språk ligger på objektet så kan man inte härleda ändringen till språknivån, så man får generera om sidor på sajter som har objektet men inte det ändrade språket.
Sedan kommer kunden på att de vill kunna köra preview på de objekt de har ändrat, innnan de publicerar dem. Rimligt, kan man tycka, speciellt som det tar en halv evighet att publicera om något. Samma fråga igen, vilken sida, vilket språk, vilken sajt är det man vill titta på? Och det råkar vara så att man har valt att lägga grejerna i ett generellt moln i stället för ramverksleverantörens SaaS, där det finns bra stöd för detta.
Nå, vi är ju konsulter, det vi är bra på är att ta betalt för fulhackade lösningar. Lös problemet.
Lärdomen är att generering av statiska sidor kan vara riktigt bra. Om man kommer överens med kunden om att man ska köra genereringen batchvis ganska sällan - och om man har en lösning på preview-problematiken.
Det låter ju som riktiga klåpare som inte inser att man behöver ett CMS för ett sådant upplägg. Tjänstefel. Jag hade inte betalat en krona som beställare.
Citera flera
Citera
(3)
Hårdvara
Mjukvara
- 30 / 5 Discord ändrar design – vill få tillbaka spelfokuset 12
- 29 / 5 Nu kan Windows läsa text i Android-foton 12
- 29 / 5 Laser, speglar och rök bakom Windows 10:s skrivbordsbild 9
- 28 / 5 Google höjer pristaket på Play-butiken med 150 procent 14
- 27 / 5 Microsoft avslöjar de verkliga systemkraven för Windows 11 36
Datorkomponenter
Ljud, bild och kommunikation
- Dator + byggdamm = farligt?7
- Snart kan du stänga av HDR i Netflix35
- AI-generera dina egna serier med Showrunner27
- Google erkänner brister i AI Overview11
- Tips på nytt grafikkort, bättre än 1660 Super?12
- Underväldigande prestanda Asus Rog Strix Scar 15 2022 (i9 12900H, 32gb 4800mhz DDR5, RTX 3070Ti)6
- Läsplatta och biblioteksstöd107
- Vad lyssnar du på just nu?14018
- Överprisad begagnad speldator med defekta komponenter från butik40
- Möten på jobbet, vad tycker ni om dessa?19
- Säljes Ryzen 7 3700x / 3070ti gaming OC + 34” ultrawide skärm
- Säljes Fallout 76 Power Armor Edition
- Säljes Fallout 4 Pip-Boy Edition PC
- Säljes Lian-li dk-05f skrivbordschassi
- Säljes Fallout 3 Survival Edition PC
- Säljes Func gaming tnagentbord
- Säljes Keyboards, Streaming Mic, Headset
- Säljes Dell Alienware AW2523HF 360 hz IPS 1920x1080
- Säljes DJI Mic, Thermalright axp-100 full copper, 2st Minirig 3
- Säljes Pulsar Xlite V3 Mini & EGG EM-C
- Laptop med AR-glasögon i stället för skärm kan nu förbeställas14
- AI-generera dina egna serier med Showrunner27
- SweClockers Noobbyggarguide - Del 4: Aggressivt aggregat4
- Google erkänner brister i AI Overview11
- Snart kan du stänga av HDR i Netflix35
- Så mycket snabbare är Surface Laptop än Macbook Air M3106
- God of War: Ragnarök släpps till PC i september23
- Nu är Playstation 5 lika stor som 414
- Årets bästa soundbar – vi väljer favoriterna51
- Discord ändrar design – vill få tillbaka spelfokuset12