Kuinka mokata verkkosivu-uudistus

Helsingin kaupunki teki nettisivu-uudistuksen kesällä. Ensimmäiset osat päivitettiin toukokuussa, viimeiset syyskuussa. Uudet sivut sinänsä ovat paremmat kuin aiemmat, mutta samalla rikottiin kaikki vanhat linkit ja sabotoitiin googlen toiminta. Seurauksena kaupungin sivuilta ei löytänyt enää googlella yhtään mitään.

Tämä on aika iso ongelma, koska perinteisesti google on ollut ainoa tapa löytää kaupungin sivuilta yhtään mitään. Navigaation kautta useimpia asioita ei voi löytää kuin ehkä ammattilainen: sivut ovat siihen ihan liian isot.

Kaupungin uudet sivut ovat oikeasti hyvät. Nätin näköiset ja navigaatio on aiempaa parempi. Mutta se ei paljon auta, jos mitään ei löydä ja linkit ovat rikki.
Kaupungin uudet sivut ovat oikeasti hyvät. Nätin näköiset ja navigaatio on aiempaa parempi. Mutta se ei paljon auta, jos mitään ei löydä ja linkit ovat rikki.

20.8., kun kesäloman jälkeen aloin taas tarvita kaupungin sivuja enemmän, hermostuin siihen että googlella ei edelleenkään löytänyt mitään. Selvästikään kyse ei ollut vain sivujen muutoksen hetkellisestä häiriöstä. Debuggasin wiresharkilla miksi goole ei toimi ja lähetin kaupungille palautetta:

”Hei,

Google-haut kaupungin sivuilta ovat olleet rikki sivu-uudistuksesta alkaen. Ongelma ei ole Googlen, vaan kaupungin sivujen, ja se olisi syytä korjata pikimmiten. Google tarjoaa rikkinäisiä linkkejä, koska kaupungin sivut vastaavat myös vääriin linkkeihin 200 OK, eikä 404 Not Found kuten kuuluisi. Jos tämä korjataan, google siivoaa virheelliset linkit muutamassa päivässä.

Google-haku on käytännössä toimivin tapa hakea mitään kaupungin sivuilta. Navigaatio pitkin hierarkiaa on vaikeaa, eikä juuri kukaan tee sitä. Tällä hetkellä kaupungin sivujen tärkein käyttötapa on siis rikki, ollut jo kuukausia.”

Virhe on melko lailla käsittämätön, eikä sitä olisi pitänyt ikinä sattua. 200 OK palauttaminen virhetilanteessa on HTTP-standardin vastaista, eikä siihen ole mitään järkevää perustelua. Sivu-uudistusta tekevien olisi pitänyt ymmärtää sen olevan ongelma, tai vähintäänkin minkäänlaista vastuuta tuntevan toteuttajatahon olisi tullut selittää asiakkaalle, että noin ei pidä toimia.

Ylipäänsä vanhoja linkkejä ei suositusten mukaan pitäisi rikkoa koskaan, jos sama sisältö vaan edelleen on jossain olemassa. Mutta ainakaan google-hakuja ei pitäisi tarkoituksella sabotoida.

Muutamien mailien vaihdon jälkeen 22.9. sain viestin:

Olemme muuttaneet käytäntöämme siten, että jatkossa ohjaamme kävijät viraston vanhoilta sivuilta uusien sivujen etusivulle noin kuukauden ajan. Tämän jälkeen vanhojen sivujen osoitteet palauttavat virhekoodin 404, jolloin Google karsii sivut hakutuloksistaan. Pääsivun osalta tästä ohjauksesta on jo luovuttu.

 

Sivujen uusiminen on kaupungin kannalta suurin viestinnällinen hanke vuosiin. Teemme koko sivuston uusiksi ulkoasun, teknisen toteutuksen ja rakenteen osalta, koska tämä on ainoa keino saada sivut palvelulähtöiseksi ja responsiivisiksi. Tässä yhteydessä on valitettavasti mahdotonta säilyttää vanhoja linkkejä muuttumattomina, koska osa sivuista katoaa kokonaan rakennemuutoksessa.

Nyt lokakuussa google jo toimiikin kaupungin sivuilta hakiessa. Vajaat viisi kuukautta rikkoutumisen jälkeen ja kaksi kuukautta sen jälkeen kun selitin, miten ongelma korjataan.

Vanhat pöytäkirjalinkit sen sijaan eivät toimi edelleenkään. Sekin on iso periaatteellinen ongelma.

Vielä taannoin pöytäkirjoja pidettiin verkossa vain pari vuotta, koska kuntaliiton ohje suosittaa, ettei henkilötietoja pidetä esillä. Se oli todella hankalaa, kun esimerkiksi katusuunnitelmaa hyväksyttäessä liikennesuunnitelma johon se perustui oli jo piilotettu (ei, liikennesuunnitelmissa ei ole kaupunkilaisten henkilötietoja, mutta poistettiin silti).

Sitten kaupunki teetti kalliilla systeemin tägätä henkilötiedot niin, että netissä voidaan pitää versioita ilman niitä, ja vuodesta 2011 alkaen vanhat pöytäkirjat pysyvät verkossa. Paitsi nyt niitä ei sitten löydä, kun kaikki vanhat linkit on rikottu. Kuten jo todettu, linkkejä ei kuuluisi sivu-uudistuksissa rikkoa. Eikä varsinkaan silloin, kun kyse on demokraattisen päätöksenteon julkisuudesta. Esimerkiksi luottamushenkilöiden blogit linkittävät yleensä pöytäkirjoihin, joista päätöksistä kiinnostunut lukija löytä yksityiskohdat. Samaten myös kaupungin projektiblogit.

Tämäkin ongelma on sangen helppo korjata. State of the art -ratkaisu olisi laittaa koko sivuston eteen Nginx-proxy, joka tekee tarvittavat URL-muutokset. Kaupungin omistamalla Lasipalatsin mediakeskuksella esimerkiksi lienee kykyä tehdä tuo parin päivän varotusajalla.

Esimerkiksi yleisten töiden lautakunnan osalta ohjaussääntö näyttäisi nginxissä suunnilleen tältä:

rewrite ^/www.hel.fi/hki/hkr/fi/P__t_ksenteko/Asiakirja\?(.*)$ \
www.hel.fi/www/hkr/fi/paatoksenteko/lautakunta-paatosasiakirjat/asiakirja\?$1 last;

Tai jos ei haluta lisätä yhtään purkkia, vaan tehdä ratkaisu kaupungin käyttämällä IBM WTE:llä, sääntö olisi jotain tämäntapaista:

RewriteMap escapemytext int:escape
RewriteRule ^/www.hel.fi/hki/hkr/fi/P__t_ksenteko/Asiakirja\?([a-zA-Z0-9_]*)$ \
/www.hel.fi/www/hkr/fi/paatoksenteko/lautakunta-paatosasiakirjat/asiakirja\?${escapemytext:$1} \
[PT,L]

Näitä sääntöjä tarvitaan yksi per lautakunta, eli parikymmentä samanlaista. Tekisin tuon itse varmaan parissa tunnissa, koska en ole ikinä konffannut WTE:tä. Ammattilaisen pitäisi selvitä nopeammin.

Käytännössä kommunikaatioon pitää varata lisäaikaa, koska sivut on jaettu parinkymmenen eri viraston vastuulle, ja niillä lienee parikymmentä eri vastaavaa. Jonkun pitää siis ensin kirjoittaa ohje, ja välittää se joka paikkaan. Vaikea siihen silti on kovin montaa työpäivää käyttää.

Maanantaina tietotekniikkajaoston kokouksessa esitinkin aiheesta kysymyksen:

”Pyydän kaupunginjohtajaa selvittämään, miten pääsi käymään niin, että kaupungin nettisivujen uudistushanke esti kaupungin sivujen toimivuuden googlella pitkäksi aikaa ja hukkasi kaikki vanhat päätökset sekä mitä ollaan tekemässä, jotta linkit tehtyihin päätöksiin saadaan taas toimimaan.”

Odotan tähän vastausta joulukuun ensimmäisen päivän kokouksessa. Toivottavasti vastaus on, että ongelma on korjattu.

Kirjoittaja on kaupunginhallituksen tietotekniikkajaoston puheenjohtaja eikä ole koskaan tehnyt nettisivuja työkseen. Kaikki tekstissä esitelty konffaus on opeteltu tätä tekstiä varten.

14 thoughts on “Kuinka mokata verkkosivu-uudistus”

  1. ”Tässä yhteydessä on valitettavasti mahdotonta säilyttää vanhoja linkkejä muuttumattomina, koska osa sivuista katoaa kokonaan rakennemuutoksessa.” Tää on valitettavasti just niin tyypillistä virkamiesvastausta. Melkein mikä vaan yleisötilaisuus, verkkokeskustelu tms. jossa yleisö pääsee ääneen niin ennemmin tai myöhemmin tullaan asiaan joka on ”mahdoton” muuttaa. Valitettavan harvoin yleisöllä on riittävää asiantuntemusta kyseenalaistaa nuo mahdottomuudet. Sama asia toimii eri virastojen välilläkin. Esim. kapeammat ja halvemmat kevyen liikenteen väylät on mahdottomia, kun kunnossapitokalusto ei mahdu niille… jne. Välillä nuo argumentit ovat ihan asiallisiakin, mutta tuon mahdoton kortin käyttäminen pakottaa lopettamaan keskustelun antamatta kuitenkaan mitään todellista vastausta kysymykseen.

  2. Olisi edes ensimmäinen kerta, mutta tekevät tämän joka kierroksella. On se kumma, miten vaikeaa uudelleenohjaukset muka ovat – saati sitten asianmukaisten virhesivujen antaminen.

  3. Kyllähän tästä pitää peksata projekti, kilpailuttaa, polttaa kuusinumeroinen summa rahaa ja saada uudelleenohjaus toimimaan pari kuukautta sen ennen kuin kaupungin weba rikotaan seuraavan kerran.

  4. Jos haluttaisiin käyttää HTTP:tä oikein, pitäisi osoitteiden ja uudelleenohjausten toimiminen uudistuksen jälkeen sisällyttää pakolliseksi järjestelmän toimintavaatimukseksi järjestelmää uudistettaessa. Eihän toimittaja tuota tee – se on työlästä, niin teknisesti kuin jos niitä sivuja jouduttaisiin käsin liittämään.

    Sinänsä olisi järkevää että tuollainen toimintamalli toteutettaisiin. Eihän se ole oikeasti teknisesti mitenkään mahdotonta – käsitteellisesti triviaali. Se etteivät pakasta vedetyt järjestelmät sitä hanskaa on enemmänkin merkki pakasta vedettävien järjestelmien lähtökohtaisesta huonoudesta ja soveltumattomuudesta, ei ongelman vaikeudesta.

  5. Siirretyille sivuille ei 404:sta:

    The HTTP response status code 301.

    Moved Permanently is used for permanent URL redirection, meaning current links or records using the URL that the response is received for should be updated. The new URL should be provided in the Location field included with the response.

    1. Totta, 404:kään ei ole oikeastaan oikein.

      Mutta jos tieto siitä että tässä oli sivu ja missä se on nyt on hukattu (tai sivua ei ole enää missään), niin silloin pitää palauttaa 404, koska sivua ei ole enää. Missään tapauksessa ei pidä palauttaa 200 OK.

    2. 404 on väärä myös siinä tilanteessa, jos vanhan osoitteen takana ollut sivu on poistettu pysyvästi. Tuollaisessa tilanteessa pitäisi palvelimen palauttaa vastaus 410 Gone.

  6. Kannattaa käyttää nykyaikaista ratkaisua etarkkailija.fi joka perustuu merkityksiin eikä hakusanoihin. Google on viime vuosituhannen tekniikkaa.

  7. Erittäin hyvä huomio Otsolta, niin usein ja niin turhaan myyntimiehet ja viestintäihmiset rikkovat sivustot kun mietitään suppeasti vaan jonkun uuden markkinointikonseptin tuputtamista.

    Parannusehdotus erittäin hyvään kysymykseesi: Älä sano Google vaan hakukoneiden, esi,. Googlen,… ja rautalangasta väännettynä vielä ”Valtaosa kaupunkilaisista etsii tietoa kaupungin sivuilta hakukoneiden avulla eikä kauopungin pääsivuston hankalakäyttöisten ja puuttellisesti toimivien hakemistojen kautta” tjsp.

  8. Tämä muuten on asia, joka onnistutaan sössimään osapuilleen jokaisessa verkkosivu-uudistuksessa. Vaikka ratkaisu on triviaali. Tuntuu melkeinpä siltä, että näin halutaan tehdä.

    Yleensä verkkosivuista vastaa jokin sen suuntainen taho kuin ”Viestintä”. Minulla on tällaisista yksiköistä yksinomaan huono käsitys. Tuntuu, että näiden toiminnan tavoitteena on tehdä viestinnästä mahdollisimman hankalaa, ja kaikki aikojen saatossa hyviksi koetut menettelytavat voidaan hylätä sen vuoksi, että ne ovat vastoin ”viestinnällistä linjaa”.

    Yleensä yritän itse vaientaa tällaisten tahojen edustajat vetoamalla esteettömyyteen. Enkä pelkästään väittelyn voittamisen nimissä, vaan siksi, että esteettömyys yleensä jätetään kokonaan huomiotta verkkoviestintää suunniteltaessa. Kysymys ”Miten tätä luetaan Braille-päätteellä” tulee yleensä nk. viestinnän ammattilaisille melko lailla puun takaa.

  9. Google-botit ja muut hyvätahtoiset robootit ovat myös ihan hyvin tunnistettavissa http-pyynnön User-Agent-kentän perusteella. Tämäkin onnistuu noin kahden rivin konffilla, ja yhdistämällä reverse-proxy:n käyttöä User-Agent suodatukseen saa ohjattua oikeat ihmiset 301:llä järkeviin sivuihin ja samalla poistettua vanhat urlit hakutuloksista siirtymä-ajan aikana.

  10. kuntaliiton ohje suosittaa, ettei henkilötietoja pidetä esillä

    Mitä jos kalliin tietojärjestelmäuudistuksen sijaan olisi palkattu hyvä lakimies argumentoimaan, että Kuntaliiton/tietosuojavaltuutun ohjeet ovat liian tiukat, eivät suoranaisesti perustu lakiin, ja vaarantavat perustuslain mukaisen viranomaistoiminnan julkisuuden?

  11. Myös uusien sivujen ulkoasu on epäonnistunut. Sivuja on ikävä selata, koska tekstikentät seilaavat erillisinä päälleliimattuina lipukkeina tumman pohjakuvan päällä. Tällainen pohjakuvan käyttö on täysin tarpeetonta ja tekee sivujen ulkoasun levottomaksi. Miksi toimivaa järjestelmää pitää ylipäänsä muuttaa?

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *