"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
Datorkomponenter
Ljud, bild och kommunikation
- Färre IT-jobb på distans gör att fler slutar145
- E-handelssidan Temu anmäls för kundmanipulering12
- Vad är en bra IT-chef?34
- Linus Torvalds byter Apple mot Ampere15
- Dagens fynd (bara tips, ingen diskussion) — Läs första inlägget först!18502
- Uppdatera gamla speldatorn för att kunna lira Hogwarts och streama utan lags? Budget 7k48
- Diablo IV – den stora tråden3706
- Stora feta metaltråden!5077
- Struct array C++8
- TV-guiden 2023/24 – diskussionstråden639
- Säljes VHS, mATX integrerad CPU, PS3 960GB SSD, Extern SSD, diverse + skänkes
- Säljes (Bundle Auktion) 3st Lenovo Thinkcenter (M80q + M80q + M720q)
- Bytes Oöppnad S24 Ultra 512 GB Violett
- Köpes Kablar till TX550M, type 4?
- Säljes Retro apple tangentbord
- Säljes Asus GTX980TI Strix Mild defekt
- Säljes serverhårdvara socket 1366
- Säljes Mackbook Pro M1, 8 Gb, 250 Gb, 13 inch
- Säljes AMD Ryzen 9 5900X
- Säljes Vattenkylningsdelar, kablar
- E-handelssidan Temu anmäls för kundmanipulering12
- Linus Torvalds byter Apple mot Ampere15
- Raspberry Pi släpper billig NVME-adapter10
- Färre IT-jobb på distans gör att fler slutar145
- Microsoft fixar VPN-problem i Windows2
- Veckans fråga: Vad är viktigast när du köper SSD?58
- Googles nya AI-assistent kan se sin omgivning i realtid9
- Google lanserar ”webb”‑sökningar18
- Amazon gör Tomb Raider-serie33
- AMD lanserar prisbantade AM5-processorer utan grafikdel29
Externa nyheter
Spelnyheter från FZ
- FF7 Rebirth, Final Fantasy XVI och Foamstars sålde sämre än väntat idag
- GTA-veteranen Dan Houser utvecklar ett actionäventyr i öppen spelvärld idag
- Grafikjämförelse av Hellblade 2 vid utannonseringen och i dag idag
- Ubisoft skrotar gratisskjutaren The Division Heartland idag
- Svenskutvecklade The Finals presterar sämre än väntat idag