The Daily San Francisco

San Francisco news, every day

News

How San Francisco's City Websites Got Buried in Duplicate Images — and What's Being Done to Dig Out

Years of decentralized web publishing, emergency COVID updates, and a revolving door of contractors left city digital properties clogged with redundant files that slow services and cost taxpayers real money.

By San Francisco News Desk · Published 4 July 2026, 11:51 am

3 min read

How San Francisco's City Websites Got Buried in Duplicate Images — and What's Being Done to Dig Out
Photo: Photo by Malcolm Hill on Pexels

San Francisco's municipal web infrastructure is carrying thousands of duplicate images — redundant files copied, reuploaded, and re-renamed across department portals over more than a decade — and the Digital Services division of the Department of Technology is now midway through an audit that began in January 2026 to assess the full scope of the problem. The audit covers at least 47 active city-operated websites, from SF.gov to the Municipal Transportation Agency's public-facing route pages.

The issue matters right now because the city is simultaneously pushing a housing production emergency agenda that depends on faster permit processing through online portals, and running a post-pandemic cleanup of digital records that accumulated during years when every department was publishing independently and without central oversight. Redundant image files slow page load times, inflate cloud storage bills, and create accessibility compliance headaches under California Government Code Section 11135, which requires public digital content to meet WCAG 2.1 standards — standards that duplicate or mislabeled images routinely violate.

How the Pile-Up Happened

The roots of the problem go back to 2012, when the city's web presence was fragmented across dozens of content management systems. The Office of the City Administrator began pushing departments toward a unified Drupal platform around 2016, but the migration was never fully completed before the pandemic hit. Between March 2020 and mid-2022, departments from the Department of Public Health to the Office of Economic and Workforce Development were publishing daily COVID guidance updates — vaccination site hours at City College of San Francisco on Ocean Avenue, testing locations in the Tenderloin, shelter-in-place rule changes — often by reuploading the same infographic with a slightly different filename rather than updating the original record.

At the same time, the city cycled through a series of outside web contractors. The Department of Technology spent roughly $4.2 million on web modernization contracts between fiscal years 2019 and 2023, according to city budget documents. Each contractor handoff introduced new naming conventions, new folder structures, and — inevitably — new duplicates when incoming teams couldn't locate existing assets and simply uploaded fresh copies. A single banner image for the SF Planning Department's Tenderloin Community Plan, for example, was identified in the January audit as existing in at least nine distinct versions across four separate subdirectories.

The San Francisco Public Library's digital branch on Larkin Street dealt with a version of the same problem in its online catalog interface. Library technology staff began a manual deduplication project in late 2024 after load times on the BiblioCommons-powered catalog spiked noticeably on mobile devices. That project, which involved flagging and removing redundant cover art and event poster files, took six months and was completed without additional budget allocation, relying on existing staff hours.

The Fix and What Comes Next

The Department of Technology's current audit uses automated scanning tools to fingerprint image files by content rather than filename, a method that catches duplicates even when they've been saved under different names or compressed at different quality levels. The division has not publicly released interim findings, but the audit is scheduled to produce a formal report to the Board of Supervisors by September 30, 2026.

Beyond the audit itself, the city is piloting a centralized Digital Asset Management system — a DAM, in the trade shorthand — with three departments serving as test cases: SF Environment, the Office of Transgender Initiatives, and the Recreation and Parks Department, which manages content for sites covering everything from Golden Gate Park events to Moscone Recreation Center programming. If the pilot clears procurement review by November, a citywide rollout could begin in the first quarter of 2027.

For residents and businesses using city portals to pull permits, pay fees, or access services, the practical effect of a successful cleanup should be faster page loads and fewer broken image links on mobile. Web performance benchmarks from the city's own Digital Services team put the current median load time for SF.gov pages at 4.1 seconds on a 4G connection — roughly double the 2-second threshold that research consistently ties to user drop-off. Getting there means not just deleting old files, but building the governance systems that stop the pile-up from starting again.

Topic:#News

How does this story make you feel?

Spread the word

See something wrong? Suggest a correction.

Have your say

Loading comments…

Sources

About this article

Published by The Daily San Francisco

This article was produced by the The Daily San Francisco editorial desk and covers news in San Francisco. See our editorial standards for how we use AI.

The Daily San Francisco brief

The day's San Francisco news in a 2-minute read, every weekday morning. Free.

By subscribing you agree to receive emails from The Daily San Francisco and accept our Privacy Policy. Unsubscribe anytime.

Daily brief

Enjoyed this? Wake up to San Francisco news every morning.

Free, in your inbox before 7am. Weekdays.

By subscribing you agree to receive emails from The Daily San Francisco and accept our Privacy Policy. Unsubscribe anytime.

More from The Daily San Francisco

More in News

Enjoyed this story? Get tomorrow's briefing free.