IBM WCM e SEO
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
949
On Slideshare
949
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
14
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. WebSphere Portal e WCMgestire siti web aderendo alle lineeguida SEO per migliorare il rankingdei siti, e luser experienceAndrea FontanaMail: andrea.fontana@factor-y.com
  • 2. Mi presento:Andrea Fontana:• Ho cominciato a lavoro in ambiente “Lotus” dal 92 (notes 2.8), prima come Amministratore poi come sviluppatore• Mi sono occupato di ottimizzazioni SQL sia su DB2 che Digital RDBMS come DBA• Dal 2001 lavoro in ambito WebSphere Portal (3.5) e soluzioni Collaborative• Attualmente lavoro in Factor-y•
  • 3. Focus• SEO – Quali suggerimenti considerare• Pagine di cortesia – Come gestisco pagine di cortesia diverse mantenendo il look & fell in soluzioni Mutli- Brand?
  • 4. SEO(Search Engine Optimization)
  • 5. Search Engine Optimization è un soggetto ComplessoI punti focali su cui operare tipicamente sono:• <meta Title• <meta Description• Researchable KeyWord , hanno senso?? – Keyword stuffing.....• Link ref “Canonical”• Improve the structure of your URLs• Use pages courtesy• …..
  • 6. Guideline to SeoRiepilogando i punti su cui lavorare sono:• Utilizzare delle parole sensate nell’URL• Semplifica la struttura delle tue rotte• Fornire una versione unica dell’URL per raggiungere una data risorsa• Usare pagine di cortesia che siano utili
  • 7. Normalizzazione URL Step 1: Risposta in “/”Obbiettivo: fare in modo che il sito sviluppato con WebSphere Content Manager risponda ad una URL del tipohttp://<fqdn> invece dellurl standard del tipohttp://<fqdn>/wps/wcm/connect/[LIBRARY]/[SITE]/[SITE AREA 1]/[SITE AREA 1.1]/[SITE AREA 1.1.1]/[NAME+OF+CONTENT]/Ad esempio:http://www.agenziadogane.it/wps/wcm/connect/Internet/ed/Ai fini del SEO sarebbe auspicabile che il sito rispondesse inhttp://www.agenziadogane.it/
  • 8. Risposta in / Come farlo? Usiamo lhttp server di front-end. Possiamo farlo in modo coerente al Seo o peggiorando la situazione, vediamo come. Se la redirect è gestita da una pagina html che esegue la redirect con un meta tag del tipo <meta http-equiv="Refresh" content="0;url=/wps/wcm....." />, otteniamo che in 0 secondi verremo rediretti sul sito ma con quali risultati? 302 Moved TemporarilyRisultato lato crawler?302 : indicizzo la pagina perchè la redirezione è temporanea e indicizzo la nuova pagina perchè temporaneamente ci devo arrivare =2 URL per il medesimo contenuto
  • 9. Risposta in / Alternativa ? Usiamo le regole di rewrite di Apache / IHS RewriteCond %{HTTP_HOST} ^<nome.host.fqdn> RewriteCond %{REQUEST_URI} ^(/)?$ RewriteRule ^(/)?$ /wps/wcm/....../ [PT,NC] 200 OK!Risultato lato crawler?200 : indicizzo la pagina perchè la pagina in cui devo arrivare =1 url , 1 contenuto
  • 10. Risposta in /Attenzioni da seguire nello sviluppo del sito con il WCM• Tutti i riferimenti alla HomePage devono essere relativi e puntare a “/” Capiamo il perchè: Analizzando la composizione di un URL si identificano le seguenti parti Un link contenuto nella pagina composto con /path/contenuto, verrà ricomposto dal browser come <schema><fqdn>/path/contenuto. In questo modo nel nostro caso rientriamo nel ciclo della rewrite che ci permette di rispondere in / evitando di far trovare per il medesimo contenuto sia lURL / che lurl nativo nel formato “/wps/wcm/connect/[LIBRARY]/[SITE]/[SITE AREA 1]/[SITE AREA 1.1]/[SITE AREA 1.1.1]/ [NAME+OF+CONTENT]/” evitando di ricadere nel fatto che il crwaler vede 2 indirizzi per lo stesso contenuto.
  • 11. Page RankOvvero: limportanza che lintelligenza collettivadel web da a una determinata pagina internet.La differenza fondamentale tra i due metodidi reindirizzamento è:Caso <meta → 2 indirizzi → 1 contenuto proveniente dal medesimo FQDNCaso rewrite → 1 indirizzo → 1 contenutoI sistemi di crawling nel primo caso escludono il ranking generato dal secondo indirizzo. 100 50
  • 12. Step2: Normalizzare ovvero eliminare le parti superflueIpotizziamo un sito ricco, molto ricco di contenuti,ha senso che tutti i contenuti abbiano una radicecostante e ripetitiva? Come abbiamo visto lurl di un sito sviluppato con il WCM è del tipo http://<fqdn>/wps/wcm/connect/[LIBRARY]/[SITE]/...... Quale valore aggiunto può dare ai fini della ricercabilità la presenza per ogni contenuto della parte costante? Identificata dal percorso /wps/wcm/connect/[LIBRARY]/[SITE]/ Ripetuto per ogni contenuto? Possiamo dire NESSUNO ! Quindi possiamo eliminarlo.
  • 13. Step2: Normalizzare ovvero eliminare le parti superflueEvitiamo URL fantasiose del tipo:http://<fqdn>/wps/wcm/connect/libreria del sito 1/sito 1/contenuti multi medialiChe il browser tradurra inhttp://<fqdn>/wps/wcm/connect/libreria%20del%20sito%201/sito%201/contenuti%20multi%20medialiSe proprio dovete sostituite il ␢ (blank) con -/libreria-del-sito-1........Ma come si fa ad eliminare la parte costante?Ci aiuterà ancora una volta lHTTP Server (IHS o Apache) Questo un buon motivo per usare lHttp server nativo lIBM Http Server [ndr]
  • 14. Step2: Normalizzare ovvero eliminare le parti superflueLHttp server ci permette di convertire dinamicamente il contenuto delle pagineweb. Possiamo forzare il cambiamento da /wps/wcm/connect/libreria/sitesostituendolo run time con un percorso più semplice ad es, /newpathLimitazioni conosciute:• Non può cambiare i contenuti delle applet• Non può cambiare i contenuti dei javascript embedded• Non può cambiare i link assoluti
  • 15. Step2: Normalizzare ovvero eliminare le parti superflueLa funzione sfrutta alcune librerie Apache, e la funzionalità diR-Proxy. Schematicamente il flusso è il seguente:Noi interverremo proprio nella configurazione del R-Proxy inserendo le funzionidi “Proxy HTML” e lo schema diventa
  • 16. Step2: Normalizzare ovvero eliminare le parti superflue
  • 17. Step2: Normalizzare ovvero eliminare le parti superflueCome fare:Installare e caricare le librerie necessarie:LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_http_module modules/mod_proxy_http.soAbilitare i Virtual HostSia per il sito principale in cui inseriremo le regole di “riscrittura”Sia per il sito Privato “riscrivente”
  • 18. Step2: Normalizzare ovvero eliminare le parti superflueVH sito principale:Inserie le regole di proxy-HTMLSostituiremo la rotta /wps/wcm/connect/mysite/site/ con /it/ProxyHTMLLogVerbose OnLogLevel DebugProxyPass /it/ http://www1.mysite.com/wps/wcm/connect/mysite/site/ProxyHTMLURLMap http://www1.mysite.com/wps/wcm/connect/mysite/site/ /it [c]<Location /it/>ProxyHTMLEnable OnProxyPassReverse http://www1.mysite.com/wps/wcm/connect/mysite/site/SetOutputFilter proxy-htmlProxyHTMLURLMap /wps/wcm/connect/mysite/site/ /it/ProxyHTMLURLMap /it /it</Location>
  • 19. Step2: Normalizzare ovvero eliminare le parti superflueVH “privato”:<VirtualHost <yourIP>:80>DocumentRoot www/mysiteServerName www-1.mysite.comErrorLog logs/www/mysite/error.logCustomLog logs/www/mysite/access.log common</VirtualHost>In questa configurazione lfqdn www.mysite.com è pubblico e risolto dai DNSwww-1.mysite.com è privato e risolto solo localmente tramite file hosts.
  • 20. Step2: Normalizzare ovvero eliminare le parti superflueVa da se che se nelle pagine vi sono dei link pseudo realtivi, risulteranno non raggiungibili.<%@ page contentType="text/html; charset=iso-8859-1" language="java" %><%String hostName=request.getServerName();%><html><head><title>Server host name in jsp</title></head><body>Host Name of server <%=hostName%></body></html>Pagine come questa verrano servite attraverso il VH Privato dando un riferimento al nomePrivato www-1.mysite.com NON Raggiungibile
  • 21. Step2: Normalizzare ovvero eliminare le parti superflueIn fine usiamo i Robots per garantirci che eventuali url lunghe orfane venganoindicizzate.Per farlo inseriamo un file chiamato robots.txt nella home root del nostro httpserver., un file testuale composto nel modo seguente:Un campo "User-agent" ed uno o più campi "Disallow".Il campo User-agent serve ad indicare a quale robot/spider le direttive successive sono rivolte. Lasua sintassi è:User-agent <duepunti> <spazio> <nome_dello_spider>Il campo Disallow serve a indicare a quali file e/o directory non può accedere lo spider indicato nelcampo User-agent. La sintassi di questo campo è:Disallow <duepunti> <spazio> <nome_del_file_o_directory>Ad eempioUser-agent: googlebotDisallow: /wps/wcm/connect/<libraryName>
  • 22. Step2: Normalizzare ovvero eliminare le parti superflueEsempio:http://www.sonus.com Riferimenti in: Portal Wiki Downloads : Librerie Apache x Windows / Sorgenti x Linux
  • 23. Pagine di Cortesia
  • 24. Pagine di cortesia: ma lo sono veramente?• Dire in modo chiaro che la pagina cercata non esiste• Avere il medesimo look & fell del sito, in questo modo lutente non si sente perso e abbandonato....• Considerare laggiunta di link ai tuoi articoli o post più popolari, alla home page del tuo sito.• Permettere agli utenti di segnalarci gli errori• Essere certi che venga restituito il codice di errore, così Google non la indicizza.....• Valutare se inserire un widget che permetta la ricerca nel sito, e fornire agli utenti informazioni utili per aiutarli a trovare le informazioni di cui hanno bisogno.• .........
  • 25. Pagine di cortesia: ma lo sono veramente?Esempi:
  • 26. Pagine di cortesia: ma lo sono veramente?Come fare: modifichiamo le configurazioni del nostro HTTP Server eabbiamo vinto.È sufficiente inserire le direttive appropriate ErrorDocument 404 /bad_urls.html ErrorDocument 401 /subscription_info.html ErrorDocument 403 "Sorry cant allow you access today"Ma davvero è tutto qui?
  • 27. Pagine di cortesia: ma lo sono veramente?Allora come mai il mio sito mi restituisce una pagina diversa?E sopratutto chi la restituisce?Le risorse Non-URL sono manipolate e trasformate allinterno dellivello di sicurezza di WebSphere Application Server (WSAS). Questedefinizioni sono specificate nel file web.xml nel file wps.ear ewcm.ear. È necessario modificare le applicazioni per consentire lagestione di una pagina di errore personalizzata.
  • 28. Pagine di cortesia: ma lo sono veramente?Per cui tramite il WSAS lapplication server intercetta lerrore efornisce la pagina di default, rispondendo comunque un 200 allHTTP.Il processo verifica il web.xml dellapplicazione e se trova unaspecifica di gestione dellerrore, utilizza la pagina definita altrimentirestituisce la standard.Error 404: SRVE0190E: File not found:/wccm/connect/SitiI......./home_page
  • 29. Pagine di cortesia: ma lo sono veramente?Ora, è sufficente modificare il web.xml dellapplicazione e inserire lamappatura della pagina di cortesia, il problema è che laWebApplication da modificare sono due nello specifico:• wps.ear• wcm.earuna soluzione per la parte protale consiste nel esguire lUnDeploydellapplicazione, modificarla e Deployarla nuovamente, piùcomplicato farlo per il WCM, dovendo ricostruire manualmente tutti iriferimenti EJB.
  • 30. Pagine di cortesia: ma lo sono veramente?La modifica da insere nel web.xml è la seguente:<error-page> <error-code>404</error-code> <location>/ep/e404.html</location></error-page>un blocco per codice di errore da gestire
  • 31. Pagine di cortesia: ma lo sono veramente?Ma se il nostro WCM, espone più siti, ad esempio soluzioniMulti-Brand, siti as Service, etc etc. cosa succede?Il nostro WSAS in caso di errore carica la nostra pagina. (Una perApplication Server)Ma se abbiamo Look & Fell diversi come faccio?Inseriamo una pagina che in realtà sollevi leccezione allHTTP Serverche ha la vera pagina di cortesia da servire allutente, mantenendoleccezzione ed evitando che i crawler la indicizzino.
  • 32. Pagine di cortesia: ma lo sono veramente?
  • 33. Pagine di cortesia: ma lo sono veramente?Esistono due modi leggermente diversi dimplementare la soluzione,Dipendenti dal fatto che se opero in una soluzione Single-Node o inun Cluster.Fondamentalmente dovrò operare in posti diversi, ma facendo lestesse cose, nel caso del Cluster devo, operare nel Deploy-Manger egestire la modifica tramite una fullSyncronize dei nodi, in modo che ilsitema “rideploy” le applicazioni sui nodi.Va da se che se ho la brutta abitudine di “deployare” i temi e le jspcustom direttamente nei nodi, le perderò inesorabilmente, ma qui ilporblema stà da un altra parte.
  • 34. Pagine di cortesia: ma lo sono veramente?Ad esempio nel caso del Cluster modificare il file web.xml che si trova in /profiles/<DMGRProfiles>/config/cells/applications/wps.ear/ deployments/wps/ wps.war/WEB-INF/web.xmlCercare i tag</mime-mapping><resource-ref>Ed inserire tra i due tag la seguente struttura<error-page> <error-code>404</error-code> <location>/ep/e404.html</location></error-page>
  • 35. Pagine di cortesia: ma lo sono veramente?Preparare la pagina di gestione della “redirect” ed installarla nel file .earche stiamo gestendo /ep/e404.htmlQuesta pagina avrà la struttura del tipo<html xmlns="http://www.w3.org/1999/xhtml"><head><META HTTP-EQUIV="Refresh" CONTENT="0;URL=/yourCourtesyPage.html"> <title>Not Found</title></head><body></body></html>
  • 36. Pagine di cortesia: ma lo sono veramente?Ora non resta che preparare la nostra /yourCourtesyPage.html ed installarlanellhttp server in modo che venga caricata in caso di errore.Eseguiamo la fullSyncronize dei nodi del cluster ed il gioco è fatto. Riferimenti: Customize Error Page
  • 37. Letture consigliateWebSphere Portal 6x InfocenterIBM Http Server ForumApache Http Server ProjectWebSphere Portal WikiApache at WebÞingApache Tutor
  • 38. Grazie agli sponsor per aver reso possibile i Dominopoint Days 2012! Main Sponsor Vad sponsor Platinum sponsor Gold sponsor