SEO 와 ASP.NET(JSP,ASP) / Silverlight(Flash) / Ajax
"웹 응용 프로그램"을 만드는 방법이 다양해지고 있습니다. 다양하다 보니, 선택을 하는데 어려움이 따르기도 하는데요.
보통, 그와 같은 선택의 기준에서 빠져 있는 요소가 바로 SEO (Search Engine Optimization) 입니다. 음... 이런 시나리오가 그려지는데요. 개발자들은 "구현 기술"에 빠져있어서 SEO 에 대해서 이야기하지 않을 것이고, 기획자들은 "구현 기술"에 낯설다 보니 개발자들이 선택하는 방식에 가타부타 이야기를 못하거나, 당연히 검색 엔진에는 노출될 거라는 상식적인 생각으로 지나치는 경우라고나 할까요.
검색 엔진에 노출된다는 것은 매우 중요한 요소이기 때문에, "웹 응용 프로그램"에 대해서는 개인적으로 그 어떤 고려 사항보다도 우선해야 한다고 봅니다.
간단하게 제 웹 사이트를 예로 들어 보면, 만약 제가 Silverlight/Flash 예찬자라서 블로그의 글을 서버 측에서 HTML 로 렌더링해서 보내지 않고, 클라이언트 측에 배포되는 XAML/SWF 을 이용해서 연동한다면 검색 엔진은 제 웹 사이트의 정보를 추출할 수 없게 되고, 아마도 구글을 통한 사이트 방문자가 현저히 줄어들 것입니다.
이런 현상은 Ajax 를 써도 마찬가지입니다. 검색 로봇 입장에서는 HTML만을 다룰 뿐 JS 스크립트 파일을 가져가서 로봇내에서 실행하는 것이 아니기 때문에, ajax 의 동작으로 인한 데이터 렌더링부터는 추출 대상에서 제외되는 것입니다.
그럼, 대충 선택 기준이 나오지요?
게시판 성격의 서비스 또는 기타의 사유로 검색 엔진을 고려한다면: ASP.NET, HTML
인트라 넷 웹 애플리케이션과 같이 검색엔진과 무관하다면: (ASP.NET, HTML 및) Silverlight, Ajax, ...
가끔, ASP.NET 에서도 MVC 냐 WebForm 이냐를 놓고 선택의 기로에 서는데요. 다행히 이런 경우에는 검색 엔진 입장에서는 어느 것을 선택해도 무방합니다. 어차피 둘 다 서버 측에서 HTML 로 렌더링해서 보내주는 것이므로. 그런데, 만약 MVC + Ajax를 쓴다면 "검색 로봇"에게는 도움이 안된다는 점을 간과해서는 안됩니다.
트위터의 어떤 글을 보니, XAML 의 선언적인 프로그래밍이 검색 가능하다고 쓰신 분이 있는데... 해당 기술에 대한 오해를 갖고 계신 것입니다. 현재 XAML 은 HTML 웹 페이지에 섞여서 동작하는 것이 아닌, <OBJECT /> 에 둘러쌓인 방식이므로 검색 로봇 입장에서는 Flash와 마찬가지이기 때문입니다.