Warum IT kein SEO versteht – 6 Beispiele

Auch wenn ich kein SEO bin, so kommt man doch häufiger mit dem Thema in Berührung. Meine ersten Versuche hatte ich ~2008 mit lootogo unternommen, bis heute ehr ein Fail, ich hänge mich aber auch nicht richtig rein. Ich würde behaupten ein gewisses Grundwissen von SEO zu haben. Durch unterschiedliche MeetUps, Kollegen oder Freunde bekommt man einige Geschichten mit, die in der IT Dinge völlig SEO feindlich umgesetzt wurden oder sich bestimmten Handlungen nicht bewusst waren/sind. Ich will dies schon seit Monaten versuchen in einer Ironischen Art zusammen zu fassen. Teilweise reale Geschichten oder völlig frei erfunden. Vielen Dank an Eric für seinen Fachlichen Rat. Generell finde ich sollte sich IT einfach mehr mit SEO zusammensetzen, denn beide Welten sind sich eigentlich ganz nahe.

robots.txt nur eine kleine Änderung
Wir haben den Change-Request von SEO an der robots.txt mal eingebaut, die wollen das ja immer möglichst schnell haben. Ich hab bei der Gelegenheit direkt mal etwas refactort, da waren einige Dinge irgendwie unlogisch. Können die dann am Montag Morgen prüfen.

Down-Times sollten möglichst kurz sein.
Nachts haben wir immer ein Wartungsfenster da ist eh kaum jemand auf der Webseite unterwegs. Wir schalten dann unsere Wartungsseite ein, die einen HTTP-Status Code 404 für alle Seiten zurückliefert. 503 wäre hier fehl am Platz da unsere Service ja erreichbar ist.

Meta Description und Title sollten möglichst genau auf den Seiten Inhalt abgestimmt und einmalig sein.
Wikipedia schreibt: “Kurze Beschreibung oder Abstrakt des Inhalts der Webseite.” – Mein Layout-Template für alle Seitentypen bildet das ab!
Warum soll ich dynamisch etwas generieren? Das erhöht meinen Implementierungs Aufwand enorm und die Ladezeit steigt ins unermessliche!

Urls sollten kurz sein und passend zum Content.
Wir packen einfach unsere internen IDs in die URL, alles andere müssen die Admins via Rewrite Rules regeln.
Da müssen wir dann ein Tool schreiben welches die Rewrite Rules generiert, ich hab da neulich mal etwas von node.js gelesen das kann solche Regeln super schnell generieren.

Weiterleitung
Fertig. Was? Wozu 301? Das Framework nutzt Standardmäßig eine 302. Der User wird doch weitergeleitet. Und vielleicht ändert sich ja auch nochmal was. Da ist temporär schon ok. Alles andere ist Quatsch.

Der SEO-Juice muss fließen.
Im Footer sind Startseite, Impressum und die Über uns Seiten verlinkt, das reicht doch für die interne Verlinkung! Auf andere Links klickt der Nutzer sowieso nicht und der Bot kann unsere generierte Sitemap verwenden. Klar braucht die Sitemap eine halbeehwigkeit, aber die habe ich nicht gebaut.

A grails puppet eco-system in 5 countries

Time to publish the slides from my talk “A grails puppet eco-system in 5 countries” that I gave at the BedCon 2013 and Berlin Geek2Geek Meetup.

On the Lesson learned presentations about how we work and manage to run a high traffic system in 5 countries with more then 45 people in Product&Development. To this challange we work with Scrum&Kanban in 5 Devs teams, manage our infrastructur in puppet and share the same code base with all 5 offices. The presentation will give some insights on how we organize the everyday life and will also give an overview on the learnings from using a innovative technologie stack in a professional environment including: grails, postgres, mongoDB, puppet, activeMQ, bamboo, ehCache, terracotta, graylog & git.

kaufDA is a leading German site for local search and local promotion search. The company enables users to look for the best local sales online, search brochures of local retailers and find stores near them. In germany we operate with several hundreds of requests per second, handle millions of unique visitors each month and deliver more then TBs each day for local deals and promotions.

Grails: How we manage our configs at kaufDA/bonial

We at kaufDA/bonial have a lot of configuration parameter, we handle more then 5 countries in production and min. one staging systems per country and more then 20 developer configs. I will describe in this blog post how we manage our configs at kaufDA.

The grails configuration functionality is good, also the option to configure different environments. But what will happen if you will run your WAR on more then one stage environment with different databases or urls without building the WAR again, because the configuration are included in WAR. Or you will not have salesforces/mail server credentials in the normal git-repository where every developer have access. We have also configurations that are identical in every country (e.g. paths to file system) or in every environment by country (e.g. base location).

So we classified all existing configurations to the a category: final, country, local and environment.

final

This configuration is in every country and environment (production, stage & development) identical. e. g. url paths, pagination or starting time of jobs. Final configs could use variables from the country, local or  environment configs. e. g. for the solr server the api endpoints are the same but the host are different.

country

Is in every country different but in the specific environment of the country identical. e. g. base location or displaying format of dates

local

Contains specific configurations for the running system, in production or staging this configs are generated via puppet, because puppet knows the current database server or credentials of salesforce. Developers have there own local configs for new features or different databases.

environment

Only configs thats fit not in the other config. e. g. domain urls or logging properties. This configs could also generate by puppet, but we decide to have this configs for the transparent in the project.

The order of loading config is supposed to be like this

Public Viewing App – Zwischenbilanz

Seit dem 15.05 ist die “Public Viewing EM 2012 – Fussball in Ihrer Nähe” App im AppStore verfügbar, Zeit eine kurze Zwischenbilanz zu ziehen und ein paar Fakten zu nennen.

  • über 15.000 Dowloads
  • Platz 39 in den Deutschen App Charts
  • über 200 E-Mails mit neuen Meldungen
  • mehr als 15 Presseberichte (BILD, WELT, FTD, yahoo, 1live, n-joy…)
  • höchste Aktivität an Spieltagen der Deutschen Mannschaft
  • mehr als 350.000 API-Request seit 01.06

Hello San Francisco

I stand now more than 7 days in san francisco, time to share some impression and knowledge stuff. I met Philip Stehlik and Sebastian Stadil in the first days, iń both meetings the give me lots of inputs and new ideas. The conversation was very open and imbue, such openness is unfortunately very rare in germany. Sebastian give me the tip to join the cloudstock 2012, this was really exciting! There was a introduction to use java at heruko from James Ward and the “Infrastructure Lessons from LinkedIn, Scalr and Netflix” was really interesting. I checked the sildes from Adrian Cockcroft about Cloud Architecture at netflix, when you will build your startup in cloud view this!

After the cloudstock 2012 I joined the San Francisco Java User Group. Ben Corrie talked about “Tuning JVM for a VM – lessons learned, directly from VMware“. On Friday I attended the sandbox dinner at the glint project, I met lots of exciting persons and the view over san francisco by night was unique. I hope in the next few days I will see more sun.

2011 – Gute Freunde und ein starkes Team

Das Jahr nährt sich dem Ende, Zeit zurück zu schauen.
Eines direkt am Anfang:
Wir haben zusammen: hart gearbeitet mit großen Erfolgen, gefacebookt, getanzt bis wir nicht mehr konnten, getrunken, gelacht bis die Tränen kamen und bequatscht um Wissen zu teilen. Das Jahr 2011 war wieder einmal großartig mit Euch, vielen Dank für Eure Begleitung!

“Die Idee ist nichts wert, auf die Umsetzung kommt es an”, es macht jeden Tag immer wieder Spaß mit dem kaufDA-Team am Portal und den mobile Apps zu arbeiten. Vom fleißigen Team der Online-Redaktion welches Woche für Woche immer mehr Prospekte online bringt, den Mädels aus dem Human Resources-Team welche sich immer um unser Wohlbefinden kümmert, dem reisenden Sales-Team welches harte Zahlen abfragt, dem innovativen Mobile-Team mit sexy Apps, den Jungs und Mädels aus dem Online-Marketing mit ihren Traffic-Rekorden und dem kreativen Produkt-Team mit dem meisten Spielzeug in der Firma. Die IT ist gefühlt um 500% gewachsen, wir sind ein internationales Team geworden und es macht jeden Tag Spaß mit den Kollegen unsere Anwendung noch besser zu machen. Ich freue mich auf die nächsten Monate mit Euch!
Ich glaube fest daran das wir 2012 weiterhin so viel Erreichen und auch Spaß bei der Arbeit haben werden.

Ein besonderer Dank geht an die Jungs von cloudControl, sie haben 12 Monaten 24 Stunden dafür gesorgt das Dienste wie Deine Mutter und lootogo immer Verfügbar und hoch-skalierbar waren. Wenn ich zurück Denke wie Philipp mir damals von der Idee erzählt hat, über die ersten Schritte in Bonn bis zum Umzug nach Berlin mit Zwischenstation in Potsdam: Wahnsinn! Ich freue mich auf 2012 Euch als Hoster nutzen zu können und das krasse Wachstum sehen zu können.

Ein Jahr 2011 wäre niemals so toll geworden ohne Freunde und Verwandte!
Jeder Köln Besuch ist ein echtes Highlight, das beginnt bei Veranstaltungen wie dem Webmontag oder auch Karneval.
Hannes! Auch 2012 werden wir REWE und dem Underground Besuche abstatten.
Da währen ja noch einige Partys und Events aus Berlin aufzuzählen, von Partys ehemaligen Mitschüler/innen oder Kollegen bis Clubbesuche (suicide circus, magnet, fritzclub, Havana?, Steinhaus, ritter butzke…) und die ganzen Developer- & StartUps-Events (berlin experts days, webmontag, oml…).
2012 machen wir genauso weiter!

Anbei einige Bilder die mich 2011 geprägt, gelehrt, gefreut oder verwundert haben.

Developer are sociable!

Many people think software developers are reclusive creatures the only hacking code. Mostly or sometimes this that true, but in bigger software projects is that a fatal error. In my opinion communicates a developer more as a baker or bricklayer.
The daily routine from a developer In my opinion is as follows:

Photographer: Dennis Stachel for GDC Europe

  • 40% communication
  • 20% continuing education
  • 20% testing
  • 20% programming

Mostly, software development starts with new requirements from client or product department. New features should be exact described and least coordinated. Accurate listing and repeating is here adjudicated, so that the result is perfect.

It should a daily information sharing happened between developers in team.

  • Who is working on what?
  • Which problems are unresolved?
  • How was the solution of the problem?
  • Where can you find which information?

But also outside of working time should a developer activ, visiting user groups, reading blogs and meet old colleagues.

After developing it is necessary to document all stuff understandable. Goes new features online or will released must be communicated this to administrator and clients. If errors occur must developer fix this, they usually have to come in contact with the customer.

Until a new feature is completed will take some time and in this time communicating developer very much.
And now to say, a software developers are reclusive creatures, is wrong!

German Version: http://colibri-media.de/2011/11/27/entwickler-sind-kontaktfreudig/
Photo: http://www.flickr.com/photos/officialgdc/4896834885/

Entwickler sind kontaktfreudig!

Viele Leute denken Software-Entwickler/innen sind zurückgezogene Wesen die nur Ihren Code hacken.
Meist oder teilweise stimmt das auch, doch bei großen Software-Projekte würde so etwas schief gehen.
Meiner Meinung nach kommuniziert ein Entwickler mehr als ein Bäcker oder Maurer.
Der Alltag eines Entwicklers setzt sich meiner Meinung nach wie folgt zusammen:

Photographer: Dennis Stachel for GDC Europe

  • 40% Kommunikation
  • 20% Fortbildung
  • 20% Testen
  • 20% Programmierung

Software-Entwicklung beginnt meist mit neuen Anforderungen vom Kunden oder der Produkt-Abteilung. Neue Funktionen sollten genaustens beschrieben und abgestimmt werden. Genaues zuhören und wiedergeben ist hier entscheiden, damit am Ende das Ergebnis stimmt.

Es sollte ein täglicher Austausch zwischen Entwicklern im Team stattfinden.

  • Wer arbeitet gerade woran?
  • Welche Probleme bestehen?
  • Wie wurde welches Problem gelöst?
  • Wo ist was zu finden?

Aber auch außerhalb der Arbeit sollten Entwickler aktiv sein, User Groups besuchen, Blogs lesen und mit alte Kollegen in Kontakt bleiben.

Nach der Entwicklung muss alles verständlich Dokumentiert werden. Gehen neue Funktionen online bzw. werden released muss dieses auch mit Administrator und dem Kunden kommuniziert werden. Treten Fehler auf muss der Entwickler diese fixen, hierzu muss er meist mit dem Kunden in Kontakt treten.

Bis ein neues Feature fertig gestellt ist vergeht viel Zeit und in dieser wird viel kommuniziert.
Und jetzt soll einer sagen Softwareentwickler seien scheue Wesen!

English Version: http://colibri-media.de/2011/11/27/developer-are-sociable/
Photo: http://www.flickr.com/photos/officialgdc/4896834885/

Köln 2011! – webmontag, european pirate summit, dmexco, DevHouse…

Vom 19.09 bis 25.09 werde ich in Köln zu Gast sein! Ich freue mich rießig auf tolle Gespräche, erfahrungsreiche Vorträge und alte Bekannte. Der Terminkalander ist bereits schon gut gefüllt. Direkt am Montag Abend freue ich mich auf den 26. Kölner Webmontag, Dienstag folgt dann direkt The European Pirate Summit, Mittwoch die dmexco 2011 und Freitag folgen dann likemind.cgn und der DevHouseFriday! Dazu kommen sicherliche viele “Meetings” mit Kaffee oder Kölsch! Anbei der Terminkalender für den Köln Trip, damit wir einfacher Termine finden können.

English Version:

From 19.09 to 25.09 I’m guest in cologne. I’m be glad for good talks, expert knowledge and old friends. My calendar now is very full. I will start on monday wiht the 26th Webmonday, on Tuesday is The European Pirate Summit, Wednesday start the dmexco 2011 and Friday is likemind.cgn and DevHouseFriday. There are also many ‘meetings’ with coffee or Kölsch! I attach my calendar on bottom for the cologne trip, i mean it’s easy to find time for a date.
I hop my english version wasn’t full shit and understandable.

Ich werde immer wissen, was du letzten Sommer getan hast

Immer wieder kommt die Debatte auf, wie gefährlich soziale Netzwerke sind und das wir der Jugend bei bringen müssen wie diese Funktionieren. Mein Bruder hat nun seit mittlerweile 2 Monaten einen eigenen Facebook Account und kennt sich damit besser aus als meine Eltern. Ich bin der Meinung das die Jugend sehr wohl weiß wie das Internet funktioniert, sogar besser als die meisten Erwachsenen. Und was ist mit Bilder in sozialen Netzwerken?

Wenn es etwas gibt, von dem Sie nicht wollen, dass es irgendjemand erfährt, sollten Sie es vielleicht ohnehin nicht tun. Eric Schmidt 12/2010

Ich denke jedem Chef oder anderen Person sollte klar sein das jede Person ein privat Leben hat. Das diese nun meist auch online abrufbar wird sind die Zeichen unserer Zeit. Jedem sollte eines jedoch bewusst sein: Jeder Kommentar, jedes Bild und sogar Like wird möglicherweise nie aus dem Internet verschwinden, die Leute müssen einfach mehr zu Ihren Aussagen stehen. Das Internet schafft mehr Transparenz mit all seinen Vor- und Nachteilen und es wird vor Privatpersonen keinen Halt machen!

Selber kontrolliere ich regelmäßig meine Accounts aus Sicht anderer Personen, so weiß ich immer wie meine Profile auf andere wirkt und ob diese mit meinen Werten übereinstimmt. Ansonsten sollte man immer eines im Hinterkopf haben:

Ich werde immer wissen, was du letzten Sommer getan hast.