<WKL:"En kodrad i taget!";/>
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
- Idag EU förbjuder svaga lösenord i smarta hemmet-prylar 15
- Idag ShowCase: Prestanda för pengarna med Nvidia Geforce RTX 4060 16
- Idag Apple kan släppa ny Ipad Pro med M4-krets 33
- Igår Intel skyller Raptor Lake-krascher på moderkortstillverkare 37
- Igår TSMC utvecklar enorma kretsar med effekt mätt i kilowatt 11
Mjukvara
- 27 / 4 Stöd för komprimering i fler format på gång till Windows 19
- 27 / 4 Krönika: "Early access" är utstuderad girighet 55
- 27 / 4 Microsoft släpper källkoden till MS‑DOS 4.00 25
- 26 / 4 Ny caps lock-symbol i Windows förbryllar HP-användare 21
- 26 / 4 Därför blockerar Windows 11 24H2 Start‑menyhack 43
Datorkomponenter
Ljud, bild och kommunikation
- Home Assistant - Hur kommer man igång?22
- ShowCase: Prestanda för pengarna med Nvidia Geforce RTX 406017
- Fallout 4 Next Gen – Update Notes9
- PSU EPS12v 2x4-pin till ATX12v 8-pin hjälp?12
- Error code 99 på Asus moderkort-kommer inte in i BIOS4
- Nanosys: QDEL-tekniken potentiellt redo för kommersiell lansering 202638
- Tråden om PlayStation 514609
- Tråden om Xbox Series X|S7530
- Ryskt spelbolag sponsrar Dreamhack-turneringar36
- Vilken serie såg du senast?1856
- Säljes Samsung Tab S8 5G 128 GB
- Säljes Supermicro C7X99-OCE + Intel Xeon E5-2699 v3 + Corsair 32GB DDR4
- Köpes B460/Z490 eller B560/Z590 moderkort
- Säljes PG27AQDM 240hz oled 1440p
- Säljes Samsung Odyssey G5 S27 IPS 165hz
- Säljes Serverdelar Asus C621 Sage + x2 Intel Xeon Gold 6138 + 256GB DDR4 ECC + Noctua CPU Kylare
- Köpes Letar efter ryzen 5700x3d eller 5800x3d
- Säljes Nvidia Quadro P2000 5GB (PNY)
- Säljes LG 27GP850-B, AOC Q27G2S, headset
- Säljes Dell Latitude 7530 15,6”
- EU förbjuder svaga lösenord i smarta hemmet-prylar15
- Ryskt spelbolag sponsrar Dreamhack-turneringar36
- ShowCase: Prestanda för pengarna med Nvidia Geforce RTX 406017
- Snabbkoll: Använder du VPN-tjänster?55
- Telenor stoppar fulstreaming för sina kunder65
- Därför är Googles sökresultat sämre idag42
- Apple kan släppa ny Ipad Pro med M4-krets33
- Google nöjda med annonsexperiment: Youtube kan få pausreklam52
- Intel skyller Raptor Lake-krascher på moderkortstillverkare37
- TSMC utvecklar enorma kretsar med effekt mätt i kilowatt11