Spotlight: Anna Brown - Zocalo
February 2, 2010
by Jacob Russell
This week we spotlight Anna Brown of MediaGirl, Inc. and the site she built for daily newspaper Zocalo.
Our “Spotlight” series of articles gives designers, developers, add-on creators, and just generally great members of the ExpressionEngine community a chance to talk about how they have used EE and its add-ons in their work.
Anna Brown is a wildly successful web developer and the owner of MediaGirl, Inc. Among many other projects, she developed Zocalo, a Spanish language daily newspaper that is the fourth largest ExpressionEngine site on the internet according to Hop Studios’ yearly round-up. Her sites push the boundaries of ExpressionEngine in scale and capability, and she shows the rest of us what’s possible with ability, hard work, and over 1 million unique visitors a month.
Give us a little background on yourself: What do you do and how do you use ExpressionEngine on a daily basis?
MediaGirl partners with design agencies who need ExpressionEngine programming and development. ExpressionEngine is our CMS of choice and is used on every project coming out of our office.
We are a member of the ExpressionEngine Pro Network and have worked with EE for the past five years.
How did you get started with ExpressionEngine?
I found ExpressionEngine after needing a solution for expiring entries on a job related website. The CMS that was being used didn’t have an expiration feature so jobs had to be manually removed. ExpressionEngine worked perfectly and I rebuilt the website using EE.
My second EE website was Flywheel Ventures. It’s a project that I look back on and shake my head at the weblog and field setup… What was I thinking! Initially, I didn’t grasp the concept of separating content into content types and setting up different weblogs and fields for each type.
Since those first projects, I’ve learned the ins and outs of EE and have had the privilege of building some great projects using EE including:
- Zocalo.com.mx, designed by Garcia Media
- Clifbar.com, designed by odopod
- GiantForWomen.com, designed by odopod
- NikeSkate.com, a Flash front-end and an EE backend, designed by odopod
- The Israel Center, designed by Mike Precious
- Old Guys Rule, designed by 3 Advertising
- Better Place, designed by odopod
What is this site, and why is it special?
The Zocalo website was designed by Garcia Media for a daily newspaper in the state of Coahuila, Mexico. As of today, the website has 196,000 articles posted which I believe makes it the largest EE website based on number of posted articles. Approximately, 500 new articles are posted daily to the website. The website has an average of 1,050,000 unique visitors a month and 4,600,000 page loads. It’s a big website all the way around.
What add-ons are you using on that site?
- LG Polls
- LG Social Bookmarks
- Solspace Static Page Caching Module
- Solspace Template Morsel Module
- Solspace Tracker Module
- Bad Behavior 2
- Required Category
- Edit Alert
- Filter by Author
- LG Add Sitename
- Publish Page Improvements
- Tab Forward
- Hidden Weblogs
Editors are also able to see inline edit icons when logged in with a little snippet of code added into the templates.
Were there any particularly challenging parts of this site that required creative solutions? What add-ons were involved with that?
This website gets approximately 60% of its daily traffic during a 4 hour window each morning. Pretty quickly after the website launched, the website began to fail during the morning rush. The failure was primarily related to not having enough server power to handle the increasing daily traffic and volume of articles. At this time, the website was hosted on a MediaTemple VPS and for a couple days, each morning the database would run out of memory trying to do everything it was being asked to do. We upgraded the server environment to a MediaTemple dedicated server but continued to have problems because everything (MySQL, PHP and Apache) was hosted on the same server.
After too much up and down, the decision was made to move the website to EngineHosting. The website was immediately stabilized and pages loaded a lot quicker.
However, a month or so after the move, Nevin and Laurie started to get emails about problems with the website. After getting advice from Nevin at EngineHosting, Mitchell at Solspace and Derek at EllisLab, we went through each template and optimized a number of things… reduced weblog tags where we could, changed to using simple conditionals, implemented tag caching, turned off all default EE statistics tracking, implemented Solspace’s Static Page Caching module, implemented Solspace’s Tracker Module, turned off automatic cache clearing when entries are saved, changed a couple weblog tags to queries, stopped using EE’s search parameter when calling data… This stabilized the website for a couple months.
But as the daily website traffic and number of articles grew, the website started to have issues again. The slow queries log indicated the issues were related to queries used to generate a list of most recent articles, most popular articles and most commented articles. These lists show on every single page of the website and were included into each template using an embed. The embedded file was cached using EE’s template caching but there was code in the template that prevented the cache from working correctly so the queries were running anytime a page of the website was loaded. To fix the problem, we implemented a script to run the queries and to write the content to a static file every 15 minutes. The static file is then included back into the website as needed using PHP. We also offloaded the website search functionality to Google at this time. This immediately fixed the problem.
Just recently, the site started having issues again. This time we tracked slow queries to the category template. We were able to use the Solspace Template Morsels module to cache these pages which immediately fixed the problems.
As more people visit the website and more content is added, I know there will be additional performance issues that need to be solved. I take each one as it comes. The best tool I have is the slow query log which quickly points me to the problem.
I would like to publically thank Nevin Lyne and Laurie Ruggles from EngineHosting, Derek Jones and Robin Sowell from EllisLab, and Mitchell Kimbrough from Solspace for helping me stabilize this website. I am eternally grateful!
Additionally, kudos to the Solspace team for creating modules to support high traffic websites that run on EE.
What is the greatest need you have on this site that you wish were met by an EE add-on
I was able to build the website using EE’s default functionality or existing addons.
The greatest need I had on this project was help to understand how to optimize everything to allow the website to scale. I was able to reach out and get that help behind the scenes which was so incredibly helpful. As EE becomes more popular and is used on larger websites, developers will absolutely need advanced support from EllisLab to understand and tackle problems with scaling.
There are a lot of add-ons in the EE world now, which ones do you find most useful throughout your work?
I can’t live without:
I’m currently working on a project for a major automotive company that is due to launch at the end of February. Look forward to a spotlight series on that project in the coming months!