Skip to content

Instantly share code, notes, and snippets.

@newsroomdev
Last active March 4, 2020 02:52
Show Gist options
  • Save newsroomdev/8ed6f486dc7955f74ef63914f1d5841a to your computer and use it in GitHub Desktop.
Save newsroomdev/8ed6f486dc7955f74ef63914f1d5841a to your computer and use it in GitHub Desktop.
Iowa 2020 Caucus Results Pagespeed Comparison

Iowa 2020 Caucus Results Pagespeed Comparison

It’s election season again y’all! That means a ton of engineers at news orgs are spending sleepless nights building different reader experiences with various tech stacks. In years past I’ve informally compared all the different approaches because I find it educational. One big reason, the faster your page is, the easier it is for folks to enjoy it regardless of their internet connection speeds.

Methodology

Links were gathered via Twitter, primarily using a thread by Tiff Fehr. Basic criteria are the page has to feature updating vote and/or delegate counts. Scores were tallied after running PageSpeed Insights at least three times to establish an average. Additionally, AMP pages were used over non-AMP page versions with the main assumption being that readers are coming to the page on mobile either via social media or after searching for election results. I was also really curious to see how AMP performed when it came to interactive data graphics.

Note: This is not comprehensive of all election results pages; there will be more publications publishing results pages later in the election season.

Scores

Lighthouse scores have some variance. If you see any numbers that are +/- 5 or more points, please let me know. News organizations are arranged from highest to lowest score. To explore more, here's the same table as a Google Spreadsheet.

Org Score Page AMP Comments
LA Times 81 https://www.latimes.com/projects/2020-iowa-caucuses-live-results/ preact
Washington Post 78 https://www.washingtonpost.com/elections/election-results/iowa.amp/ x next.js, AMP-first
Reuters 75 https://graphics.reuters.com/USA-ELECTION-IA-CAUCUS-LIVE/0100B5CE3DR/index.html
Vox 71 https://www.vox.com/platform/amp/2020/2/4/21123008/iowa-caucus-live-results-2020 x
NY Times 58 https://www.nytimes.com/interactive/2020/02/04/us/elections/results-iowa-caucus.amp.html x
Politico 52 https://www.politico.com/2020-election/results/iowa/amp/ x
The Guardian 37 https://www.theguardian.com/us-news/ng-interactive/2020/feb/03/iowa-caucus-results-winner-live-tracker-county-primary-polls
New Yorker 35 https://www.newyorker.com/news/election-2020/iowa-live-election-results/amp x AP iframe, first year?
Wall Street Journal 27 http://graphics.wsj.com/election-2020-primary-results/
NPR 26 https://apps.npr.org/liveblogs/20200203-iowa/
Bloomberg 25 https://www.bloomberg.com/graphics/2020-presidential-delegates-tracker/ svelte
Chicago Tribune 22 https://www.chicagotribune.com/election-2020/results/ct-viz-iowa-caucus-results-winner-20200203-uybkainekvb43ce2vppinnzdzm-htmlstory.html
CNN 21 https://www.cnn.com/election/2020/state/iowa
Fox News 20 https://www.foxnews.com/elections/2020/primary-results/state/iowa
HuffPo 0 https://www.huffpost.com/elections

Thoughts/Comments

In no particular order

  • AMP is not exactly a silver bullet for performance gains, but it does help. AMP pages were mostly in the “yellow” of lighthouse scores range (50 to 80 max) compared to non-AMP pages (20s & 30s). Vox & WaPo had some of the fastest AMP pages in the high 70s.
  • BUT you don’t need AMP. LAT clocks in as the fastest with a speed index of ~1.5s and a score of ~80, with Reuters not far behind. No AMP versions for either page.
  • Page construction matters a lot, in other words more SVG elements means more DOM nodes and slower rendering speeds. Live blogs or canvas elements, along with shorter/smaller pages, generally did better.
@tiffehr
Copy link

tiffehr commented Mar 4, 2020

FWIW, for Super Tuesday I have another thread about news org election results pages and/or liveblogs.

For those within my spreadsheet with clear Super Tuesday results pages, here's the list so far:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment